Update to SPFx v1.17.4 (#4022)
This commit is contained in:
parent
53608b5c93
commit
0b56890d36
|
@ -0,0 +1,22 @@
|
||||||
|
require('@rushstack/eslint-config/patch/modern-module-resolution');
|
||||||
|
module.exports = {
|
||||||
|
extends: ['@microsoft/eslint-config-spfx/lib/profiles/react'],
|
||||||
|
parserOptions: { tsconfigRootDir: __dirname },
|
||||||
|
overrides: [
|
||||||
|
{
|
||||||
|
files: ['*.ts', '*.tsx'],
|
||||||
|
parser: '@typescript-eslint/parser',
|
||||||
|
'parserOptions': {
|
||||||
|
'project': './tsconfig.json',
|
||||||
|
'ecmaVersion': 2018,
|
||||||
|
'sourceType': 'module'
|
||||||
|
},
|
||||||
|
rules: {
|
||||||
|
// Prevent usage of the JavaScript null value, while allowing code to access existing APIs that may require null. https://www.npmjs.com/package/@rushstack/eslint-plugin
|
||||||
|
'@typescript-eslint/no-explicit-any': 0,
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
};
|
||||||
|
|
||||||
|
|
|
@ -33,3 +33,5 @@ obj
|
||||||
|
|
||||||
# Release folder
|
# Release folder
|
||||||
release
|
release
|
||||||
|
|
||||||
|
.heft
|
|
@ -1,12 +1,17 @@
|
||||||
{
|
{
|
||||||
"@microsoft/generator-sharepoint": {
|
"@microsoft/generator-sharepoint": {
|
||||||
"libraryName": "pnp-script-editor",
|
"libraryName": "pnp-script-editor",
|
||||||
"version": "1.13.1",
|
"version": "1.17.4",
|
||||||
"environment": "spo",
|
"environment": "spo",
|
||||||
"isDomainIsolated": false,
|
"isDomainIsolated": false,
|
||||||
"libraryId": "1425175f-3ed8-44d2-8fc4-dd1497191294",
|
"libraryId": "1425175f-3ed8-44d2-8fc4-dd1497191294",
|
||||||
"isCreatingSolution": true,
|
"isCreatingSolution": true,
|
||||||
"packageManager": "npm",
|
"packageManager": "npm",
|
||||||
"componentType": "webpart"
|
"componentType": "webpart",
|
||||||
|
"nodeVersion": "16.20.0",
|
||||||
|
"sdkVersions": {
|
||||||
|
"@microsoft/teams-js": "2.9.1",
|
||||||
|
"@microsoft/microsoft-graph-client": "3.0.2"
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
|
@ -201,6 +201,7 @@ Version|Date|Comments
|
||||||
1.0.20.0|October 10, 2022|Added sample html/script with self-executing function
|
1.0.20.0|October 10, 2022|Added sample html/script with self-executing function
|
||||||
1.0.21.0|March 11, 2023|Bump dependencies to allow react-script-editor to build under SPFx 1.16.1
|
1.0.21.0|March 11, 2023|Bump dependencies to allow react-script-editor to build under SPFx 1.16.1
|
||||||
1.0.22.0|April 24, 2023|Added support for script in external template
|
1.0.22.0|April 24, 2023|Added support for script in external template
|
||||||
|
1.0.23.0|September 7, 2023|Upgrade to SPFx 1.17.4
|
||||||
|
|
||||||
|
|
||||||
## Minimal Path to Awesome
|
## Minimal Path to Awesome
|
||||||
|
|
|
@ -3,7 +3,7 @@
|
||||||
"solution": {
|
"solution": {
|
||||||
"name": "Modern Script Editor web part by mikaelsvenson",
|
"name": "Modern Script Editor web part by mikaelsvenson",
|
||||||
"id": "1425175f-3ed8-44d2-8fc4-dd1497191294",
|
"id": "1425175f-3ed8-44d2-8fc4-dd1497191294",
|
||||||
"version": "1.0.22.0",
|
"version": "1.0.23.0",
|
||||||
"includeClientSideAssets": true,
|
"includeClientSideAssets": true,
|
||||||
"skipFeatureDeployment": false,
|
"skipFeatureDeployment": false,
|
||||||
"isDomainIsolated": false,
|
"isDomainIsolated": false,
|
||||||
|
@ -13,7 +13,29 @@
|
||||||
"termsOfUseUrl": "",
|
"termsOfUseUrl": "",
|
||||||
"websiteUrl": "",
|
"websiteUrl": "",
|
||||||
"mpnId": ""
|
"mpnId": ""
|
||||||
|
},
|
||||||
|
"metadata": {
|
||||||
|
"shortDescription": {
|
||||||
|
"default": "Script editor web part"
|
||||||
|
},
|
||||||
|
"longDescription": {
|
||||||
|
"default": "Script editor web part to allow arbitrary script and markup on a SharePoint page"
|
||||||
|
},
|
||||||
|
"screenshotPaths": [],
|
||||||
|
"videoUrl": "",
|
||||||
|
"categories": []
|
||||||
|
},
|
||||||
|
"features": [
|
||||||
|
{
|
||||||
|
"title": "PnP Modern Script Editor Web Part Feature",
|
||||||
|
"description": "The feature that activates ScriptEditorWebPart from the pnp-script-editor solution.",
|
||||||
|
"id": "3a328f0a-99c4-4b28-95ab-fe0847f657a3",
|
||||||
|
"version": "1.0.23.0",
|
||||||
|
"componentIds": [
|
||||||
|
"3a328f0a-99c4-4b28-95ab-fe0847f657a3"
|
||||||
|
]
|
||||||
}
|
}
|
||||||
|
]
|
||||||
},
|
},
|
||||||
"paths": {
|
"paths": {
|
||||||
"zippedPackage": "solution/pnp-script-editor.sppkg"
|
"zippedPackage": "solution/pnp-script-editor.sppkg"
|
||||||
|
|
|
@ -0,0 +1,3 @@
|
||||||
|
{
|
||||||
|
"$schema": "https://developer.microsoft.com/json-schemas/core-build/sass.schema.json"
|
||||||
|
}
|
|
@ -1,6 +1,6 @@
|
||||||
{
|
{
|
||||||
"$schema": "https://developer.microsoft.com/json-schemas/core-build/serve.schema.json",
|
"$schema": "https://developer.microsoft.com/json-schemas/spfx-build/spfx-serve.schema.json",
|
||||||
"port": 4321,
|
"port": 4321,
|
||||||
"initialPage": "https://contoso.sharepoint.com/_layouts/workbench.aspx",
|
"initialPage": "https://{tenantDomain}/_layouts/workbench.aspx",
|
||||||
"https": true
|
"https": true
|
||||||
}
|
}
|
File diff suppressed because it is too large
Load Diff
|
@ -6,36 +6,38 @@
|
||||||
"resolutions": {
|
"resolutions": {
|
||||||
"@types/react": "16.8.8"
|
"@types/react": "16.8.8"
|
||||||
},
|
},
|
||||||
|
"engines": {
|
||||||
|
"node": ">=16.13.0 <17.0.0"
|
||||||
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@microsoft/sp-core-library": "1.16.1",
|
"@fluentui/react": "7.199.1",
|
||||||
"@microsoft/sp-loader": "1.16.1",
|
"@microsoft/sp-core-library": "1.17.4",
|
||||||
"@microsoft/sp-lodash-subset": "1.16.1",
|
"@microsoft/sp-loader": "1.17.4",
|
||||||
"@microsoft/sp-property-pane": "1.16.1",
|
"@microsoft/sp-lodash-subset": "1.17.4",
|
||||||
"@microsoft/sp-webpart-base": "1.16.1",
|
"@microsoft/sp-property-pane": "1.17.4",
|
||||||
"@pnp/spfx-controls-react": "3.13.0",
|
"@microsoft/sp-webpart-base": "1.17.4",
|
||||||
"@pnp/spfx-property-controls": "3.12.0",
|
"@pnp/spfx-controls-react": "3.15.0",
|
||||||
"office-ui-fabric-react": "7.174.1",
|
"@pnp/spfx-property-controls": "3.14.0",
|
||||||
"react": "16.13.1",
|
"react": "17.0.1",
|
||||||
"react-dom": "16.13.1"
|
"react-dom": "17.0.1",
|
||||||
|
"tslib": "2.3.1"
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"@microsoft/rush-stack-compiler-3.2": "0.11.0",
|
"@microsoft/rush-stack-compiler-4.5": "0.5.0",
|
||||||
"@microsoft/rush-stack-compiler-3.3": "0.10.0",
|
"@rushstack/eslint-config": "2.5.1",
|
||||||
"@microsoft/rush-stack-compiler-3.7": "0.7.0",
|
"@microsoft/eslint-plugin-spfx": "1.17.4",
|
||||||
"@microsoft/rush-stack-compiler-3.9": "0.5.0",
|
"@microsoft/eslint-config-spfx": "1.17.4",
|
||||||
"@microsoft/rush-stack-compiler-4.5": "0.4.0",
|
"@microsoft/sp-build-web": "1.17.4",
|
||||||
"@microsoft/sp-build-web": "1.16.1",
|
"@types/webpack-env": "~1.15.2",
|
||||||
"@microsoft/sp-module-interfaces": "1.16.1",
|
"ajv": "^6.12.5",
|
||||||
"@microsoft/sp-tslint-rules": "1.16.1",
|
"eslint": "8.7.0",
|
||||||
"@types/chai": "3.4.34",
|
|
||||||
"@types/mocha": "2.2.38",
|
|
||||||
"@types/react": "16.9.51",
|
|
||||||
"@types/react-dom": "16.9.15",
|
|
||||||
"@types/webpack-env": "1.13.1",
|
|
||||||
"ajv": "~8.2.0",
|
|
||||||
"gulp": "4.0.2",
|
"gulp": "4.0.2",
|
||||||
"tslint-microsoft-contrib": "5.0.0",
|
"typescript": "4.5.5",
|
||||||
"webpack-bundle-analyzer": "^4.4.0"
|
"@types/react": "17.0.45",
|
||||||
|
"@types/react-dom": "17.0.17",
|
||||||
|
"eslint-plugin-react-hooks": "4.3.0",
|
||||||
|
"@microsoft/sp-module-interfaces": "1.17.4",
|
||||||
|
"webpack-bundle-analyzer": "4.9.1"
|
||||||
},
|
},
|
||||||
"scripts": {
|
"scripts": {
|
||||||
"build": "gulp bundle",
|
"build": "gulp bundle",
|
||||||
|
|
Binary file not shown.
|
@ -15,7 +15,7 @@ export class PropertyPaneLogo implements IPropertyPaneField<IPropertyPaneCustomF
|
||||||
private onRender(elem: HTMLElement): void {
|
private onRender(elem: HTMLElement): void {
|
||||||
elem.innerHTML = `
|
elem.innerHTML = `
|
||||||
<div style="margin-top: 30px">
|
<div style="margin-top: 30px">
|
||||||
<div style="float:right">Author: <a href="https://twitter.com/mikaelsvenson" tabindex="-1">Mikael Svenson</a></div>
|
<div style="float:right">Web part developer: <a href="https://twitter.com/mikaelsvenson" tabindex="-1">Mikael Svenson</a></div>
|
||||||
</div>`;
|
</div>`;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -9,6 +9,7 @@
|
||||||
"supportedHosts": ["SharePointWebPart", "SharePointFullPage", "TeamsTab"],
|
"supportedHosts": ["SharePointWebPart", "SharePointFullPage", "TeamsTab"],
|
||||||
"requiresCustomScript": true,
|
"requiresCustomScript": true,
|
||||||
"supportsThemeVariants": true,
|
"supportsThemeVariants": true,
|
||||||
|
"hiddenFromToolbox": false,
|
||||||
"preconfiguredEntries": [{
|
"preconfiguredEntries": [{
|
||||||
"groupId": "3a328f0a-99c4-4b28-95ab-fe0847f657a3",
|
"groupId": "3a328f0a-99c4-4b28-95ab-fe0847f657a3",
|
||||||
"group": {
|
"group": {
|
||||||
|
|
|
@ -104,7 +104,7 @@ export default class ScriptEditorWebPart extends BaseClientSideWebPart<IScriptEd
|
||||||
}
|
}
|
||||||
|
|
||||||
protected getPropertyPaneConfiguration(): IPropertyPaneConfiguration {
|
protected getPropertyPaneConfiguration(): IPropertyPaneConfiguration {
|
||||||
let webPartOptions: IPropertyPaneField<any>[] = [
|
const webPartOptions: IPropertyPaneField<any>[] = [
|
||||||
PropertyPaneTextField("title", {
|
PropertyPaneTextField("title", {
|
||||||
label: "Title to show in edit mode",
|
label: "Title to show in edit mode",
|
||||||
value: this.properties.title
|
value: this.properties.title
|
||||||
|
@ -122,15 +122,15 @@ export default class ScriptEditorWebPart extends BaseClientSideWebPart<IScriptEd
|
||||||
offText: "Disabled"
|
offText: "Disabled"
|
||||||
}),
|
}),
|
||||||
PropertyPaneToggle('useExternalScript', {
|
PropertyPaneToggle('useExternalScript', {
|
||||||
label: 'Use an external HTML Code instead of inline script',
|
label: 'Use script from an external URL instead of inline script',
|
||||||
onText: "Use external HTML Code",
|
onText: "Use external script",
|
||||||
offText: "Use inline script"
|
offText: "Use inline script"
|
||||||
}),
|
}),
|
||||||
];
|
];
|
||||||
|
|
||||||
if (this.properties.useExternalScript) {
|
if (this.properties.useExternalScript) {
|
||||||
webPartOptions.push(PropertyPaneTextField("externalScript", {
|
webPartOptions.push(PropertyPaneTextField("externalScript", {
|
||||||
label: "External HTML Code URL",
|
label: "Script URL",
|
||||||
value: this.properties.externalScript,
|
value: this.properties.externalScript,
|
||||||
}));
|
}));
|
||||||
} else {
|
} else {
|
||||||
|
@ -138,7 +138,7 @@ export default class ScriptEditorWebPart extends BaseClientSideWebPart<IScriptEd
|
||||||
}
|
}
|
||||||
|
|
||||||
if (this.context.sdks.microsoftTeams) {
|
if (this.context.sdks.microsoftTeams) {
|
||||||
let config = PropertyPaneToggle("teamsContext", {
|
const config = PropertyPaneToggle("teamsContext", {
|
||||||
label: "Enable teams context as _teamsContexInfo",
|
label: "Enable teams context as _teamsContexInfo",
|
||||||
checked: this.properties.teamsContext,
|
checked: this.properties.teamsContext,
|
||||||
onText: "Enabled",
|
onText: "Enabled",
|
||||||
|
@ -201,7 +201,7 @@ export default class ScriptEditorWebPart extends BaseClientSideWebPart<IScriptEd
|
||||||
private async executeScript(element: HTMLElement) {
|
private async executeScript(element: HTMLElement) {
|
||||||
// clean up added script tags in case of smart re-load
|
// clean up added script tags in case of smart re-load
|
||||||
const headTag = document.getElementsByTagName("head")[0] || document.documentElement;
|
const headTag = document.getElementsByTagName("head")[0] || document.documentElement;
|
||||||
let scriptTags = headTag.getElementsByTagName("script");
|
const scriptTags = headTag.getElementsByTagName("script");
|
||||||
for (let i = 0; i < scriptTags.length; i++) {
|
for (let i = 0; i < scriptTags.length; i++) {
|
||||||
const scriptTag = scriptTags[i];
|
const scriptTag = scriptTags[i];
|
||||||
if (scriptTag.hasAttribute("pnpname") && scriptTag.attributes["pnpname"].value == this._unqiueId) {
|
if (scriptTag.hasAttribute("pnpname") && scriptTag.attributes["pnpname"].value == this._unqiueId) {
|
||||||
|
|
|
@ -1 +1 @@
|
||||||
@import '~office-ui-fabric-react/dist/sass/References.scss';
|
@import '~@fluentui/react/dist/sass/References.scss'
|
|
@ -7,7 +7,7 @@ export default class ScriptEditor extends React.Component<IScriptEditorProps, an
|
||||||
super(props);
|
super(props);
|
||||||
|
|
||||||
this._showDialog = this._showDialog.bind(this);
|
this._showDialog = this._showDialog.bind(this);
|
||||||
this.state = {};
|
this.state = state || {};
|
||||||
}
|
}
|
||||||
|
|
||||||
public componentDidMount(): void {
|
public componentDidMount(): void {
|
||||||
|
@ -19,7 +19,7 @@ export default class ScriptEditor extends React.Component<IScriptEditorProps, an
|
||||||
}
|
}
|
||||||
|
|
||||||
public render(): React.ReactElement<IScriptEditorProps> {
|
public render(): React.ReactElement<IScriptEditorProps> {
|
||||||
const viewMode = <span dangerouslySetInnerHTML={{ __html: this.state.script }}></span>;
|
const viewMode = <span dangerouslySetInnerHTML={{ __html: this.state.script }} />;
|
||||||
return (
|
return (
|
||||||
<div className='ms-Fabric'>
|
<div className='ms-Fabric'>
|
||||||
<Placeholder iconName='JS'
|
<Placeholder iconName='JS'
|
||||||
|
|
|
@ -1,9 +0,0 @@
|
||||||
/// <reference types="mocha" />
|
|
||||||
|
|
||||||
import { assert } from 'chai';
|
|
||||||
|
|
||||||
describe('ScriptEditorWebPart', () => {
|
|
||||||
it('should do something', () => {
|
|
||||||
assert.ok(true);
|
|
||||||
});
|
|
||||||
});
|
|
Binary file not shown.
Loading…
Reference in New Issue