Merge branch 'main' into upgraded-to-spfx-issue-5240-v1.20.0

This commit is contained in:
Hugo Bernier 2024-10-28 10:55:15 -05:00 committed by GitHub
commit cda5db910f
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
36 changed files with 76610 additions and 73906 deletions

View File

@ -14123,7 +14123,7 @@
"This web part provides easy way to render SharePoint custom list in data table view with all the necessary features."
],
"creationDateTime": "2021-03-01",
"updateDateTime": "2022-11-01",
"updateDateTime": "2024-10-20",
"products": [
"SharePoint"
],
@ -14134,7 +14134,7 @@
},
{
"key": "SPFX-VERSION",
"value": "1.14.0"
"value": "1.20.0"
},
{
"key": "PNPCONTROLS",
@ -24186,7 +24186,7 @@
"Shows how to use PnPjs in a React web part"
],
"creationDateTime": "2023-02-18",
"updateDateTime": "2023-02-18",
"updateDateTime": "2024-10-23",
"products": [
"SharePoint"
],
@ -24197,7 +24197,7 @@
},
{
"key": "SPFX-VERSION",
"value": "1.15.2"
"value": "1.20.0"
}
],
"thumbnails": [
@ -24218,6 +24218,11 @@
"gitHubAccount": "bcameron1231",
"name": "Beau Cameron",
"pictureUrl": "https://github.com/bcameron1231.png"
},
{
"gitHubAccount": "gretchunkim",
"name": "Gretchun Kim",
"pictureUrl": "https://github.com/gretchunkim.png"
}
],
"references": [

View File

@ -17888,9 +17888,9 @@
}
},
"http-proxy-middleware": {
"version": "2.0.6",
"resolved": "https://registry.npmjs.org/http-proxy-middleware/-/http-proxy-middleware-2.0.6.tgz",
"integrity": "sha512-ya/UeJ6HVBYxrgYotAZo1KvPWlgB48kUJLDePFeneHsVujFaW5WNj2NgWCAE//B1Dl02BIfYlpNgBy8Kf8Rjmw==",
"version": "2.0.7",
"resolved": "https://registry.npmjs.org/http-proxy-middleware/-/http-proxy-middleware-2.0.7.tgz",
"integrity": "sha512-fgVY8AV7qU7z/MmXJ/rxwbrtQH4jBQ9m7kp3llF0liB7glmFeVZFBepQb32T3y8n8k2+AEYuMPCpinYW+/CuRA==",
"requires": {
"@types/http-proxy": "^1.17.8",
"http-proxy": "^1.18.1",
@ -17900,17 +17900,17 @@
},
"dependencies": {
"braces": {
"version": "3.0.2",
"resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz",
"integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==",
"version": "3.0.3",
"resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz",
"integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==",
"requires": {
"fill-range": "^7.0.1"
"fill-range": "^7.1.1"
}
},
"fill-range": {
"version": "7.0.1",
"resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz",
"integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==",
"version": "7.1.1",
"resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz",
"integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==",
"requires": {
"to-regex-range": "^5.0.1"
}
@ -17934,11 +17934,11 @@
"integrity": "sha512-gwsOE28k+23GP1B6vFl1oVh/WOzmawBrKwo5Ev6wMKzPkaXaCDIQKzLnvsA42DRlbVTWorkgTKIviAKCWkfUwA=="
},
"micromatch": {
"version": "4.0.5",
"resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz",
"integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==",
"version": "4.0.8",
"resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.8.tgz",
"integrity": "sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==",
"requires": {
"braces": "^3.0.2",
"braces": "^3.0.3",
"picomatch": "^2.3.1"
}
},

View File

@ -1,7 +1,7 @@
// For more information on how to run this SPFx project in a VS Code Remote Container, please visit https://aka.ms/spfx-devcontainer
{
"name": "SPFx 1.14.0",
"image": "docker.io/m365pnp/spfx:1.14.0",
"name": "SPFx 1.20.0",
"image": "docker.io/m365pnp/spfx:1.20.0",
// Set *default* container specific settings.json values on container create.
"settings": {},
// Add the IDs of extensions you want installed when the container is created.

View File

@ -0,0 +1,5 @@
require('@rushstack/eslint-config/patch/modern-module-resolution');
module.exports = {
extends: ['@microsoft/eslint-config-spfx/lib/profiles/react'],
parserOptions: { tsconfigRootDir: __dirname }
};

View File

@ -13,6 +13,7 @@ release
solution
temp
*.sppkg
.heft
# Coverage directory used by tools like istanbul
coverage

View File

@ -0,0 +1 @@
18.19.1

View File

@ -1,9 +1,16 @@
{
"@microsoft/generator-sharepoint": {
"@microsoft/generator-sharepoint": {
"@microsoft/generator-sharepoint": {
"nodeVersion": "18.19.1"
},
"sdksVersions": {
"@microsoft/microsoft-graph-client": "3.0.2",
"@microsoft/teams-js": "2.24.0"
},
"plusBeta": false,
"isCreatingSolution": true,
"environment": "spo",
"version": "1.14.0",
"version": "1.20.0",
"libraryName": "react-datatable",
"libraryId": "35299377-f8c8-4721-bd53-05602fc0c4ee",
"packageManager": "npm",

View File

@ -22,8 +22,8 @@ This web part provides easy way to render SharePoint custom list in datatable vi
| Every SPFx version is only compatible with specific version(s) of Node.js. In order to be able to build this sample, please ensure that the version of Node on your workstation matches one of the versions listed in this section. This sample will not work on a different version of Node.|
|Refer to <https://aka.ms/spfx-matrix> for more information on SPFx compatibility. |
![SPFx 1.14](https://img.shields.io/badge/SPFx-1.14-green.svg)
![Node.js v14 | v12](https://img.shields.io/badge/Node.js-v14%20%7C%20v12-green.svg)
![SPFx 1.20.0](https://img.shields.io/badge/SPFx-1.20.0-green.svg)
![Node.js v18 ](https://img.shields.io/badge/Node.js-v18-green.svg)
![Compatible with SharePoint Online](https://img.shields.io/badge/SharePoint%20Online-Compatible-green.svg)
![Does not work with SharePoint 2019](https://img.shields.io/badge/SharePoint%20Server%202019-Incompatible-red.svg "SharePoint Server 2019 requires SPFx 1.4.1 or lower")
![Does not work with SharePoint 2016 (Feature Pack 2)](https://img.shields.io/badge/SharePoint%20Server%202016%20(Feature%20Pack%202)-Incompatible-red.svg "SharePoint Server 2016 Feature Pack 2 requires SPFx 1.1")
@ -40,6 +40,7 @@ This web part provides easy way to render SharePoint custom list in datatable vi
- [Chandani Prajapati](https://github.com/chandaniprajapati)
- [Abderahman Moujahid](https://github.com/Abderahman88)
- [Mohammad Amer](https://github.com/mohammadamer)
## Version history
@ -54,6 +55,7 @@ Version|Date|Comments
1.6|July 16, 2021|Changed library export-to-csv with react-csv
1.7|Feb 22, 2022|Upgrade to SPFx v1.14.0
1.8|November 01, 2022|Added support for list attachments
1.9|October 20, 2024|Upgraded to SPFx v1.20.0
## Minimal Path to Awesome

View File

@ -9,7 +9,7 @@
"This web part provides easy way to render SharePoint custom list in data table view with all the necessary features."
],
"creationDateTime": "2021-03-01",
"updateDateTime": "2022-11-01",
"updateDateTime": "2024-10-20",
"products": [
"SharePoint"
],
@ -20,7 +20,7 @@
},
{
"key": "SPFX-VERSION",
"value": "1.14.0"
"value": "1.20.0"
},
{
"key": "PNPCONTROLS",

View File

@ -3,7 +3,7 @@
"solution": {
"name": "react-datatable-client-side-solution",
"id": "35299377-f8c8-4721-bd53-05602fc0c4ee",
"version": "1.5.0.0",
"version": "1.9.0.0",
"includeClientSideAssets": true,
"isDomainIsolated": false,
"developer": {

View File

@ -0,0 +1,3 @@
{
"$schema": "https://developer.microsoft.com/json-schemas/core-build/sass.schema.json"
}

View File

@ -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,
"https": true,
"initialPage": "https://enter-your-SharePoint-site/_layouts/workbench.aspx"
}
"initialPage": "https://contoso.sharepoint.com/_layouts/workbench.aspx"
}

File diff suppressed because it is too large Load Diff

View File

@ -2,45 +2,54 @@
"name": "react-datatable",
"version": "1.6.0",
"private": true,
"main": "lib/index.js",
"engines": {
"node": ">=0.10.0"
"node": ">=16.13.0 <17.0.0 || >=18.17.1 <19.0.0"
},
"main": "lib/index.js",
"scripts": {
"build": "gulp bundle",
"clean": "gulp clean",
"test": "gulp test",
"serve": "gulp bundle --custom-serve --max_old_space_size=4096 && fast-serve"
"test": "gulp test"
},
"dependencies": {
"@material-ui/core": "^4.12.3",
"@microsoft/sp-core-library": "1.14.0",
"@microsoft/sp-lodash-subset": "1.14.0",
"@microsoft/sp-office-ui-fabric-core": "1.14.0",
"@microsoft/sp-property-pane": "1.14.0",
"@microsoft/sp-webpart-base": "1.14.0",
"@fluentui/react": "^8.106.4",
"@material-ui/core": "^4.12.4",
"@microsoft/sp-component-base": "1.20.0",
"@microsoft/sp-core-library": "1.20.0",
"@microsoft/sp-lodash-subset": "1.20.0",
"@microsoft/sp-office-ui-fabric-core": "1.20.0",
"@microsoft/sp-property-pane": "1.20.0",
"@microsoft/sp-webpart-base": "1.20.0",
"@pnp/sp": "2.5.0",
"@pnp/spfx-controls-react": "3.1.0",
"@pnp/spfx-property-controls": "3.5.0",
"office-ui-fabric-react": "7.174.1",
"pdfmake": "^0.1.70",
"react": "16.13.1",
"react-csv": "^2.0.3",
"react-dom": "16.13.1"
"@pnp/spfx-controls-react": "3.19.0",
"@pnp/spfx-property-controls": "3.18.0",
"office-ui-fabric-react": "7.204.0",
"pdfmake": "0.2.14",
"react": "17.0.1",
"react-csv": "2.2.2",
"react-dom": "17.0.1",
"tslib": "2.3.1"
},
"devDependencies": {
"@types/react": "16.9.51",
"@types/react-dom": "16.9.8",
"@microsoft/sp-build-web": "1.18.0",
"@microsoft/sp-tslint-rules": "1.14.0",
"@microsoft/sp-module-interfaces": "1.14.0",
"@microsoft/rush-stack-compiler-3.9": "0.4.47",
"gulp": "~4.0.2",
"@microsoft/eslint-config-spfx": "1.20.2",
"@microsoft/eslint-plugin-spfx": "1.20.2",
"@microsoft/rush-stack-compiler-4.7": "0.1.0",
"@microsoft/sp-build-web": "1.20.2",
"@microsoft/sp-module-interfaces": "1.20.2",
"@rushstack/eslint-config": "4.0.1",
"@types/chai": "3.4.34",
"@types/mocha": "2.2.38",
"ajv": "~5.2.2",
"@types/webpack-env": "1.14.0",
"@types/es6-promise": "0.0.33",
"spfx-fast-serve-helpers": "~1.18.1"
"@types/mocha": "2.2.38",
"@types/pdfmake": "^0.2.9",
"@types/react": "17.0.45",
"@types/react-csv": "^1.1.10",
"@types/react-dom": "17.0.17",
"@types/webpack-env": "~1.15.2",
"ajv": "^6.12.5",
"eslint": "8.57.0",
"eslint-plugin-react-hooks": "4.3.0",
"gulp": "4.0.2",
"spfx-fast-serve-helpers": "~1.18.1",
"typescript": "4.7.4"
}
}

View File

@ -3,63 +3,57 @@
"react-datatable-web-part": {
"dependencies": [
{
"componentId": "f9e737b7-f0df-4597-ba8c-3060f82380db",
"componentName": "@microsoft/sp-property-pane",
"componentVersion": "1.14.0",
"componentId": "0d910c1c-13b9-4e1c-9aa4-b008c5e42d7d",
"componentName": "react",
"componentVersion": "17.0.1",
"isDirectDependency": true
},
{
"componentId": "1c6c9123-7aac-41f3-a376-3caea41ed83f",
"componentName": "@microsoft/sp-loader",
"componentVersion": "1.14.0",
"isDirectDependency": false
},
{
"componentId": "8217e442-8ed3-41fd-957d-b112e841286a",
"componentName": "@ms/sp-telemetry",
"componentVersion": "0.21.51",
"isDirectDependency": false
},
{
"componentId": "e40f8203-b39d-425a-a957-714852e33b79",
"componentName": "@microsoft/sp-dynamic-data",
"componentVersion": "1.14.0",
"isDirectDependency": false
},
{
"componentId": "73e1dc6c-8441-42cc-ad47-4bd3659f8a3a",
"componentName": "@microsoft/sp-lodash-subset",
"componentVersion": "1.14.0",
"isDirectDependency": false
"componentId": "aa0a46ec-1505-43cd-a44a-93f3a5aa460a",
"componentName": "react-dom",
"componentVersion": "17.0.1",
"isDirectDependency": true
},
{
"componentId": "7263c7d0-1d6a-45ec-8d85-d4d1d234171b",
"componentName": "@microsoft/sp-core-library",
"componentVersion": "1.14.0",
"isDirectDependency": false
"componentVersion": "1.20.0",
"isDirectDependency": true
},
{
"componentId": "01c4df03-e775-48cb-aa14-171ee5199a15",
"componentName": "tslib",
"componentVersion": "1.10.0",
"componentVersion": "2.3.1",
"isDirectDependency": false
},
{
"componentId": "2e09fb9b-13bb-48f2-859f-97d6fff71176",
"componentName": "@ms/odsp-core-bundle",
"componentVersion": "1.1.258",
"componentVersion": "1.4.195",
"isDirectDependency": false
},
{
"componentId": "f9e737b7-f0df-4597-ba8c-3060f82380db",
"componentName": "@microsoft/sp-property-pane",
"componentVersion": "1.20.0",
"isDirectDependency": true
},
{
"componentId": "78359e4b-07c2-43c6-8d0b-d060b4d577e8",
"componentName": "@microsoft/sp-diagnostics",
"componentVersion": "1.14.0",
"componentVersion": "1.20.0",
"isDirectDependency": false
},
{
"componentId": "1c4541f7-5c31-41aa-9fa8-fbc9dc14c0a8",
"componentName": "@microsoft/sp-page-context",
"componentVersion": "1.14.0",
"componentId": "73e1dc6c-8441-42cc-ad47-4bd3659f8a3a",
"componentName": "@microsoft/sp-lodash-subset",
"componentVersion": "1.20.0",
"isDirectDependency": false
},
{
"componentId": "3173fefe-9995-49d1-a75d-a5caeaaba212",
"componentName": "@ms/sp-pages-content-panel-context",
"componentVersion": "0.1.0",
"isDirectDependency": false
},
{
@ -69,33 +63,123 @@
"isDirectDependency": false
},
{
"componentId": "c07208f0-ea3b-4c1a-9965-ac1b825211a6",
"componentName": "@microsoft/sp-http",
"componentVersion": "1.14.0",
"componentId": "63d75709-2785-4c91-97ad-489b171397d4",
"componentName": "@ms/sp-fluentui-migration-reactdom-render-bundle",
"componentVersion": "0.1.0",
"isDirectDependency": false
},
{
"componentId": "0d910c1c-13b9-4e1c-9aa4-b008c5e42d7d",
"componentName": "react",
"componentVersion": "16.13.1",
"componentId": "cc2cc925-b5be-41bb-880a-f0f8030c6aff",
"componentName": "@ms/odsp-utilities-bundle",
"componentVersion": "5.6.195",
"isDirectDependency": false
},
{
"componentId": "aa0a46ec-1505-43cd-a44a-93f3a5aa460a",
"componentName": "react-dom",
"componentVersion": "16.13.1",
"componentId": "8494e7d7-6b99-47b2-a741-59873e42f16f",
"componentName": "@ms/sp-component-utilities",
"componentVersion": "12.52.18",
"isDirectDependency": false
},
{
"componentId": "8217e442-8ed3-41fd-957d-b112e841286a",
"componentName": "@ms/sp-telemetry",
"componentVersion": "0.32.116",
"isDirectDependency": false
},
{
"componentId": "0ec74f52-38bc-4a51-ab82-7c91a2b399a2",
"componentName": "@ms/sp-fluentui-v9-utilities-bundle",
"componentVersion": "0.1.0",
"isDirectDependency": false
},
{
"componentId": "72ec0651-8a26-441c-87f2-77ec66884ca3",
"componentName": "@ms/sp-fluentui-v9-react-button-bundle",
"componentVersion": "0.1.0",
"isDirectDependency": false
},
{
"componentId": "396bbc17-3d18-4f43-8299-d99720d88e22",
"componentName": "@ms/office-ui-fabric-react-bundle",
"componentVersion": "1.19.6",
"isDirectDependency": false
},
{
"componentId": "fab65e60-a04f-4772-874c-10691e4afa4b",
"componentName": "@ms/sp-fluentui-migration-tooltip-bundle",
"componentVersion": "0.1.0",
"isDirectDependency": false
},
{
"componentId": "0ad7e31a-8df9-4659-add8-a32c8e40040d",
"componentName": "@ms/sp-fluentui-migration-button-bundle",
"componentVersion": "0.1.0",
"isDirectDependency": false
},
{
"componentId": "bf211556-3cf0-412c-9618-a4f0e7069ebf",
"componentName": "@ms/sp-heading-level",
"componentVersion": "0.1.0",
"isDirectDependency": false
},
{
"componentId": "ffe5c101-373a-4bd2-bebb-13082852bab0",
"componentName": "@ms/sp-fluentui-migration-label-bundle",
"componentVersion": "0.1.0",
"isDirectDependency": false
},
{
"componentId": "1c6c9123-7aac-41f3-a376-3caea41ed83f",
"componentName": "@microsoft/sp-loader",
"componentVersion": "1.20.0",
"isDirectDependency": false
},
{
"componentId": "8496636c-2300-4915-abef-20de64c98d8b",
"componentName": "@microsoft/sp-http-base",
"componentVersion": "1.20.0",
"isDirectDependency": false
},
{
"componentId": "1c4541f7-5c31-41aa-9fa8-fbc9dc14c0a8",
"componentName": "@microsoft/sp-page-context",
"componentVersion": "1.20.0",
"isDirectDependency": false
},
{
"componentId": "e40f8203-b39d-425a-a957-714852e33b79",
"componentName": "@microsoft/sp-dynamic-data",
"componentVersion": "1.20.0",
"isDirectDependency": false
},
{
"componentId": "974a7777-0990-4136-8fa6-95d80114c2e0",
"componentName": "@microsoft/sp-webpart-base",
"componentVersion": "1.14.0",
"componentVersion": "1.20.0",
"isDirectDependency": true
},
{
"componentId": "467dc675-7cc5-4709-8aac-78e3b71bd2f6",
"componentName": "@microsoft/sp-component-base",
"componentVersion": "1.14.0",
"componentVersion": "1.20.0",
"isDirectDependency": false
},
{
"componentId": "c07208f0-ea3b-4c1a-9965-ac1b825211a6",
"componentName": "@microsoft/sp-http",
"componentVersion": "1.20.0",
"isDirectDependency": false
},
{
"componentId": "aec2bbfd-a968-4d5b-a279-12e570f378e6",
"componentName": "@microsoft/sp-http-msgraph",
"componentVersion": "1.20.0",
"isDirectDependency": false
},
{
"componentId": "6d3c733c-8cb7-4871-bb22-b5b37c1d518d",
"componentName": "@ms/sp-safehtml",
"componentVersion": "0.4.0",
"isDirectDependency": false
},
{
@ -104,7 +188,8 @@
"componentVersion": "0.1.0",
"isDirectDependency": false
}
]
],
"asyncChunks": {}
}
}
}

View File

@ -1,12 +1,12 @@
import * as React from 'react';
import * as strings from 'ReactDatatableWebPartStrings';
import pdfMake from 'pdfmake/build/pdfmake';
import pdfFonts from 'pdfmake/build/vfs_fonts';
pdfMake.vfs = pdfFonts.pdfMake.vfs;
import { IIconProps, PrimaryButton } from 'office-ui-fabric-react';
import styles from './ExportListItemsToPDF.module.scss';
import { isNullOrUndefined } from '../../utilities/utilities';
import { IPropertyPaneDropdownOption } from '@microsoft/sp-property-pane';
import * as pdfMake from "pdfmake/build/pdfmake";
import * as pdfFonts from "pdfmake/build/vfs_fonts";
import { Content } from "pdfmake/interfaces";
(pdfMake as any).vfs = pdfFonts.pdfMake.vfs;
interface IExportToPDF {
listName: string;
@ -14,7 +14,7 @@ interface IExportToPDF {
columns: any[];
oddRowColor?: string;
evenRowColor?: string;
dataSource: ()=> any[];
dataSource: () => any[];
}
export function ExportListItemsToPDF(props: IExportToPDF) {
@ -24,9 +24,26 @@ export function ExportListItemsToPDF(props: IExportToPDF) {
let { title, listName, columns, oddRowColor, evenRowColor, dataSource } = props;
function genearatePDF() {
let dataTableRows = dataSource().map(lItem => columns.reduce((arr, c) => [...arr, isNullOrUndefined(lItem[c]) ? '' : lItem[c]], []));
let dataTableRows = dataSource().map(lItem =>
columns.reduce((arr, c) => {
const value = lItem[c];
// Check for null or undefined values
if (isNullOrUndefined(value)) {
arr.push('');
}
// Check if the value is a React element (such as a div with dangerouslySetInnerHTML)
else if (typeof value === 'object' && value.$$typeof === Symbol.for('react.element')) {
//arr.push(value); // If it's a React element, add it directly to the array
arr.push(value.props.dangerouslySetInnerHTML.__html);
}
// Handle other cases (plain strings, numbers, etc.)
else {
arr.push(value);
}
return arr;
}, [])
);
let data = {
content: [
{
@ -34,26 +51,26 @@ export function ExportListItemsToPDF(props: IExportToPDF) {
fontSize: 16,
alignment: 'center',
margin: [0, 0, 0, 15]
},
} as Content,
{
style: 'tableExample',
table: {
widths: new Array(columns.length).fill("auto"),
headerRows: 1,
body: [
columns.map(c=> ({text: c, bold: true})),
columns.map(c => ({ text: c, bold: true })),
...dataTableRows
]
},
layout: {
fillColor: (rowIndex: number)=> {
fillColor: (rowIndex: number) => {
if (oddRowColor && evenRowColor)
return (rowIndex % 2 === 0) ? evenRowColor : oddRowColor;
else
return (rowIndex % 2 === 0) ? '#CCCCCC' : null;
}
}
}
} as Content
]
};
pdfMake.createPdf(data).download(`${listName}.pdf`);

View File

@ -135,7 +135,7 @@ export class Pagination extends React.Component<IPaginationProps, IPaginationSta
this.props.onChange(page, this.state.rowsPerPage);
}
private renderPageNumber(pageNumber) {
private renderPageNumber(pageNumber: any) {
if (pageNumber === this.state.currentPage) {
return (
<PrimaryButton

View File

@ -4,7 +4,7 @@ import { sp } from '@pnp/sp/presets/all';
export class SPService {
constructor(private context: WebPartContext) {
sp.setup({
spfxContext: this.context
spfxContext: this.context as any
});
}

View File

@ -43,7 +43,7 @@ export default class ReactDatatableWebPart extends BaseClientSideWebPart<IReactD
public onInit(): Promise<void> {
return super.onInit().then(_ => {
sp.setup({
spfxContext: this.context
spfxContext: this.context as any
});
this._services = new SPService(this.context);
});
@ -51,13 +51,13 @@ export default class ReactDatatableWebPart extends BaseClientSideWebPart<IReactD
private mapFieldsToObjects = () => {
let { fields = [], fieldDetails = [] } = this.properties;
return fields.map(f => fieldDetails.find(fDetails => fDetails.key === f));
return fields.map((f: string) => fieldDetails.find((fDetails: { key: string }) => fDetails.key === f));
}
public async getSelectedListFields() {
if (this.properties.list) {
let allFields = await this._services.getFields(this.properties.list);
this.properties.fieldDetails = allFields.map(field => ({ key: field.InternalName, text: field.Title, fieldType: field['odata.type'] }));
this.properties.fieldDetails = allFields.map((field: { InternalName: string; Title: string; 'odata.type': string }) => ({ key: field.InternalName, text: field.Title, fieldType: field['odata.type'] }));
this.context.propertyPane.refresh();
}
}

View File

@ -64,8 +64,8 @@ export default class ReactDatatable extends React.Component<IReactDatatableProps
if (fields.length) {
let listItems = await this._services.getListItems(this.props.list, fields);
/** Format list items for data grid */
listItems = listItems && listItems.map(item => ({
id: item.Id, ...fields.reduce((ob, f) => {
listItems = listItems && listItems.map((item: any) => ({
id: item.Id, ...fields.reduce((ob: { [key: string]: any }, f) => {
if (f.key === "Attachments") {
ob[f.key] = this.formatColumnValue(item["AttachmentFiles"], f.fieldType);
}
@ -135,7 +135,7 @@ export default class ReactDatatable extends React.Component<IReactDatatableProps
value = JSON.parse(value).DisplayName;
break;
case 'SP.Field':
value = value?.map(v => <><RenderImageOrLink key={v['odata.id']} url={v['ServerRelativeUrl']} description={v['FileName']}></RenderImageOrLink><br /></>);
value = value?.map((v: any) => <><RenderImageOrLink key={v['odata.id']} url={v['ServerRelativeUrl']} description={v['FileName']}></RenderImageOrLink><br /></>);
break;
default:
break;
@ -165,7 +165,7 @@ export default class ReactDatatable extends React.Component<IReactDatatableProps
private exportDataFormatter(fields: Array<IPropertyPaneDropdownOption & { fieldType: string }>, listItems: any[], cellFormatterFn: (value: any, type: string) => any) {
return listItems && listItems.map(item => ({
...fields.reduce((ob, f) => {
...fields.reduce((ob: { [key: string]: any }, f) => {
ob[f.text] = item[f.key] ? cellFormatterFn(item[f.key], f.fieldType) : '-';
return ob;
}, {})
@ -200,7 +200,7 @@ export default class ReactDatatable extends React.Component<IReactDatatableProps
const { sortingFields, sortDirection } = this.state;
const isAsc = sortDirection === 'asc' ? 1 : -1;
let sortFieldDetails = this.props.fields.filter(f => f.key === sortingFields)[0];
let sortFn: (a, b) => number;
let sortFn: (a: any, b: any) => number;
switch (sortFieldDetails.fieldType) {
case 'SP.FieldDateTime':
sortFn = (a, b) => ((new Date(a[sortingFields]).getTime() > new Date(b[sortingFields]).getTime()) ? 1 : -1) * isAsc;

View File

@ -1,5 +1,5 @@
{
"extends": "./node_modules/@microsoft/rush-stack-compiler-3.9/includes/tsconfig-web.json",
"extends": "./node_modules/@microsoft/rush-stack-compiler-4.7/includes/tsconfig-web.json",
"compilerOptions": {
"target": "es5",
"forceConsistentCasingInFileNames": true,
@ -14,6 +14,7 @@
"inlineSources": false,
"strictNullChecks": false,
"noUnusedLocals": false,
"noImplicitAny": true,
"typeRoots": [
"./node_modules/@types",
"./node_modules/@microsoft"

View File

@ -1,29 +0,0 @@
{
"extends": "./node_modules/@microsoft/sp-tslint-rules/base-tslint.json",
"rules": {
"class-name": false,
"export-name": false,
"forin": false,
"label-position": false,
"member-access": true,
"no-arg": false,
"no-console": false,
"no-construct": false,
"no-duplicate-variable": true,
"no-eval": false,
"no-function-expression": true,
"no-internal-module": true,
"no-shadowed-variable": true,
"no-switch-case-fall-through": true,
"no-unnecessary-semicolons": true,
"no-unused-expression": true,
"no-with-statement": true,
"semicolon": true,
"trailing-comma": false,
"typedef": false,
"typedef-whitespace": false,
"use-named-parameter": true,
"variable-name": false,
"whitespace": false
}
}

View File

@ -1,7 +1,7 @@
// For more information on how to run this SPFx project in a VS Code Remote Container, please visit https://aka.ms/spfx-devcontainer
{
"name": "SPFx 1.15.2",
"image": "docker.io/m365pnp/spfx:1.15.2",
"name": "SPFx 1.20.0",
"image": "docker.io/m365pnp/spfx:1.20.0",
// Set *default* container specific settings.json values on container create.
"settings": {},
// Add the IDs of extensions you want installed when the container is created.

View File

@ -3,12 +3,17 @@
"plusBeta": true,
"isCreatingSolution": true,
"environment": "spo",
"version": "1.15.2",
"version": "1.20.0",
"nodeVersion": "18.20.3",
"libraryName": "spfx-pnp-js-example",
"libraryId": "d20ceaf6-094b-4086-b7a0-85761bc8be23",
"packageManager": "npm",
"solutionShortDescription": "spfx-pnp-js-example description",
"isDomainIsolated": false,
"componentType": "webpart"
"componentType": "webpart",
"sdkVersions": {
"@microsoft/teams-js": "2.24.0",
"@microsoft/microsoft-graph-client": "3.0.2"
}
}
}

View File

@ -15,8 +15,8 @@ This implementation refactors to take aspects out and utilize and showcase PnPjs
| Every SPFx version is only compatible with specific version(s) of Node.js. In order to be able to build this sample, please ensure that the version of Node on your workstation matches one of the versions listed in this section. This sample will not work on a different version of Node.|
|Refer to <https://aka.ms/spfx-matrix> for more information on SPFx compatibility. |
![SPFx 1.15.2](https://img.shields.io/badge/SPFx-1.15.2-green.svg)
![Node.js v14 | v12| v16](https://img.shields.io/badge/Node.js-v12%20%7C%20v14%20%7C%20v16-green.svg)
![SPFx 1.20.0](https://img.shields.io/badge/SPFx-1.20.0-green.svg)
![Node.js v18](https://img.shields.io/badge/Node.js-v18-green.svg)
![Compatible with SharePoint Online](https://img.shields.io/badge/SharePoint%20Online-Compatible-green.svg)
![Incompatible with SharePoint 2019](https://img.shields.io/badge/SharePoint%20Server%202019-Incompatible-red.svg)
![Does not work with SharePoint 2016 (Feature Pack 2)](https://img.shields.io/badge/SharePoint%20Server%202016%20(Feature%20Pack%202)-Incompatible-red.svg "SharePoint Server 2016 Feature Pack 2 requires SPFx 1.1")
@ -35,9 +35,14 @@ For more information about SPFx compatibility, please refer to <https://aka.ms/s
<!-- CONTRIBUTORS-LIST:START - Do not remove or modify this section -->
<!-- prettier-ignore-start -->
<!-- markdownlint-disable -->
|[![Julie Turner](https://avatars.githubusercontent.com/u/7570936?v=4&s=100)](https://github.com/juliemturner)|[![Beau Cameron](https://avatars.githubusercontent.com/u/7944457?v=4&s=100)](https://github.com/bcameron1231)|
|:--:|:--:|
**[Julie Turner](https://github.com/juliemturner)**|**[Beau Cameron](https://github.com/bcameron1231)**|
|[![Julie Turner](https://avatars.githubusercontent.com/u/7570936?v=4&s=100)](https://github.com/juliemturner)|[![Beau Cameron](https://avatars.githubusercontent.com/u/7944457?v=4&s=100)](https://github.com/bcameron1231)
|:--:|:--:|
**[Julie Turner](https://github.com/juliemturner)**|**[Beau Cameron](https://github.com/bcameron1231)**
[![Gretchun Kim](https://avatars.githubusercontent.com/u/8564035?v=4&s=100)](https://github.com/juliemturner)
**[Gretchun Kim](https://github.com/gretchunkim)**
<!-- markdownlint-restore -->
<!-- prettier-ignore-end -->
<!-- CONTRIBUTORS-LIST:END -->
@ -47,6 +52,7 @@ For more information about SPFx compatibility, please refer to <https://aka.ms/s
Version|Date|Comments
-------|----|--------
1.3| Oct 23, 2024| Upgraded SPFx to 1.20.0
1.2|Feb 14, 2023|Fixed context handling
1.1|Aug 29, 2022|Bug fix & dependency updates
1.0|Jan 13, 2022|Initial release

View File

@ -10,7 +10,7 @@
"Shows how to use PnPjs in a React web part"
],
"creationDateTime": "2023-02-18",
"updateDateTime": "2023-02-18",
"updateDateTime": "2024-10-23",
"products": [
"SharePoint"
],
@ -21,7 +21,7 @@
},
{
"key": "SPFX-VERSION",
"value": "1.15.2"
"value": "1.20.0"
}
],
"thumbnails": [
@ -42,7 +42,13 @@
"gitHubAccount": "bcameron1231",
"name": "Beau Cameron",
"pictureUrl": "https://github.com/bcameron1231.png"
},
{
"gitHubAccount": "gretchunkim",
"name": "Gretchun Kim",
"pictureUrl": "https://github.com/gretchunkim.png"
}
],
"references": [
{

View File

@ -0,0 +1,3 @@
{
"$schema": "https://developer.microsoft.com/json-schemas/core-build/sass.schema.json"
}

View File

@ -2,5 +2,5 @@
"$schema": "https://developer.microsoft.com/json-schemas/core-build/serve.schema.json",
"port": 4321,
"https": true,
"initialPage": "https://enter-your-SharePoint-site/_layouts/workbench.aspx"
"initialPage": "https://{tenantDomain}/_layouts/workbench.aspx"
}

File diff suppressed because it is too large Load Diff

View File

@ -1,38 +1,46 @@
{
"name": "spfx-pnp-js-example",
"version": "1.1.0",
"private": true,
"main": "lib/index.js",
"scripts": {
"build": "gulp bundle",
"clean": "gulp clean",
"test": "gulp test"
},
"dependencies": {
"@microsoft/sp-core-library": "1.15.2",
"@microsoft/sp-lodash-subset": "1.15.2",
"@microsoft/sp-office-ui-fabric-core": "1.15.2",
"@microsoft/sp-property-pane": "1.15.2",
"@microsoft/sp-webpart-base": "1.15.2",
"@pnp/logging": "^3.6.0",
"@pnp/sp": "^3.6.0",
"react": "16.13.1",
"react-dom": "16.13.1",
"tslib": "2.3.1"
},
"devDependencies": {
"@microsoft/rush-stack-compiler-4.5": "^0.2.2",
"@microsoft/sp-build-web": "1.20.1",
"@microsoft/sp-module-interfaces": "1.15.2",
"@types/react": "16.9.51",
"@types/react-dom": "16.9.8",
"@types/webpack-env": "1.15.2",
"ajv": "6.12.5",
"gulp": "~4.0.2",
"@rushstack/eslint-config": "2.5.1",
"@microsoft/eslint-plugin-spfx": "1.15.2",
"@microsoft/eslint-config-spfx": "1.15.2",
"eslint": "8.7.0",
"eslint-plugin-react-hooks": "4.3.0"
}
}
"name": "spfx-pnp-js-example",
"version": "1.1.0",
"private": true,
"main": "lib/index.js",
"engines": {
"node": ">=16.13.0 <17.0.0 || >=18.17.1 <19.0.0"
},
"scripts": {
"build": "gulp bundle",
"clean": "gulp clean",
"test": "gulp test"
},
"dependencies": {
"@fluentui/react": "8.106.4",
"@microsoft/generator-sharepoint": "1.20.0",
"@microsoft/sp-adaptive-card-extension-base": "1.20.0",
"@microsoft/sp-core-library": "1.20.0",
"@microsoft/sp-lodash-subset": "1.20.0",
"@microsoft/sp-office-ui-fabric-core": "1.20.0",
"@microsoft/sp-property-pane": "1.20.0",
"@microsoft/sp-webpart-base": "1.20.0",
"@pnp/graph": "^4.0.1",
"@pnp/logging": "^4.0.1",
"@pnp/sp": "^4.0.1",
"react": "17.0.1",
"react-dom": "17.0.1",
"tslib": "2.3.1"
},
"devDependencies": {
"@microsoft/eslint-config-spfx": "1.20.2",
"@microsoft/eslint-plugin-spfx": "1.20.2",
"@microsoft/rush-stack-compiler-4.7": "0.1.0",
"@microsoft/sp-build-web": "1.20.2",
"@microsoft/sp-module-interfaces": "1.20.2",
"@rushstack/eslint-config": "4.0.1",
"@types/react": "17.0.45",
"@types/react-dom": "17.0.17",
"@types/webpack-env": "1.18.2",
"ajv": "6.12.5",
"eslint": "8.57.0",
"eslint-plugin-react-hooks": "4.3.0",
"gulp": "~4.0.2",
"typescript": "4.7.4"
}
}

View File

@ -1,4 +1,4 @@
@import '~office-ui-fabric-react/dist/sass/References.scss';
@import '~@fluentui/react/dist/sass/References.scss';
.pnPjsExample {
overflow: hidden;

View File

@ -9,8 +9,9 @@ import { Caching } from "@pnp/queryable";
import { getSP } from "../pnpjsConfig";
import { SPFI, spfi } from "@pnp/sp";
import { Logger, LogLevel } from "@pnp/logging";
import { IItemUpdateResult } from "@pnp/sp/items";
import { Label, PrimaryButton } from '@microsoft/office-ui-fabric-react-bundle';
import { Web } from "@pnp/sp/webs";
import { Label, PrimaryButton } from '@fluentui/react';
export interface IAsyncAwaitPnPJsProps {
description: string;
@ -126,9 +127,9 @@ export default class PnPjsExample extends React.Component<IPnPjsExampleProps, II
const [batchedSP, execute] = this._sp.batched();
//Clone items from the state
const items = JSON.parse(JSON.stringify(this.state.items));
const items: IFile[] = JSON.parse(JSON.stringify(this.state.items));
const res: IItemUpdateResult[] = [];
const res: { Id: number, Title: string }[] = [];
for (let i = 0; i < items.length; i++) {
// you need to use .then syntax here as otherwise the application will stop and await the result
@ -138,6 +139,7 @@ export default class PnPjsExample extends React.Component<IPnPjsExampleProps, II
.getById(items[i].Id)
.update({ Title: `${items[i].Name}-Updated` })
.then(r => res.push(r));
}
// Executes the batched calls
await execute();
@ -146,8 +148,8 @@ export default class PnPjsExample extends React.Component<IPnPjsExampleProps, II
for (let i = 0; i < res.length; i++) {
//If the result is successful update the item
//NOTE: This code is over simplified, you need to make sure the Id's match
const item = await res[i].item.select("Id, Title")<{ Id: number, Title: string }>();
items[i].Name = item.Title;
items[i].Title = `${items[i].Name}-Updated`;
}
//Update the state which rerenders the component

View File

@ -1,5 +1,5 @@
{
"extends": "./node_modules/@microsoft/rush-stack-compiler-4.5/includes/tsconfig-web.json",
"extends": "./node_modules/@microsoft/rush-stack-compiler-4.7/includes/tsconfig-web.json",
"compilerOptions": {
"target": "es5",
"forceConsistentCasingInFileNames": true,

View File

@ -586,14 +586,12 @@
"@babel/helper-string-parser": {
"version": "7.19.4",
"resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.19.4.tgz",
"integrity": "sha512-nHtDoQcuqFmwYNYPz3Rah5ph2p8PFeFCsZk9A/48dPc/rGocJ5J3hAAZ7pb76VWX3fZKu+uEr/FhH5jLx7umrw==",
"dev": true
"integrity": "sha512-nHtDoQcuqFmwYNYPz3Rah5ph2p8PFeFCsZk9A/48dPc/rGocJ5J3hAAZ7pb76VWX3fZKu+uEr/FhH5jLx7umrw=="
},
"@babel/helper-validator-identifier": {
"version": "7.19.1",
"resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.19.1.tgz",
"integrity": "sha512-awrNfaMtnHUr653GgGEs++LlAvW6w+DcPrOliSMXWCKo597CwL5Acf/wWdNkf/tfEQE3mjkeD1YOVZOUV/od1w==",
"dev": true
"integrity": "sha512-awrNfaMtnHUr653GgGEs++LlAvW6w+DcPrOliSMXWCKo597CwL5Acf/wWdNkf/tfEQE3mjkeD1YOVZOUV/od1w=="
},
"@babel/helper-validator-option": {
"version": "7.18.6",
@ -626,8 +624,7 @@
"@babel/parser": {
"version": "7.20.7",
"resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.20.7.tgz",
"integrity": "sha512-T3Z9oHybU+0vZlY9CiDSJQTD5ZapcW18ZctFMi0MOAl/4BjFF4ul7NVSARLdbGO5vDqy9eQiGTV0LtKfvCYvcg==",
"dev": true
"integrity": "sha512-T3Z9oHybU+0vZlY9CiDSJQTD5ZapcW18ZctFMi0MOAl/4BjFF4ul7NVSARLdbGO5vDqy9eQiGTV0LtKfvCYvcg=="
},
"@babel/plugin-syntax-async-generators": {
"version": "7.8.4",
@ -896,7 +893,6 @@
"version": "7.20.7",
"resolved": "https://registry.npmjs.org/@babel/types/-/types-7.20.7.tgz",
"integrity": "sha512-69OnhBxSSgK0OzTJai4kyPDiKTIe3j+ctaHdIGVbRahTLAT7L3R9oeXHC2aVSuGYt3cVnoAMDmOCgJ2yaiLMvg==",
"dev": true,
"requires": {
"@babel/helper-string-parser": "^7.19.4",
"@babel/helper-validator-identifier": "^7.19.1",
@ -7419,6 +7415,73 @@
"tslib": "^1.7.1"
}
},
"@vue/compiler-core": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/@vue/compiler-core/-/compiler-core-3.0.0.tgz",
"integrity": "sha512-XqPC7vdv4rFE77S71oCHmT1K4Ks3WE2Gi6Lr4B5wn0Idmp+NyQQBUHsCNieMDRiEpgtJrw+yOHslrsV0AfAsfQ==",
"requires": {
"@babel/parser": "^7.11.5",
"@babel/types": "^7.11.5",
"@vue/shared": "3.0.0",
"estree-walker": "^2.0.1",
"source-map": "^0.6.1"
},
"dependencies": {
"source-map": {
"version": "0.6.1",
"resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
"integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g=="
}
}
},
"@vue/compiler-dom": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/@vue/compiler-dom/-/compiler-dom-3.0.0.tgz",
"integrity": "sha512-ukDEGOP8P7lCPyStuM3F2iD5w2QPgUu2xwCW2XNeqPjFKIlR2xMsWjy4raI/cLjN6W16GtlMFaZdK8tLj5PRog==",
"requires": {
"@vue/compiler-core": "3.0.0",
"@vue/shared": "3.0.0"
}
},
"@vue/reactivity": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/@vue/reactivity/-/reactivity-3.0.0.tgz",
"integrity": "sha512-mEGkztGQrAPZRhV7C6PorrpT3+NtuA4dY2QjMzzrW31noKhssWTajRZTwpLF39NBRrF5UU6cp9+1I0FfavMgEQ==",
"requires": {
"@vue/shared": "3.0.0"
}
},
"@vue/runtime-core": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/@vue/runtime-core/-/runtime-core-3.0.0.tgz",
"integrity": "sha512-3ABMLeA0ZbeVNLbGGLXr+pNUwqXILOqz8WCVGfDWwQb+jW114Cm8djOHVVDoqdvRETQvDf8yHSUmpKHZpQuTkA==",
"requires": {
"@vue/reactivity": "3.0.0",
"@vue/shared": "3.0.0"
}
},
"@vue/runtime-dom": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/@vue/runtime-dom/-/runtime-dom-3.0.0.tgz",
"integrity": "sha512-f312n5w9gK6mVvkDSj6/Xnot1XjlKXzFBYybmoy6ahAVC8ExbQ+LOWti1IZM/adU8VMNdKaw7Q53Hxz3y5jX8g==",
"requires": {
"@vue/runtime-core": "3.0.0",
"@vue/shared": "3.0.0",
"csstype": "^2.6.8"
},
"dependencies": {
"csstype": {
"version": "2.6.21",
"resolved": "https://registry.npmjs.org/csstype/-/csstype-2.6.21.tgz",
"integrity": "sha512-Z1PhmomIfypOpoMjRQB70jfvy/wxT50qW08YXO5lMIJkrdq4yOTR+AW7FqutScmB9NkLwxo+jU+kZLbofZZq/w=="
}
}
},
"@vue/shared": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/@vue/shared/-/shared-3.0.0.tgz",
"integrity": "sha512-4XWL/avABGxU2E2ZF1eZq3Tj7fvksCMssDZUHOykBIMmh5d+KcAnQMC5XHMhtnA0NAvktYsA2YpdsVwVmhWzvA=="
},
"@webassemblyjs/ast": {
"version": "1.9.0",
"resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.9.0.tgz",
@ -11437,6 +11500,11 @@
"integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==",
"dev": true
},
"estree-walker": {
"version": "2.0.2",
"resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz",
"integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w=="
},
"esutils": {
"version": "2.0.2",
"resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.2.tgz",
@ -22278,8 +22346,7 @@
"to-fast-properties": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz",
"integrity": "sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==",
"dev": true
"integrity": "sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog=="
},
"to-object-path": {
"version": "0.3.0",
@ -23178,9 +23245,14 @@
"dev": true
},
"vue": {
"version": "2.6.10",
"resolved": "https://registry.npmjs.org/vue/-/vue-2.6.10.tgz",
"integrity": "sha512-ImThpeNU9HbdZL3utgMCq0oiMzAkt1mcgy3/E6zWC/G6AaQoeuFdsl9nDhTDU3X1R6FK7nsIUuRACVcjI+A2GQ=="
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/vue/-/vue-3.0.0.tgz",
"integrity": "sha512-ZMrAARZ32sGIaYKr7Fk2GZEBh/VhulSrGxcGBiAvbN4fhjl3tuJyNFbbbLFqGjndbLoBW66I2ECq8ICdvkKdJw==",
"requires": {
"@vue/compiler-dom": "3.0.0",
"@vue/runtime-dom": "3.0.0",
"@vue/shared": "3.0.0"
}
},
"vue-class-component": {
"version": "7.1.0",

View File

@ -25,7 +25,7 @@
"@types/es6-promise": "0.0.33",
"@types/webpack-env": "1.13.1",
"office-ui-fabric-vue": "^1.2.0",
"vue": "^2.6.10",
"vue": "^3.0.0",
"vue-class-component": "^7.0.2",
"vue-property-decorator": "^8.1.0"
},

View File

@ -336,6 +336,11 @@
resolved "https://registry.yarnpkg.com/@babel/helper-string-parser/-/helper-string-parser-7.22.5.tgz#533f36457a25814cf1df6488523ad547d784a99f"
integrity sha512-mM4COjgZox8U+JcXQwPijIZLElkgEpO5rsERVDJTc2qfCDfERyob6k5WegS14SX18IIjv+XD+GrqNumY5JRCDw==
"@babel/helper-string-parser@^7.25.9":
version "7.25.9"
resolved "https://registry.yarnpkg.com/@babel/helper-string-parser/-/helper-string-parser-7.25.9.tgz#1aabb72ee72ed35789b4bbcad3ca2862ce614e8c"
integrity sha512-4A/SCr/2KLd5jrtOMFzaKjVtAei3+2r/NChoBNoZ3EyP/+GlhoaEGoWOZUmFmoITP7zOJyHIMm+DYRd8o3PvHA==
"@babel/helper-validator-identifier@^7.18.6":
version "7.18.6"
resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.18.6.tgz#9c97e30d31b2b8c72a1d08984f2ca9b574d7a076"
@ -351,6 +356,11 @@
resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.20.tgz#c4ae002c61d2879e724581d96665583dbc1dc0e0"
integrity sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A==
"@babel/helper-validator-identifier@^7.25.9":
version "7.25.9"
resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.25.9.tgz#24b64e2c3ec7cd3b3c547729b8d16871f22cbdc7"
integrity sha512-Ed61U6XJc3CVRfkERJWDz4dJwKe7iLmmJsbOGu9wSloNSFttHV0I8g6UAgb7qnK5ly5bGLPd4oXZlxCdANBOWQ==
"@babel/helper-validator-option@^7.18.6":
version "7.18.6"
resolved "https://registry.yarnpkg.com/@babel/helper-validator-option/-/helper-validator-option-7.18.6.tgz#bf0d2b5a509b1f336099e4ff36e1a63aa5db4db8"
@ -388,6 +398,13 @@
resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.20.7.tgz#66fe23b3c8569220817d5feb8b9dcdc95bb4f71b"
integrity sha512-T3Z9oHybU+0vZlY9CiDSJQTD5ZapcW18ZctFMi0MOAl/4BjFF4ul7NVSARLdbGO5vDqy9eQiGTV0LtKfvCYvcg==
"@babel/parser@^7.11.5":
version "7.25.9"
resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.25.9.tgz#8fcaa079ac7458facfddc5cd705cc8005e4d3817"
integrity sha512-aI3jjAAO1fh7vY/pBGsn1i9LDbRP43+asrRlkPuTXW5yHXtd1NgTEMudbBoDDxrf1daEEfPJqR+JBMakzrR4Dg==
dependencies:
"@babel/types" "^7.25.9"
"@babel/parser@^7.22.15", "@babel/parser@^7.23.0":
version "7.23.0"
resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.23.0.tgz#da950e622420bf96ca0d0f2909cdddac3acd8719"
@ -513,6 +530,14 @@
"@babel/helper-validator-identifier" "^7.19.1"
to-fast-properties "^2.0.0"
"@babel/types@^7.11.5", "@babel/types@^7.25.9":
version "7.25.9"
resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.25.9.tgz#620f35ea1f4233df529ec9a2668d2db26574deee"
integrity sha512-OwS2CM5KocvQ/k7dFJa8i5bNGJP0hXWfVCfDkqRFP1IreH1JDC7wG6eCYCi0+McbfT8OR/kNqsI0UU0xP9H6PQ==
dependencies:
"@babel/helper-string-parser" "^7.25.9"
"@babel/helper-validator-identifier" "^7.25.9"
"@babel/types@^7.22.15", "@babel/types@^7.22.5", "@babel/types@^7.23.0":
version "7.23.0"
resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.23.0.tgz#8c1f020c9df0e737e4e247c0619f58c68458aaeb"
@ -2987,6 +3012,54 @@
prop-types "^15.7.2"
tslib "^1.10.0"
"@vue/compiler-core@3.0.0":
version "3.0.0"
resolved "https://registry.yarnpkg.com/@vue/compiler-core/-/compiler-core-3.0.0.tgz#25e4f079cf6c39f83bad23700f814c619105a0f2"
integrity sha512-XqPC7vdv4rFE77S71oCHmT1K4Ks3WE2Gi6Lr4B5wn0Idmp+NyQQBUHsCNieMDRiEpgtJrw+yOHslrsV0AfAsfQ==
dependencies:
"@babel/parser" "^7.11.5"
"@babel/types" "^7.11.5"
"@vue/shared" "3.0.0"
estree-walker "^2.0.1"
source-map "^0.6.1"
"@vue/compiler-dom@3.0.0":
version "3.0.0"
resolved "https://registry.yarnpkg.com/@vue/compiler-dom/-/compiler-dom-3.0.0.tgz#4cbb48fcf1f852daef2babcf9953b681ac463526"
integrity sha512-ukDEGOP8P7lCPyStuM3F2iD5w2QPgUu2xwCW2XNeqPjFKIlR2xMsWjy4raI/cLjN6W16GtlMFaZdK8tLj5PRog==
dependencies:
"@vue/compiler-core" "3.0.0"
"@vue/shared" "3.0.0"
"@vue/reactivity@3.0.0":
version "3.0.0"
resolved "https://registry.yarnpkg.com/@vue/reactivity/-/reactivity-3.0.0.tgz#fd15632a608650ce2a969c721787e27e2c80aa6b"
integrity sha512-mEGkztGQrAPZRhV7C6PorrpT3+NtuA4dY2QjMzzrW31noKhssWTajRZTwpLF39NBRrF5UU6cp9+1I0FfavMgEQ==
dependencies:
"@vue/shared" "3.0.0"
"@vue/runtime-core@3.0.0":
version "3.0.0"
resolved "https://registry.yarnpkg.com/@vue/runtime-core/-/runtime-core-3.0.0.tgz#480febf1bfe32798b6abbd71a88f8e8b473a51c2"
integrity sha512-3ABMLeA0ZbeVNLbGGLXr+pNUwqXILOqz8WCVGfDWwQb+jW114Cm8djOHVVDoqdvRETQvDf8yHSUmpKHZpQuTkA==
dependencies:
"@vue/reactivity" "3.0.0"
"@vue/shared" "3.0.0"
"@vue/runtime-dom@3.0.0":
version "3.0.0"
resolved "https://registry.yarnpkg.com/@vue/runtime-dom/-/runtime-dom-3.0.0.tgz#e0d1f7c7e22e1318696014cc3501e06b288c2e11"
integrity sha512-f312n5w9gK6mVvkDSj6/Xnot1XjlKXzFBYybmoy6ahAVC8ExbQ+LOWti1IZM/adU8VMNdKaw7Q53Hxz3y5jX8g==
dependencies:
"@vue/runtime-core" "3.0.0"
"@vue/shared" "3.0.0"
csstype "^2.6.8"
"@vue/shared@3.0.0":
version "3.0.0"
resolved "https://registry.yarnpkg.com/@vue/shared/-/shared-3.0.0.tgz#ec089236629ecc0f10346b92f101ff4339169f1a"
integrity sha512-4XWL/avABGxU2E2ZF1eZq3Tj7fvksCMssDZUHOykBIMmh5d+KcAnQMC5XHMhtnA0NAvktYsA2YpdsVwVmhWzvA==
"@webassemblyjs/ast@1.9.0":
version "1.9.0"
resolved "https://registry.yarnpkg.com/@webassemblyjs/ast/-/ast-1.9.0.tgz#bd850604b4042459a5a41cd7d338cbed695ed964"
@ -5170,6 +5243,11 @@ csstype@^2.2.0:
resolved "https://registry.yarnpkg.com/csstype/-/csstype-2.6.4.tgz#d585a6062096e324e7187f80e04f92bd0f00e37f"
integrity sha512-lAJUJP3M6HxFXbqtGRc0iZrdyeN+WzOWeY0q/VnFzI+kqVrYIzC7bWlKqCW7oCIdzoPkvfp82EVvrTlQ8zsWQg==
csstype@^2.6.8:
version "2.6.21"
resolved "https://registry.yarnpkg.com/csstype/-/csstype-2.6.21.tgz#2efb85b7cc55c80017c66a5ad7cbd931fda3a90e"
integrity sha512-Z1PhmomIfypOpoMjRQB70jfvy/wxT50qW08YXO5lMIJkrdq4yOTR+AW7FqutScmB9NkLwxo+jU+kZLbofZZq/w==
currently-unhandled@^0.4.1:
version "0.4.1"
resolved "https://registry.yarnpkg.com/currently-unhandled/-/currently-unhandled-0.4.1.tgz#988df33feab191ef799a61369dd76c17adf957ea"
@ -5900,6 +5978,11 @@ estraverse@^4.1.0, estraverse@^4.1.1, estraverse@^4.2.0:
resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-4.2.0.tgz#0dee3fed31fcd469618ce7342099fc1afa0bdb13"
integrity sha1-De4/7TH81GlhjOc0IJn8GvoL2xM=
estree-walker@^2.0.1:
version "2.0.2"
resolved "https://registry.yarnpkg.com/estree-walker/-/estree-walker-2.0.2.tgz#52f010178c2a4c117a7757cfe942adb7d2da4cac"
integrity sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==
esutils@^2.0.2:
version "2.0.2"
resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.2.tgz#0abf4f1caa5bcb1f7a9d8acc6dea4faaa04bac9b"
@ -13917,10 +14000,14 @@ vue-template-compiler@^2.6.10:
de-indent "^1.0.2"
he "^1.1.0"
vue@^2.6.10:
version "2.6.10"
resolved "https://registry.yarnpkg.com/vue/-/vue-2.6.10.tgz#a72b1a42a4d82a721ea438d1b6bf55e66195c637"
integrity sha512-ImThpeNU9HbdZL3utgMCq0oiMzAkt1mcgy3/E6zWC/G6AaQoeuFdsl9nDhTDU3X1R6FK7nsIUuRACVcjI+A2GQ==
vue@^3.0.0:
version "3.0.0"
resolved "https://registry.yarnpkg.com/vue/-/vue-3.0.0.tgz#cfb5df5c34efce319b113a1667d12b74dcfd9c90"
integrity sha512-ZMrAARZ32sGIaYKr7Fk2GZEBh/VhulSrGxcGBiAvbN4fhjl3tuJyNFbbbLFqGjndbLoBW66I2ECq8ICdvkKdJw==
dependencies:
"@vue/compiler-dom" "3.0.0"
"@vue/runtime-dom" "3.0.0"
"@vue/shared" "3.0.0"
w3c-hr-time@^1.0.1:
version "1.0.1"