Full Code of pnp/sp-starter-kit for AI

master 6215f3e02e20 cached
894 files
24.8 MB
1.2M tokens
503 symbols
1 requests
Download .txt
Showing preview only (4,637K chars total). Download the full file or copy to clipboard to get everything.
Repository: pnp/sp-starter-kit
Branch: master
Commit: 6215f3e02e20
Files: 894
Total size: 24.8 MB

Directory structure:
gitextract_4xefdc4j/

├── .deployment
├── .github/
│   ├── CONTRIBUTING.md
│   ├── ISSUE_TEMPLATE/
│   │   ├── ---bug.md
│   │   ├── ---enhancement.md
│   │   └── --question.md
│   ├── ISSUE_TEMPLATE.md
│   └── PULL_REQUEST_TEMPLATE.md
├── .gitignore
├── .tours/
│   └── spo-solution-overview.tour
├── LICENSE
├── README.md
├── assets/
│   ├── designs/
│   │   ├── portalsitescript.js
│   │   └── portaltheme.xml
│   ├── documents/
│   │   └── Contoso_Report.pptx
│   ├── functions/
│   │   ├── applyportaltemplate/
│   │   │   ├── function.json
│   │   │   ├── modules/
│   │   │   │   └── SharePointPnPPowerShellOnline/
│   │   │   │       ├── SharePointPnP.PowerShell.Online.Commands.Format.ps1xml
│   │   │   │       ├── SharePointPnP.PowerShell.Online.Commands.dll-help.xml
│   │   │   │       ├── SharePointPnPPowerShellOnline.psd1
│   │   │   │       └── SharePointPnPPowerShellOnlineAliases.psm1
│   │   │   ├── portal.xml
│   │   │   └── run.ps1
│   │   └── host.json
│   └── readme.md
├── changelog.md
├── documentation/
│   ├── README.md
│   ├── api-management.md
│   ├── common-provision-results.md
│   ├── components/
│   │   ├── ext-alert.md
│   │   ├── ext-classification.md
│   │   ├── ext-collab-discussnow.md
│   │   ├── ext-collab-footer.md
│   │   ├── ext-portal-footer.md
│   │   ├── ext-redirect.md
│   │   ├── lib-shared.md
│   │   ├── wp-banner.md
│   │   ├── wp-followed-sites.md
│   │   ├── wp-links.md
│   │   ├── wp-lob-integration.md
│   │   ├── wp-people-directory.md
│   │   ├── wp-personal-calendar.md
│   │   ├── wp-personal-contacts.md
│   │   ├── wp-personal-email.md
│   │   ├── wp-personal-tasks.md
│   │   ├── wp-recent-contacts.md
│   │   ├── wp-recently-used-documents.md
│   │   ├── wp-recently-visited-sites.md
│   │   ├── wp-site-information.md
│   │   ├── wp-stock-information.md
│   │   ├── wp-tiles.md
│   │   ├── wp-weather-information.md
│   │   └── wp-world-time.md
│   ├── manual-deploy-sppkg-solution.md
│   ├── modifying-spfx-solutions.md
│   ├── tenant-settings.md
│   └── term-store.md
├── lerna.json
├── package/
│   ├── readme.md
│   └── sharepoint-starter-kit.sppkg
├── package.json
├── provisioning/
│   ├── .vscode/
│   │   └── launch.json
│   ├── readme-sp2019.md
│   ├── readme-spfx-only.md
│   ├── readme.md
│   ├── starterkit-spfx-only.pnp
│   └── starterkit.pnp
├── sample-lob-service/
│   └── SharePointPnP.LobScenario/
│       ├── .gitignore
│       ├── Controllers/
│       │   └── CustomersController.cs
│       ├── Models/
│       │   ├── Customer.cs
│       │   └── LobResponse.cs
│       ├── Program.cs
│       ├── README.md
│       ├── SharePointPnP.LobScenario.csproj
│       ├── SharePointPnP.LobScenario.sln
│       ├── Startup.cs
│       └── appsettings.json
└── source/
    ├── README.md
    ├── js-application-redirect/
    │   ├── .editorconfig
    │   ├── .eslintrc.js
    │   ├── .gitignore
    │   ├── .npmignore
    │   ├── .vscode/
    │   │   ├── launch.json
    │   │   └── settings.json
    │   ├── .yo-rc.json
    │   ├── README.md
    │   ├── config/
    │   │   ├── config.json
    │   │   ├── deploy-azure-storage.json
    │   │   ├── package-solution.json
    │   │   ├── sass.json
    │   │   ├── serve.json
    │   │   └── write-manifests.json
    │   ├── gulpfile.js
    │   ├── package.json
    │   ├── sharepoint/
    │   │   └── assets/
    │   │       ├── ClientSideInstance.xml
    │   │       └── elements.xml
    │   ├── src/
    │   │   ├── extensions/
    │   │   │   └── redirect/
    │   │   │       ├── IRedirectApplicationCustomizerProperties.ts
    │   │   │       ├── IRedirection.ts
    │   │   │       ├── RedirectApplicationCustomizer.manifest.json
    │   │   │       ├── RedirectApplicationCustomizer.ts
    │   │   │       └── loc/
    │   │   │           ├── en-us.js
    │   │   │           ├── fr-fr.js
    │   │   │           └── myStrings.d.ts
    │   │   └── index.ts
    │   └── tsconfig.json
    ├── library-starter-kit-shared/
    │   ├── .editorconfig
    │   ├── .eslintrc.js
    │   ├── .gitignore
    │   ├── .npmignore
    │   ├── .vscode/
    │   │   ├── extensions.json
    │   │   ├── launch.json
    │   │   └── settings.json
    │   ├── .yo-rc.json
    │   ├── README.md
    │   ├── config/
    │   │   ├── config.json
    │   │   ├── deploy-azure-storage.json
    │   │   ├── package-solution.json
    │   │   ├── sass.json
    │   │   ├── serve.json
    │   │   └── write-manifests.json
    │   ├── gulpfile.generatelocalkeys.js
    │   ├── gulpfile.js
    │   ├── package.json
    │   ├── sharepoint/
    │   │   └── solution/
    │   │       └── library-starter-kit-shared.sppkg
    │   ├── src/
    │   │   ├── index.ts
    │   │   └── libraries/
    │   │       └── spStarterKitShared/
    │   │           ├── SpStarterKitSharedLibrary.manifest.json
    │   │           ├── SpStarterKitSharedLibrary.ts
    │   │           └── loc/
    │   │               ├── LocaleKeys.ts
    │   │               ├── de-de.js
    │   │               ├── en-us.js
    │   │               ├── es-es.js
    │   │               ├── fr-fr.js
    │   │               ├── mystrings.d.ts
    │   │               ├── nb-no.js
    │   │               ├── nl-nl.js
    │   │               ├── sv-se.js
    │   │               └── tr-tr.js
    │   └── tsconfig.json
    ├── mgt-spfx/
    │   ├── README.md
    │   ├── mgt-spfx-2.2.1.sppkg
    │   └── mgt-spfx-v2.9.0.sppkg
    ├── react-application-alerts/
    │   ├── .editorconfig
    │   ├── .eslintrc.js
    │   ├── .gitignore
    │   ├── .npmignore
    │   ├── .vscode/
    │   │   ├── launch.json
    │   │   └── settings.json
    │   ├── .yo-rc.json
    │   ├── README.md
    │   ├── config/
    │   │   ├── config.json
    │   │   ├── deploy-azure-storage.json
    │   │   ├── package-solution.json
    │   │   ├── sass.json
    │   │   ├── serve.json
    │   │   └── write-manifests.json
    │   ├── gulpfile.js
    │   ├── package.json
    │   ├── sharepoint/
    │   │   └── assets/
    │   │       ├── ClientSideInstance.xml
    │   │       └── elements.xml
    │   ├── src/
    │   │   ├── extensions/
    │   │   │   └── hubOrSiteAlerts/
    │   │   │       ├── HubOrSiteAlertsApplicationCustomizer.manifest.json
    │   │   │       ├── HubOrSiteAlertsApplicationCustomizer.ts
    │   │   │       ├── IAlert.ts
    │   │   │       ├── IHubSiteData.ts
    │   │   │       ├── components/
    │   │   │       │   ├── AlertNotifications.tsx
    │   │   │       │   ├── IAlertNotificationsProps.ts
    │   │   │       │   └── index.ts
    │   │   │       └── loc/
    │   │   │           ├── de-de.js
    │   │   │           ├── en-us.js
    │   │   │           ├── es-es.js
    │   │   │           ├── fr-fr.js
    │   │   │           ├── myStrings.d.ts
    │   │   │           ├── nb-no.js
    │   │   │           ├── nl-nl.js
    │   │   │           ├── sv-se.js
    │   │   │           └── tr-tr.js
    │   │   └── index.ts
    │   └── tsconfig.json
    ├── react-application-collab-footer/
    │   ├── .editorconfig
    │   ├── .eslintrc.js
    │   ├── .gitignore
    │   ├── .npmignore
    │   ├── .vscode/
    │   │   ├── launch.json
    │   │   └── settings.json
    │   ├── .yo-rc.json
    │   ├── README.md
    │   ├── config/
    │   │   ├── config.json
    │   │   ├── deploy-azure-storage.json
    │   │   ├── package-solution.json
    │   │   ├── sass.json
    │   │   ├── serve.json
    │   │   └── write-manifests.json
    │   ├── gulpfile.js
    │   ├── package.json
    │   ├── sharepoint/
    │   │   └── assets/
    │   │       ├── ClientSideInstance.xml
    │   │       └── elements.xml
    │   ├── src/
    │   │   ├── extensions/
    │   │   │   └── collaborationFooter/
    │   │   │       ├── CollaborationFooterApplicationCustomizer.manifest.json
    │   │   │       ├── CollaborationFooterApplicationCustomizer.ts
    │   │   │       ├── components/
    │   │   │       │   ├── CollabFooter.module.scss
    │   │   │       │   ├── CollabFooter.tsx
    │   │   │       │   ├── ICollabFooterEditResult.ts
    │   │   │       │   ├── ICollabFooterProps.ts
    │   │   │       │   ├── ICollabFooterState.ts
    │   │   │       │   └── myLinks/
    │   │   │       │       ├── IMyLink.ts
    │   │   │       │       ├── MyLinks.module.scss
    │   │   │       │       ├── MyLinksDialog.tsx
    │   │   │       │       └── loc/
    │   │   │       │           ├── de-de.js
    │   │   │       │           ├── en-us.js
    │   │   │       │           ├── es-es.js
    │   │   │       │           ├── fr-fr.js
    │   │   │       │           ├── mystrings.d.ts
    │   │   │       │           ├── nb-no.js
    │   │   │       │           ├── nl-nl.js
    │   │   │       │           ├── sv-se.js
    │   │   │       │           └── tr-tr.js
    │   │   │       └── loc/
    │   │   │           ├── de-de.js
    │   │   │           ├── en-us.js
    │   │   │           ├── es-es.js
    │   │   │           ├── fr-fr.js
    │   │   │           ├── myStrings.d.ts
    │   │   │           ├── nb-no.js
    │   │   │           ├── nl-nl.js
    │   │   │           ├── sv-se.js
    │   │   │           └── tr-tr.js
    │   │   ├── index.ts
    │   │   └── services/
    │   │       ├── SPTaxonomyService.ts
    │   │       ├── SPTaxonomyTypes.ts
    │   │       ├── SPUserProfileService.ts
    │   │       └── SPUserProfileTypes.ts
    │   └── tsconfig.json
    ├── react-application-portal-footer/
    │   ├── .editorconfig
    │   ├── .eslintrc.js
    │   ├── .gitignore
    │   ├── .npmignore
    │   ├── .vscode/
    │   │   ├── launch.json
    │   │   └── settings.json
    │   ├── .yo-rc.json
    │   ├── README.md
    │   ├── config/
    │   │   ├── config.json
    │   │   ├── deploy-azure-storage.json
    │   │   ├── package-solution.json
    │   │   ├── sass.json
    │   │   ├── serve.json
    │   │   └── write-manifests.json
    │   ├── gulpfile.js
    │   ├── package.json
    │   ├── sharepoint/
    │   │   └── assets/
    │   │       ├── ClientSideInstance.xml
    │   │       └── elements.xml
    │   ├── src/
    │   │   ├── extensions/
    │   │   │   └── portalFooter/
    │   │   │       ├── IHubSiteData.ts
    │   │   │       ├── ILinkListItem.ts
    │   │   │       ├── PortalFooterApplicationCustomizer.manifest.json
    │   │   │       ├── PortalFooterApplicationCustomizer.ts
    │   │   │       ├── components/
    │   │   │       │   ├── Links/
    │   │   │       │   │   ├── ILinksProps.ts
    │   │   │       │   │   ├── Links.module.scss
    │   │   │       │   │   ├── Links.tsx
    │   │   │       │   │   └── index.ts
    │   │   │       │   ├── PortalFooter/
    │   │   │       │   │   ├── ILinkGroup.ts
    │   │   │       │   │   ├── IPortalFooterEditResult.ts
    │   │   │       │   │   ├── IPortalFooterProps.ts
    │   │   │       │   │   ├── IPortalFooterState.ts
    │   │   │       │   │   ├── PortalFooter.module.scss
    │   │   │       │   │   ├── PortalFooter.tsx
    │   │   │       │   │   └── index.ts
    │   │   │       │   └── myLinks/
    │   │   │       │       ├── IMyLink.ts
    │   │   │       │       ├── MyLinks.module.scss
    │   │   │       │       ├── MyLinksDialog.tsx
    │   │   │       │       └── loc/
    │   │   │       │           ├── de-de.js
    │   │   │       │           ├── en-us.js
    │   │   │       │           ├── es-es.js
    │   │   │       │           ├── fr-fr.js
    │   │   │       │           ├── mystrings.d.ts
    │   │   │       │           ├── nb-no.js
    │   │   │       │           ├── nl-nl.js
    │   │   │       │           ├── sv-se.js
    │   │   │       │           └── tr-tr.js
    │   │   │       └── loc/
    │   │   │           ├── de-de.js
    │   │   │           ├── en-us.js
    │   │   │           ├── es-es.js
    │   │   │           ├── fr-fr.js
    │   │   │           ├── myStrings.d.ts
    │   │   │           ├── nb-no.js
    │   │   │           ├── nl-nl.js
    │   │   │           ├── sv-se.js
    │   │   │           └── tr-tr.js
    │   │   ├── index.ts
    │   │   └── services/
    │   │       ├── SPUserProfileService.ts
    │   │       └── SPUserProfileTypes.ts
    │   └── tsconfig.json
    ├── react-banner/
    │   ├── .editorconfig
    │   ├── .eslintrc.js
    │   ├── .gitignore
    │   ├── .npmignore
    │   ├── .vscode/
    │   │   ├── launch.json
    │   │   └── settings.json
    │   ├── .yo-rc.json
    │   ├── README.md
    │   ├── config/
    │   │   ├── config.json
    │   │   ├── deploy-azure-storage.json
    │   │   ├── package-solution.json
    │   │   ├── sass.json
    │   │   ├── serve.json
    │   │   └── write-manifests.json
    │   ├── gulpfile.js
    │   ├── package.json
    │   ├── src/
    │   │   ├── index.ts
    │   │   └── webparts/
    │   │       └── banner/
    │   │           ├── BannerWebPart.manifest.json
    │   │           ├── BannerWebPart.ts
    │   │           ├── components/
    │   │           │   ├── Banner.module.scss
    │   │           │   ├── Banner.tsx
    │   │           │   ├── IBannerProps.ts
    │   │           │   └── index.ts
    │   │           └── loc/
    │   │               ├── de-de.js
    │   │               ├── en-us.js
    │   │               ├── es-es.js
    │   │               ├── fr-fr.js
    │   │               ├── mystrings.d.ts
    │   │               ├── nb-no.js
    │   │               ├── nl-nl.js
    │   │               ├── sv-se.js
    │   │               └── tr-tr.js
    │   └── tsconfig.json
    ├── react-command-discuss-now/
    │   ├── .editorconfig
    │   ├── .eslintrc.js
    │   ├── .gitignore
    │   ├── .npmignore
    │   ├── .vscode/
    │   │   ├── launch.json
    │   │   └── settings.json
    │   ├── .yo-rc.json
    │   ├── README.md
    │   ├── config/
    │   │   ├── config.json
    │   │   ├── deploy-azure-storage.json
    │   │   ├── package-solution.json
    │   │   ├── sass.json
    │   │   ├── serve.json
    │   │   └── write-manifests.json
    │   ├── gulpfile.js
    │   ├── package.json
    │   ├── sharepoint/
    │   │   └── assets/
    │   │       ├── ClientSideInstance.xml
    │   │       └── elements.xml
    │   ├── src/
    │   │   ├── extensions/
    │   │   │   └── discussNow/
    │   │   │       ├── DiscussNowCommandSet.manifest.json
    │   │   │       ├── DiscussNowCommandSet.ts
    │   │   │       ├── components/
    │   │   │       │   ├── DateTimePicker.tsx
    │   │   │       │   ├── IDateTimePickerProps.ts
    │   │   │       │   ├── IDateTimePickerState.ts
    │   │   │       │   ├── ScheduleMeetingDialog.module.scss
    │   │   │       │   └── ScheduleMeetingDialog.tsx
    │   │   │       └── loc/
    │   │   │           ├── de-de.js
    │   │   │           ├── en-us.js
    │   │   │           ├── es-es.js
    │   │   │           ├── fr-fr.js
    │   │   │           ├── myStrings.d.ts
    │   │   │           ├── nb-no.js
    │   │   │           ├── nl-nl.js
    │   │   │           ├── sv-se.js
    │   │   │           └── tr-tr.js
    │   │   └── index.ts
    │   └── tsconfig.json
    ├── react-followed-sites/
    │   ├── .editorconfig
    │   ├── .gitignore
    │   ├── .npmignore
    │   ├── .vscode/
    │   │   ├── launch.json
    │   │   └── settings.json
    │   ├── .yo-rc.json
    │   ├── README.md
    │   ├── config/
    │   │   ├── config.json
    │   │   ├── deploy-azure-storage.json
    │   │   ├── package-solution.json
    │   │   ├── sass.json
    │   │   ├── serve.json
    │   │   └── write-manifests.json
    │   ├── gulpfile.js
    │   ├── package.json
    │   ├── src/
    │   │   ├── index.ts
    │   │   └── webparts/
    │   │       └── followedSites/
    │   │           ├── FollowedSitesWebPart.manifest.json
    │   │           ├── FollowedSitesWebPart.ts
    │   │           └── components/
    │   │               ├── FollowedSites.module.scss
    │   │               ├── FollowedSites.tsx
    │   │               ├── IFollowedResult.ts
    │   │               ├── IFollowedSitesProps.ts
    │   │               ├── IFollowedSitesState.ts
    │   │               ├── index.ts
    │   │               └── paging/
    │   │                   ├── IPagingProps.ts
    │   │                   ├── IPagingState.ts
    │   │                   ├── Paging.module.scss
    │   │                   ├── Paging.tsx
    │   │                   └── index.ts
    │   └── tsconfig.json
    ├── react-links/
    │   ├── .editorconfig
    │   ├── .eslintrc.js
    │   ├── .gitignore
    │   ├── .npmignore
    │   ├── .vscode/
    │   │   ├── launch.json
    │   │   └── settings.json
    │   ├── .yo-rc.json
    │   ├── README.md
    │   ├── config/
    │   │   ├── config.json
    │   │   ├── deploy-azure-storage.json
    │   │   ├── package-solution.json
    │   │   ├── sass.json
    │   │   ├── serve.json
    │   │   └── write-manifests.json
    │   ├── gulpfile.js
    │   ├── package.json
    │   ├── src/
    │   │   ├── index.ts
    │   │   └── webparts/
    │   │       └── links/
    │   │           ├── ILink.ts
    │   │           ├── LinksWebPart.manifest.json
    │   │           ├── LinksWebPart.ts
    │   │           ├── components/
    │   │           │   ├── ILinksProps.ts
    │   │           │   ├── ILinksState.ts
    │   │           │   ├── Links.module.scss
    │   │           │   └── Links.tsx
    │   │           └── loc/
    │   │               ├── de-de.js
    │   │               ├── en-us.js
    │   │               ├── es-es.js
    │   │               ├── fr-fr.js
    │   │               ├── mystrings.d.ts
    │   │               ├── nb-no.js
    │   │               ├── nl-nl.js
    │   │               ├── sv-se.js
    │   │               └── tr-tr.js
    │   └── tsconfig.json
    ├── react-lob-integration/
    │   ├── .editorconfig
    │   ├── .eslintrc.js
    │   ├── .gitignore
    │   ├── .npmignore
    │   ├── .vscode/
    │   │   ├── launch.json
    │   │   └── settings.json
    │   ├── .yo-rc.json
    │   ├── README.md
    │   ├── config/
    │   │   ├── config.json
    │   │   ├── deploy-azure-storage.json
    │   │   ├── package-solution.json
    │   │   ├── sass.json
    │   │   ├── serve.json
    │   │   └── write-manifests.json
    │   ├── gulpfile.js
    │   ├── package.json
    │   ├── src/
    │   │   ├── index.ts
    │   │   └── webparts/
    │   │       └── lobIntegration/
    │   │           ├── ICustomer.ts
    │   │           ├── ILobIntegrationWebPartProps.ts
    │   │           ├── ILobServiceResponse.ts
    │   │           ├── LobIntegrationWebPart.manifest.json
    │   │           ├── LobIntegrationWebPart.ts
    │   │           ├── components/
    │   │           │   ├── ILobIntegrationProps.ts
    │   │           │   ├── ILobIntegrationState.ts
    │   │           │   ├── LobIntegration.module.scss
    │   │           │   ├── LobIntegration.module.scss.ts
    │   │           │   └── LobIntegration.tsx
    │   │           └── loc/
    │   │               ├── de-de.js
    │   │               ├── en-us.js
    │   │               ├── es-es.js
    │   │               ├── fr-fr.js
    │   │               ├── mystrings.d.ts
    │   │               ├── nb-no.js
    │   │               ├── sv-se.js
    │   │               └── tr-tr.js
    │   └── tsconfig.json
    ├── react-people-directory/
    │   ├── .eslintrc.js
    │   ├── .gitignore
    │   ├── .npmignore
    │   ├── .vscode/
    │   │   ├── launch.json
    │   │   └── settings.json
    │   ├── .yo-rc.json
    │   ├── README.md
    │   ├── config/
    │   │   ├── config.json
    │   │   ├── deploy-azure-storage.json
    │   │   ├── package-solution.json
    │   │   ├── sass.json
    │   │   ├── serve.json
    │   │   └── write-manifests.json
    │   ├── gulpfile.js
    │   ├── package.json
    │   ├── src/
    │   │   ├── index.ts
    │   │   └── webparts/
    │   │       └── peopleDirectory/
    │   │           ├── PeopleDirectoryWebPart.manifest.json
    │   │           ├── PeopleDirectoryWebPart.ts
    │   │           ├── components/
    │   │           │   ├── IndexNavigation/
    │   │           │   │   ├── IIndexNavigationProps.ts
    │   │           │   │   ├── IndexNavigation.module.scss
    │   │           │   │   ├── IndexNavigation.tsx
    │   │           │   │   └── index.ts
    │   │           │   ├── PeopleCallout/
    │   │           │   │   ├── IPeopleCalloutProps.ts
    │   │           │   │   ├── IPeopleCalloutState.ts
    │   │           │   │   ├── PeopleCallout.module.scss
    │   │           │   │   ├── PeopleCallout.tsx
    │   │           │   │   └── index.ts
    │   │           │   ├── PeopleDirectory/
    │   │           │   │   ├── IPeopleDirectoryProps.ts
    │   │           │   │   ├── IPeopleDirectoryState.ts
    │   │           │   │   ├── IPeopleSearchResults.ts
    │   │           │   │   ├── IPerson.ts
    │   │           │   │   ├── PeopleDirectory.module.scss
    │   │           │   │   ├── PeopleDirectory.tsx
    │   │           │   │   └── index.ts
    │   │           │   ├── PeopleDirectory.module.scss
    │   │           │   ├── PeopleList/
    │   │           │   │   ├── IPeopleListProps.ts
    │   │           │   │   ├── IPeopleListState.ts
    │   │           │   │   ├── PeopleList.module.scss
    │   │           │   │   ├── PeopleList.tsx
    │   │           │   │   └── index.ts
    │   │           │   └── Search/
    │   │           │       ├── ISearchProps.ts
    │   │           │       ├── Search.module.scss
    │   │           │       ├── Search.tsx
    │   │           │       └── index.ts
    │   │           └── loc/
    │   │               ├── de-de.js
    │   │               ├── en-us.js
    │   │               ├── es-es.js
    │   │               ├── fr-fr.js
    │   │               ├── mystrings.d.ts
    │   │               ├── nb-no.js
    │   │               ├── nl-nl.js
    │   │               ├── sv-se.js
    │   │               └── tr-tr.js
    │   └── tsconfig.json
    ├── react-personal-calendar/
    │   ├── .editorconfig
    │   ├── .eslintrc.js
    │   ├── .gitignore
    │   ├── .npmignore
    │   ├── .vscode/
    │   │   ├── launch.json
    │   │   └── settings.json
    │   ├── .yo-rc.json
    │   ├── README.md
    │   ├── config/
    │   │   ├── config.json
    │   │   ├── deploy-azure-storage.json
    │   │   ├── package-solution.json
    │   │   ├── sass.json
    │   │   ├── serve.json
    │   │   └── write-manifests.json
    │   ├── gulpfile.js
    │   ├── package.json
    │   ├── src/
    │   │   ├── index.ts
    │   │   └── webparts/
    │   │       └── personalCalendar/
    │   │           ├── PersonalCalendarWebPart.manifest.json
    │   │           ├── PersonalCalendarWebPart.ts
    │   │           ├── components/
    │   │           │   ├── IMeeting.ts
    │   │           │   ├── IPersonalCalendarProps.ts
    │   │           │   ├── IPersonalCalendarState.ts
    │   │           │   ├── PersonalCalendar.module.scss
    │   │           │   ├── PersonalCalendar.tsx
    │   │           │   ├── SimpleCalendar.module.scss
    │   │           │   ├── SimpleCalendar.tsx
    │   │           │   └── index.ts
    │   │           └── loc/
    │   │               ├── de-de.js
    │   │               ├── en-us.js
    │   │               ├── es-es.js
    │   │               ├── fr-fr.js
    │   │               ├── mystrings.d.ts
    │   │               ├── nb-no.js
    │   │               ├── nl-nl.js
    │   │               ├── sv-se.js
    │   │               └── tr-tr.js
    │   └── tsconfig.json
    ├── react-personal-contacts/
    │   ├── .eslintrc.js
    │   ├── .gitignore
    │   ├── .npmignore
    │   ├── .vscode/
    │   │   ├── launch.json
    │   │   └── settings.json
    │   ├── .yo-rc.json
    │   ├── README.md
    │   ├── config/
    │   │   ├── config.json
    │   │   ├── deploy-azure-storage.json
    │   │   ├── package-solution.json
    │   │   ├── sass.json
    │   │   ├── serve.json
    │   │   └── write-manifests.json
    │   ├── gulpfile.js
    │   ├── package.json
    │   ├── src/
    │   │   ├── index.ts
    │   │   └── webparts/
    │   │       └── personalContacts/
    │   │           ├── PersonalContactsWebPart.manifest.json
    │   │           ├── PersonalContactsWebPart.ts
    │   │           ├── components/
    │   │           │   ├── IContacts.ts
    │   │           │   ├── Person/
    │   │           │   │   ├── IPersonProps.ts
    │   │           │   │   ├── IPersonState.ts
    │   │           │   │   ├── Person.module.scss
    │   │           │   │   ├── Person.tsx
    │   │           │   │   └── index.ts
    │   │           │   ├── PersonalContacts/
    │   │           │   │   ├── IPersonalContactsProps.ts
    │   │           │   │   ├── IPersonalContactsState.ts
    │   │           │   │   ├── PersonalContacts.module.scss
    │   │           │   │   ├── PersonalContacts.tsx
    │   │           │   │   └── index.ts
    │   │           │   └── index.ts
    │   │           └── loc/
    │   │               ├── de-de.js
    │   │               ├── en-us.js
    │   │               ├── es-es.js
    │   │               ├── fr-fr.js
    │   │               ├── mystrings.d.ts
    │   │               ├── nb-no.js
    │   │               ├── nl-nl.js
    │   │               ├── sv-se.js
    │   │               └── tr-tr.js
    │   └── tsconfig.json
    ├── react-personal-email/
    │   ├── .editorconfig
    │   ├── .eslintrc.js
    │   ├── .gitignore
    │   ├── .npmignore
    │   ├── .vscode/
    │   │   ├── launch.json
    │   │   └── settings.json
    │   ├── .yo-rc.json
    │   ├── README.md
    │   ├── config/
    │   │   ├── config.json
    │   │   ├── deploy-azure-storage.json
    │   │   ├── package-solution.json
    │   │   ├── sass.json
    │   │   ├── serve.json
    │   │   └── write-manifests.json
    │   ├── gulpfile.js
    │   ├── package.json
    │   ├── src/
    │   │   ├── index.ts
    │   │   └── webparts/
    │   │       └── personalEmail/
    │   │           ├── PersonalEmailWebPart.manifest.json
    │   │           ├── PersonalEmailWebPart.ts
    │   │           ├── components/
    │   │           │   ├── IMessage.ts
    │   │           │   ├── IPersonalEmailProps.ts
    │   │           │   ├── IPersonalEmailState.ts
    │   │           │   ├── PersonalEmail.module.scss
    │   │           │   ├── PersonalEmail.tsx
    │   │           │   └── index.ts
    │   │           └── loc/
    │   │               ├── de-de.js
    │   │               ├── en-us.js
    │   │               ├── es-es.js
    │   │               ├── fr-fr.js
    │   │               ├── mystrings.d.ts
    │   │               ├── nb-no.js
    │   │               ├── nl-nl.js
    │   │               ├── sv-se.js
    │   │               └── tr-tr.js
    │   └── tsconfig.json
    ├── react-personal-tasks/
    │   ├── .editorconfig
    │   ├── .gitignore
    │   ├── .npmignore
    │   ├── .vscode/
    │   │   ├── launch.json
    │   │   └── settings.json
    │   ├── .yo-rc.json
    │   ├── README.md
    │   ├── config/
    │   │   ├── config.json
    │   │   ├── deploy-azure-storage.json
    │   │   ├── package-solution.json
    │   │   ├── sass.json
    │   │   ├── serve.json
    │   │   └── write-manifests.json
    │   ├── gulpfile.js
    │   ├── package.json
    │   ├── src/
    │   │   ├── index.ts
    │   │   └── webparts/
    │   │       └── personalTasks/
    │   │           ├── PersonalTasksWebPart.manifest.json
    │   │           ├── PersonalTasksWebPart.ts
    │   │           ├── components/
    │   │           │   ├── IPersonalTasksProps.ts
    │   │           │   ├── PersonalTasks.module.scss
    │   │           │   └── PersonalTasks.tsx
    │   │           └── loc/
    │   │               ├── en-us.js
    │   │               └── mystrings.d.ts
    │   └── tsconfig.json
    ├── react-recent-contacts/
    │   ├── .editorconfig
    │   ├── .eslintrc.js
    │   ├── .gitignore
    │   ├── .vscode/
    │   │   ├── launch.json
    │   │   └── settings.json
    │   ├── .yo-rc.json
    │   ├── README.md
    │   ├── config/
    │   │   ├── config.json
    │   │   ├── deploy-azure-storage.json
    │   │   ├── package-solution.json
    │   │   ├── sass.json
    │   │   ├── serve.json
    │   │   └── write-manifests.json
    │   ├── gulpfile.js
    │   ├── package.json
    │   ├── src/
    │   │   ├── index.ts
    │   │   └── webparts/
    │   │       └── recentContacts/
    │   │           ├── RecentContactsWebPart.manifest.json
    │   │           ├── RecentContactsWebPart.ts
    │   │           ├── components/
    │   │           │   ├── IContacts.ts
    │   │           │   ├── IRecentContactsProps.ts
    │   │           │   ├── IRecentContactsState.ts
    │   │           │   ├── RecentContacts.module.scss
    │   │           │   ├── RecentContacts.tsx
    │   │           │   ├── index.ts
    │   │           │   └── person/
    │   │           │       ├── IPersonProps.ts
    │   │           │       ├── IPersonState.ts
    │   │           │       ├── Person.tsx
    │   │           │       └── index.ts
    │   │           └── loc/
    │   │               ├── de-de.js
    │   │               ├── en-us.js
    │   │               ├── es-es.js
    │   │               ├── fr-fr.js
    │   │               ├── mystrings.d.ts
    │   │               ├── nb-no.js
    │   │               ├── nl-nl.js
    │   │               ├── sv-se.js
    │   │               └── tr-tr.js
    │   └── tsconfig.json
    ├── react-recently-used-documents/
    │   ├── .editorconfig
    │   ├── .eslintrc.js
    │   ├── .gitignore
    │   ├── .npmignore
    │   ├── .vscode/
    │   │   ├── launch.json
    │   │   └── settings.json
    │   ├── .yo-rc.json
    │   ├── README.md
    │   ├── config/
    │   │   ├── config.json
    │   │   ├── deploy-azure-storage.json
    │   │   ├── package-solution.json
    │   │   ├── sass.json
    │   │   ├── serve.json
    │   │   └── write-manifests.json
    │   ├── gulpfile.js
    │   ├── package.json
    │   ├── src/
    │   │   ├── index.ts
    │   │   └── webparts/
    │   │       └── recentlyUsedDocuments/
    │   │           ├── RecentlyUsedDocumentsWebPart.manifest.json
    │   │           ├── RecentlyUsedDocumentsWebPart.ts
    │   │           ├── components/
    │   │           │   ├── BrandIcons.ts
    │   │           │   ├── IRecentDocuments.ts
    │   │           │   ├── IRecentlyUsedDocumentsProps.ts
    │   │           │   ├── IRecentlyUsedDocumentsState.ts
    │   │           │   ├── RecentlyUsedDocuments.module.scss
    │   │           │   ├── RecentlyUsedDocuments.tsx
    │   │           │   └── index.ts
    │   │           └── loc/
    │   │               ├── de-de.js
    │   │               ├── en-us.js
    │   │               ├── es-es.js
    │   │               ├── fr-fr.js
    │   │               ├── mystrings.d.ts
    │   │               ├── nb-no.js
    │   │               ├── nl-nl.js
    │   │               ├── sv-se.js
    │   │               └── tr-tr.js
    │   └── tsconfig.json
    ├── react-recently-visited-sites/
    │   ├── .editorconfig
    │   ├── .eslintrc.js
    │   ├── .gitignore
    │   ├── .npmignore
    │   ├── .vscode/
    │   │   ├── launch.json
    │   │   └── settings.json
    │   ├── .yo-rc.json
    │   ├── README.md
    │   ├── config/
    │   │   ├── config.json
    │   │   ├── deploy-azure-storage.json
    │   │   ├── package-solution.json
    │   │   ├── sass.json
    │   │   ├── serve.json
    │   │   └── write-manifests.json
    │   ├── gulpfile.js
    │   ├── package.json
    │   ├── src/
    │   │   ├── index.ts
    │   │   └── webparts/
    │   │       └── recentlyVisitedSites/
    │   │           ├── RecentlyVisitedSitesWebPart.manifest.json
    │   │           ├── RecentlyVisitedSitesWebPart.ts
    │   │           ├── components/
    │   │           │   ├── IRecentWebs.ts
    │   │           │   ├── IRecentlyVisitedSitesProps.ts
    │   │           │   ├── IRecentlyVisitedSitesState.ts
    │   │           │   ├── IWebs.ts
    │   │           │   ├── RecentlyVisitedSites.module.scss
    │   │           │   ├── RecentlyVisitedSites.tsx
    │   │           │   └── index.ts
    │   │           └── loc/
    │   │               ├── de-de.js
    │   │               ├── en-us.js
    │   │               ├── es-es.js
    │   │               ├── fr-fr.js
    │   │               ├── mystrings.d.ts
    │   │               ├── nb-no.js
    │   │               ├── nl-nl.js
    │   │               ├── sv-se.js
    │   │               └── tr-tr.js
    │   └── tsconfig.json
    ├── react-site-information/
    │   ├── .editorconfig
    │   ├── .eslintrc.js
    │   ├── .gitignore
    │   ├── .npmignore
    │   ├── .vscode/
    │   │   ├── launch.json
    │   │   └── settings.json
    │   ├── .yo-rc.json
    │   ├── README.md
    │   ├── config/
    │   │   ├── config.json
    │   │   ├── deploy-azure-storage.json
    │   │   ├── package-solution.json
    │   │   ├── sass.json
    │   │   ├── serve.json
    │   │   └── write-manifests.json
    │   ├── gulpfile.js
    │   ├── package.json
    │   ├── src/
    │   │   ├── index.ts
    │   │   └── webparts/
    │   │       └── siteInformation/
    │   │           ├── ISiteInformationWebPartProps.ts
    │   │           ├── SiteInformationWebPart.manifest.json
    │   │           ├── SiteInformationWebPart.ts
    │   │           ├── components/
    │   │           │   ├── ISiteInformationProps.ts
    │   │           │   ├── SiteInformation.module.scss
    │   │           │   └── SiteInformation.tsx
    │   │           └── loc/
    │   │               ├── de-de.js
    │   │               ├── en-us.js
    │   │               ├── es-es.js
    │   │               ├── fr-fr.js
    │   │               ├── mystrings.d.ts
    │   │               ├── nb-no.js
    │   │               ├── nl-nl.js
    │   │               ├── sv-se.js
    │   │               └── tr-tr.js
    │   └── tsconfig.json
    ├── react-tiles/
    │   ├── .editorconfig
    │   ├── .eslintrc.js
    │   ├── .gitignore
    │   ├── .npmignore
    │   ├── .vscode/
    │   │   ├── launch.json
    │   │   └── settings.json
    │   ├── .yo-rc.json
    │   ├── README.md
    │   ├── config/
    │   │   ├── config.json
    │   │   ├── deploy-azure-storage.json
    │   │   ├── package-solution.json
    │   │   ├── sass.json
    │   │   ├── serve.json
    │   │   └── write-manifests.json
    │   ├── gulpfile.js
    │   ├── package.json
    │   ├── src/
    │   │   ├── index.ts
    │   │   └── webparts/
    │   │       └── tiles/
    │   │           ├── ITileInfo.ts
    │   │           ├── TilesWebPart.manifest.json
    │   │           ├── TilesWebPart.ts
    │   │           ├── components/
    │   │           │   ├── ITilesProps.ts
    │   │           │   ├── Tile/
    │   │           │   │   ├── ITileProps.ts
    │   │           │   │   ├── Tile.module.scss
    │   │           │   │   └── Tile.tsx
    │   │           │   ├── Tiles.module.scss
    │   │           │   └── Tiles.tsx
    │   │           └── loc/
    │   │               ├── de-de.js
    │   │               ├── en-us.js
    │   │               ├── es-es.js
    │   │               ├── fr-fr.js
    │   │               ├── mystrings.d.ts
    │   │               ├── nb-no.js
    │   │               ├── nl-nl.js
    │   │               ├── sv-se.js
    │   │               └── tr-tr.js
    │   └── tsconfig.json
    ├── react-weather/
    │   ├── .editorconfig
    │   ├── .eslintrc.js
    │   ├── .gitignore
    │   ├── .npmignore
    │   ├── .vscode/
    │   │   ├── launch.json
    │   │   └── settings.json
    │   ├── .yo-rc.json
    │   ├── README.md
    │   ├── config/
    │   │   ├── config.json
    │   │   ├── copy-assets.json
    │   │   ├── deploy-azure-storage.json
    │   │   ├── package-solution.json
    │   │   ├── sass.json
    │   │   ├── serve.json
    │   │   └── write-manifests.json
    │   ├── gulpfile.js
    │   ├── package.json
    │   ├── src/
    │   │   ├── index.ts
    │   │   └── webparts/
    │   │       └── weather/
    │   │           ├── WeatherWebPart.manifest.json
    │   │           ├── WeatherWebPart.ts
    │   │           ├── components/
    │   │           │   ├── IWeatherData.ts
    │   │           │   ├── IWeatherProps.ts
    │   │           │   ├── IWeatherState.ts
    │   │           │   ├── Weather.module.scss
    │   │           │   ├── Weather.tsx
    │   │           │   └── index.ts
    │   │           └── loc/
    │   │               ├── en-us.js
    │   │               └── mystrings.d.ts
    │   └── tsconfig.json
    ├── react-world-clock/
    │   ├── .editorconfig
    │   ├── .eslintrc.js
    │   ├── .gitignore
    │   ├── .npmignore
    │   ├── .vscode/
    │   │   ├── launch.json
    │   │   └── settings.json
    │   ├── .yo-rc.json
    │   ├── README.md
    │   ├── config/
    │   │   ├── config.json
    │   │   ├── deploy-azure-storage.json
    │   │   ├── package-solution.json
    │   │   ├── sass.json
    │   │   ├── serve.json
    │   │   └── write-manifests.json
    │   ├── gulpfile.js
    │   ├── package.json
    │   ├── src/
    │   │   ├── index.ts
    │   │   └── webparts/
    │   │       └── worldClock/
    │   │           ├── IWorldClockWebPartProps.ts
    │   │           ├── WorldClockWebPart.manifest.json
    │   │           ├── WorldClockWebPart.ts
    │   │           ├── components/
    │   │           │   ├── Clock.module.scss
    │   │           │   ├── Clock.tsx
    │   │           │   ├── IWorldClockProps.ts
    │   │           │   ├── Timezones.ts
    │   │           │   ├── WorldClock.module.scss
    │   │           │   └── WorldClock.tsx
    │   │           └── loc/
    │   │               ├── en-us.js
    │   │               └── mystrings.d.ts
    │   └── tsconfig.json
    └── templates/
        ├── resources/
        │   ├── collabcommunicationsite.json
        │   ├── collabteamsite.json
        │   ├── documents/
        │   │   └── Contoso_Report.pptx
        │   ├── resources-core.de-de.resx
        │   ├── resources-core.en-us.resx
        │   ├── resources-core.es-es.resx
        │   ├── resources-core.fr-fr.resx
        │   ├── resources-core.nb-no.resx
        │   ├── resources-core.nl-nl.resx
        │   ├── resources-core.sv-se.resx
        │   └── resources-core.tr-tr.resx
        ├── starterkit-spfx-only.xml
        └── starterkit.xml

================================================
FILE CONTENTS
================================================

================================================
FILE: .deployment
================================================
[config]
project = assets/functions

================================================
FILE: .github/CONTRIBUTING.md
================================================
# Contribute to SharePoint Starter Kit  Solution
Below instructions explain how you can prepare your environment to contribute to SharePoint Portal Showcase Solution.

## SP Starter Kit repo structure

TBD

## Forking SharePoint Starter Kit repository

The first step is registering yourself on GitHub. Go to https://github.com/ and click on the "Sign up for GitHub" button. Once you're registered ensure you're logged on with your new account and navigate to the Office 365 Developer Patterns and Practices repository at https://github.com/sharepoint/sp-starter-kit. The right top side of the page contains a button called "Fork":

![Fork the sp-dev-docs github repository](../images/contribute-fork-docs-repo.png)

Clicking on this button will Fork the SharePoint developer documentation repository to your GitHub account. It's actually like taking a copy. Select your personal GitHub account you registered earlier as the account to for this repository.

Once the forking has been done you'll find the docs repo under your account with an URL: https://github.com/YOUR-USERNAME/YOUR-REPOSITORY

## Clone the forked repository

Now that you have forked the docs repository, to sync this forked repository to your local machine, you will need to clone the repository. You can find the clone URL in the `Clone or download` dropdown in the repo page. 

![Clone the forked SharePoint developer docs repository](../images/contribute-docs-clone-options.png)

If you have any Git Desktop or any git source control installed, you can click the `Open is Desktop`, else follow the steps below:

In the Clone with HTTPs section, click  to copy the clone URL for the repository.

* Open your favorite console terminal.

* Change the current working directory to the location where you want to clone the docs repository.

* Type the following command to clone the repository:

```
git clone https://github.com/YOUR-USERNAME/YOUR-REPOSITORY
```

Press Enter and your local clone will be created.

```
git clone https://github.com/YOUR-USERNAME/YOUR-REPOSITORY
Cloning into 'sp-dev-docs'...
remote: Counting objects: 10, done.
remote: Compressing objects: 100% (8/8), done.
remove: Total 10 (delta 1), reused 10 (delta 1)
Unpacking objects: 100% (10/10), done.
```

## Switch to `master` branch

In order to add your changes, you will need to do those in the `master` branch.

Type the following command in the console to switch to `master` branch:

```
git checkout master
```

Now, you can update existing docs or add new docs to the docs repo.

### Adding new docs

Make sure you upload your doc in the right folders. For instance, web part docs should be in the following folder:

```
docs\spfx\web-parts
```
Depending on the doc's intent, you can choose to add your doc into  `basics` or `get-started` folder.

## Submit a pull request

Once you have completed adding your changes, you can submit a pull request. 

Navigate to the forked sp-dev-docs repo in your account. Make sure your current branch is `master` branch.

Once you are in the `master` branch, you should see a message to `Compare & pull request`

![Submit a pull request to sp-dev-docs repo](../images/contribute-docs-submit-pr.png)

This will start a new pull request. Make sure you use the following [template]() to fill in your changes. Make sure you are creating this pull request against the `master` branch.

Once you have all the information, click the `Create pull request` to submit your pull request.

## Syncing your forked repository to keep it up-to-date with the upstream repository

In order to keep your forked sp-dev-docs repo up-to-date with the parent repository, you will need to first [configure a remote that points to upstream repository](https://help.github.com/articles/configuring-a-remote-for-a-fork).

Once you have configured the upstream repository, follow the steps [here](https://help.github.com/articles/configuring-a-remote-for-a-fork) to sync your fork to keep it up-to-date with the upstream repository.


================================================
FILE: .github/ISSUE_TEMPLATE/---bug.md
================================================
---
name: "\U0001F41E Bug"
about: Report an anomaly or unexpected behavior from this repository.
title: ''
labels: ''
assignees: ''

---

> Please note that issues that do not follow this template will automatically be rejected.
>
> Use the following form to submit an issue only if it's related to samples in this repo. If you have an issue related to the SharePoint Framework or its documentation, please submit the issue at [https://github.com/SharePoint/sp-dev-docs/issues/new](https://github.com/SharePoint/sp-dev-docs/issues/new). This will help us respond to your issue faster.
> 
> ----
> 
> Thank you for reporting an issue. We appreciate your feedback - to help the team to understand your needs, please complete the below template to ensure we have the necessary details to assist you.
> 
> _(DELETE THIS PARAGRAPH AFTER READING)_

## Category

- [x] Bug

## Describe the bug

#### Expected or Desired Behavior

> When reporting a bug, please describe the behavior you expected to occur when performing the action.
>
> _(DELETE THIS PARAGRAPH AFTER READING)_
>

#### Observed Behavior

>When reporting a bug, please describe the behavior you are observing when performing the action.
>
> _(DELETE THIS PARAGRAPH AFTER READING)_
>

#### Steps to Reproduce

> When reporting a bug please describe the steps to reproduce the bug in sufficient detail to allow testing. Only way to fix things properly, is to have sufficient details to reproduce it. If you are making a suggestion, you can delete this section.
>
> _(DELETE THIS PARAGRAPH AFTER READING)_
>

## Environment Details (*Development & Target environment*)

> **DELETE THIS LINE BEFORE SUBMITTING** - Complete the following (*if ignored you'll be prompted for it before we can address your issue... save the time and provide it in your initial submission*).
- **Starter kit version**: [e.g. v2 for current version, v1 for legacy solution]
- **OS**: [e.g. Windows 10 | MacOS 10.15.x]
- **Target Environment**:[SharePoint Server 2019 | SharePoint Online]
- **Framework**: [Node.js v6/v8/v10/v12]
- **PnPPowerShell Version** : [e.g 3.22.2006.2.]
- **Browser(s)**: [e.g. Chrome v79 | Safari v22 | FireFox v31 | IE v11 | Edge | Chromium Edge v79]
- **Additional details**: *The more context you can provide, the easier it is (and therefore quicker) to help.*

## Guidelines for issue creator (DELETE AFTER READING)

> - All bug reports are welcome, please let us know what's on your mind.
> - Remember that this repository is maintained by community members who volunteer their time to help. Be courteous and patient.
> - If you have technical questions about the framework, we’ll be monitoring #spfx, #spfx-webparts, and #spfx-tooling on (SharePoint StackExchange)> [http://sharepoint.stackexchange.com/]. You can also alternatively submit your question to (SharePoint Developer group)> [https://techcommunity.microsoft.com/t5/sharepoint-developer/bd-p/SharePointDev] in the Microsoft Tech Community.
> - Remember to include sufficient details and context.
> - If you have multiple suggestions or bugs please submit them in separate bugs so we can track resolution.
> _(DELETE THIS SECTION AFTER READING)_

Thanks for your contribution! Sharing is caring.


================================================
FILE: .github/ISSUE_TEMPLATE/---enhancement.md
================================================
---
name: "\U0001F4A1 Enhancement"
about: Suggest an enhancement to this repository
title: ''
labels: ''
assignees: ''

---

## Category

- [x] Feature request


## Is your feature request related to a problem?
> **DELETE THIS LINE BEFORE SUBMITTING** - Provide clear & concise description of what the problem is.

## Describe the solution you'd like
> **DELETE THIS LINE BEFORE SUBMITTING** - Provide a clear and concise description of what you want to happen.

## Describe alternatives you've considered
> **DELETE THIS LINE BEFORE SUBMITTING** - Provide a clear and concise description of any alternative solutions or features you've considered.

## Additional context
> **DELETE THIS LINE BEFORE SUBMITTING** - Provide any other context or screenshots about the feature request here.

*Thanks for your contribution! Sharing is caring.*


================================================
FILE: .github/ISSUE_TEMPLATE/--question.md
================================================
---
name: "❓ Question"
about: Ask a question regarding the PnP Starter Kit
title: ''
labels: ''
assignees: ''

---

> Please note that issues that do not follow this template will automatically be rejected.
>
> Use the following form to submit ask a question related to this repo. If you have an issue related to the SharePoint Framework or its documentation, please submit the issue at [https://github.com/SharePoint/sp-dev-docs/issues/new](https://github.com/SharePoint/sp-dev-docs/issues/new). This will help us respond to your issue faster.
> 
> ----
> 
> Thank you for asking a question. We appreciate your feedback - to help the team to understand your needs, please complete the below template to ensure we have the necessary details to assist you.
> 
> _(DELETE THIS PARAGRAPH AFTER READING)_
## Category

- [x] Question

## Question

> _Provide as many details as possible to help the community answer your question._
> 
> _(DELETE THIS PARAGRAPH AFTER READING)_

## Guidelines for issue creator (DELETE AFTER READING)

> - All questions are welcome, please let us know what's on your mind.
> - Remember that this repository is maintained by community members who volunteer their time to help. Be courteous and patient.
> - If you have technical questions about the framework, we’ll be monitoring #spfx, #spfx-webparts, and #spfx-tooling on (SharePoint StackExchange)> [http://sharepoint.stackexchange.com/]. You can also alternatively submit your question to (SharePoint Developer group)> [https://techcommunity.microsoft.com/t5/sharepoint-developer/bd-p/SharePointDev] in the Microsoft Tech Community.
> - Remember to include sufficient details and context.
> - If you have multiple suggestions or bugs please submit them in separate bugs so we can track resolution.
> _(DELETE THIS SECTION AFTER READING)_

Thanks for your contribution! Sharing is caring.


================================================
FILE: .github/ISSUE_TEMPLATE.md
================================================
> Thank you for reporting an issue or suggesting an enhancement. We appreciate your feedback - to help the team to understand your needs, please complete the below template to ensure we have the necessary details to assist you.
>
> _(DELETE THIS PARAGRAPH AFTER READING)_
>

#### Category
- [ ] Question
- [ ] Bug
- [ ] Enhancement

> For the above list, an empty checkbox is [ ] as in <kbd>[</kbd><kbd>SPACE</kbd><kbd>]</kbd>. A checked checkbox is [x] with no space between the brackets. Use the `PREVIEW` tab at the top right to preview the rendering before submitting your issue.
>
> _(DELETE THIS PARAGRAPH AFTER READING)_
>

#### Expected or Desired Behavior

> If you are reporting a bug, please describe the expected behavior. If you are suggesting an enhancement please describe thoroughly the enhancement, how it can be achieved, and expected benefit.
>
> _(DELETE THIS PARAGRAPH AFTER READING)_
>

#### Observed Behavior

> If you are reporting a bug, please describe the behavior you expected to occur when performing the action. If you are making a suggestion, you can delete this section.
>
> _(DELETE THIS PARAGRAPH AFTER READING)_
>

#### Steps to Reproduce

> If you are reporting a bug please describe the steps to reproduce the bug in sufficient detail to allow testing. Only way to fix things properly, is to have sufficient details to reproduce it. If you are making a suggestion, you can delete this section.
>
> _(DELETE THIS PARAGRAPH AFTER READING)_
>

#### Submission Guidelines

> - All suggestions or bugs are welcome, please let us know what's on your mind.
> - If you are reporting an issue on generic SharePoint topic or dev documentation, please use the (sp-dev-docs Issue list)[http://aka.ms/spdev-issues]
> - If you have technical questions about the framework, we’ll be monitoring #spfx, #spfx-webparts, and > #spfx-tooling on (SharePoint StackExchange)[http://sharepoint.stackexchange.com/]. You can also > alternatively submit your question to (SharePoint Developer group)> [https://network.office.com/t5/SharePoint-Developer/bd-p/SharePointDev] at Office Network.
> - Remember to include sufficient details and context.
> - If you have multiple suggestions or bugs please submit them in separate bugs so we can track resolution.
>
> _(DELETE THIS PARAGRAPH AFTER READING)_
>

Thanks for your contribution! Sharing is caring.


================================================
FILE: .github/PULL_REQUEST_TEMPLATE.md
================================================
#### Category
- [ ] Bug Fix
- [ ] New Feature
- Related issues: fixes #X, partially #Y, mentioned in #Z

> For the above list, an empty checkbox is [ ] as in <kbd>[</kbd><kbd>SPACE</kbd><kbd>]</kbd>. A checked checkbox is [x] with no space between the brackets. Use the `PREVIEW` tab at the top right to preview the rendering before submitting your issue.
> 
> _(DELETE THIS PARAGRAPH AFTER READING)_

#### What's in this Pull Request?

> Please describe the changes in this PR. Sample description or details around bugs which are being fixed.
> 
> _(DELETE THIS PARAGRAPH AFTER READING)_

#### Guidance

> *Please update this PR information accordingly. We'll use this as part of our release notes in monthly communications.*
> 
> *Please target your PR to 'dev' branch and it will be merged to `master` by the people in the core team together with the other possible changes.*
> 
> _(DELETE THIS PARAGRAPH AFTER READING)_

================================================
FILE: .gitignore
================================================
# Logs
logs
*.log
npm-debug.log*
yarn-debug.log*
yarn-error.log*

# Runtime data
pids
*.pid
*.seed
*.pid.lock

# Directory for instrumented libs generated by jscoverage/JSCover
lib-cov

# Coverage directory used by tools like istanbul
coverage

# nyc test coverage
.nyc_output

# Grunt intermediate storage (http://gruntjs.com/creating-plugins#storing-task-files)
.grunt

# Bower dependency directory (https://bower.io/)
bower_components

# node-waf configuration
.lock-wscript

# Compiled binary addons (http://nodejs.org/api/addons.html)
build/Release

# Dependency directories
node_modules/
jspm_packages/

# Typescript v1 declaration files
typings/

# Optional npm cache directory
.npm

# Optional eslint cache
.eslintcache

# Optional REPL history
.node_repl_history

# Output of 'npm pack'
*.tgz

# Yarn Integrity file
.yarn-integrity

# dotenv environment variables file
.env

.DS_Store

# Visual Studio Ignore files

# Exclude NuGets, obj, debug of sample-lob-service
sample-lob-service/SharePointPnP.LobScenario/packages
sample-lob-service/SharePointPnP.LobScenario/SharePointPnP.LobScenario.Data/obj
sample-lob-service/SharePointPnP.LobScenario/SharePointPnP.LobScenario.Data/bin
sample-lob-service/SharePointPnP.LobScenario/SharePointPnP.LobScenario.Web/obj
sample-lob-service/SharePointPnP.LobScenario/SharePointPnP.LobScenario.Web/bin

# User-specific files
*.suo
*.user
*.userosscache
*.sln.docstates

# User-specific files (MonoDevelop/Xamarin Studio)
*.userprefs

# Build results
[Dd]ebug/
[Dd]ebugPublic/
[Rr]elease/
[Rr]eleases/
x64/
x86/
bld/
[Bb]in/
[Oo]bj/
[Ll]og/

# Visual Studio 2015/2017 cache/options directory
.vs/
# Uncomment if you have tasks that create the project's static files in wwwroot
#wwwroot/

# Visual Studio 2017 auto generated files
Generated\ Files/

# MSTest test Results
[Tt]est[Rr]esult*/
[Bb]uild[Ll]og.*

# NUNIT
*.VisualState.xml
TestResult.xml

# Files built by Visual Studio
*_i.c
*_p.c
*_i.h
*.ilk
*.meta
*.obj
*.iobj
*.pch
*.pdb
*.ipdb
*.pgc
*.pgd
*.rsp
*.sbr
*.tlb
*.tli
*.tlh
*.tmp
*.tmp_proj
*.log
*.vspscc
*.vssscc
.builds
*.pidb
*.svclog
*.scc

# Visual Studio profiler
*.psess
*.vsp
*.vspx
*.sap

# Visual Studio Trace Files
*.e2e

# Publish Web Output
*.[Pp]ublish.xml
*.azurePubxml
# Note: Comment the next line if you want to checkin your web deploy settings,
# but database connection strings (with potential passwords) will be unencrypted
*.pubxml
*.publishproj

# Microsoft Azure Web App publish settings. Comment the next line if you want to
# checkin your Azure Web App publish settings, but sensitive information contained
# in these scripts will be unencrypted
PublishScripts/

# NuGet Packages
*.nupkg
# The packages folder can be ignored because of Package Restore
**/[Pp]ackages/*
# except build/, which is used as an MSBuild target.
!**/[Pp]ackages/build/
# Uncomment if necessary however generally it will be regenerated when needed
#!**/[Pp]ackages/repositories.config
# NuGet v3's project.json files produces more ignorable files
*.nuget.props
*.nuget.targets

# Microsoft Azure Build Output
csx/
*.build.csdef

# Microsoft Azure Emulator
ecf/
rcf/

# Others
ClientBin/
~$*
*~
*.dbmdl
*.dbproj.schemaview
*.jfm
*.pfx
*.publishsettings
orleans.codegen.cs
package-lock.json

# SQL Server files
*.mdf
*.ldf
*.ndf

# MSBuild Binary and Structured Log
*.binlog
*.yaml
package-lock.json
package-lock.json


================================================
FILE: .tours/spo-solution-overview.tour
================================================
{
  "title": "Solution Overview",
  "steps": [
    {
      "directory": ".",
      "description": "# Welcome to the SharePoint Starter Kit Solution Overview\r\n\r\n![Parker](data:image/png;base64,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)\r\n\r\nThe SharePoint Starter Kit (starter kit) is a comprehensive solution designed for SharePoint Online and SharePoint 2019 which provides numerous SharePoint Framework (SPFx) web parts, extensions, and other components, as well as PnP PowerShell driven provisioning which you can use as an example and inspiration for your own customizations.\r\n\r\nIf you'd like to help with this initiative, look at our issues list for issues marked as [Bugs](https://github.com/pnp/sp-starter-kit/issues?q=is%3Aissue+is%3Aopen+sort%3Aupdated-desc+label%3Atype%3Abug) and [Enhancements](https://github.com/pnp/sp-starter-kit/issues?q=is%3Aissue+is%3Aopen+sort%3Aupdated-desc+label%3Atype%3Aenhancement)\r\n"
    },
    {
      "directory": "assets",
      "title": "Assets Folder",
      "description": "# Assets\r\n\r\nThe `assets` folder contains all the required components to deploy the toolkit:\r\n\r\n- `designs`: contains the site scripts that will be deployed with the site design, along with the associated custom theme \r\n- `documents`: contains a sample PowerPoint document that will get deployed to make your site look more \"lived in\"\r\n- `images`: All the images used by our documentation. These files will not get deployed\r\n- `pictures`: contains all the stock images used by the pages in the starter kit. "
    },
    {
      "directory": "documentation",
      "title": "Documentation Folder",
      "description": "# Documentation\r\n\r\nThe `documentation` folder contains all the up-to-date information about this solution.\r\n\r\nIt includes the following instructions:\r\n- How to set up your term store\r\n- Common errors and recommended resolutions\r\n- Manual deployment instructions\r\n- Preparing your tenant for PnP starter kit\r\n- Term store considerations for non-English speaking tenants\r\n- Detailed requirements and dependencies for each starter kit component"
    },
    {
      "directory": "package",
      "title": "Package Folder",
      "description": "# Package\r\n\r\nThe `package` folder contains an archived version of the **V1** starter kit. \r\n\r\nYou can safely ignore this folder  for version 2 and later of the starter kit."
    },
    {
      "directory": "provisioning",
      "title": "Provisioning Folder",
      "description": "# Provisioning\r\n\r\nThe `provisioning` folder contains all the documentation you'll need to successfully deploy the Starter Kit.\r\n\r\nFollow the **Table of contents** to ensure a successful deployment."
    },
    {
      "directory": "sample-lob-service",
      "title": "Sample Line of Business Service Folder",
      "description": "# Sample Line of Business Service\r\n\r\nThe `sample-lob-service` contains an example showing how to call a 3rd-party API.\r\n\r\nIt is a full C# server-side application that you can customize and deploy to suit your own needs.\r\n\r\nThe [`react-lob-integration`](....//source/react-lob-integration) web part uses this service to demonstrate how to call an external API from a SharePoint web part."
    },
    {
      "title": "Solution Folder",
      "directory": "solution",
      "description": "# Solution\r\n\r\nThe `solution` folder contains the **V1** version of the Starter Kit solution.\r\n\r\nYou can safely ignore this folder. It will be removed in future versions of the Starter Kit."
    },
    {
      "directory": "source",
      "description": "# Source\r\n\r\nThe `source` folder contains the source code for every web part included in the Starter Kit.\r\n\r\nThere is a sub-folder for each web part."
    }
  ]
}

================================================
FILE: LICENSE
================================================
    MIT License

    Copyright (c) Microsoft Corporation. All rights reserved.

    Permission is hereby granted, free of charge, to any person obtaining a copy
    of this software and associated documentation files (the "Software"), to deal
    in the Software without restriction, including without limitation the rights
    to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
    copies of the Software, and to permit persons to whom the Software is
    furnished to do so, subject to the following conditions:

    The above copyright notice and this permission notice shall be included in all
    copies or substantial portions of the Software.

    THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
    IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
    FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
    AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
    LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
    OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
    SOFTWARE


================================================
FILE: README.md
================================================
# SharePoint Starter Kit v3

The SharePoint Starter Kit (starter kit) is a comprehensive solution designed for SharePoint Online which provides numerous SharePoint Framework (SPFx) web parts, extensions, and other components, as well as [PnP PowerShell](https://github.com/pnp/powershell) driven provisioning which you can use as an example and inspiration for your own customizations. 

![PnP Starter Pack Front Page](./assets/images/default-front-page-v2.png)

> Starter Kit V3 **does not** support SharePoint 2019 and SharePoint Server Subscription Edition.

> Starter Kit Version 1 includes a comprenshive strategy for only SharePoint Online, as well as a single SPFx solution that encapsulates all webparts and extensions into a single package. Version 1 may be accessed via the [v1 branch](https://github.com/pnp/sp-starter-kit/tree/v1) for legacy purposes and will not be maintained beyond April 2020.

> Notice: There currently **is not** a direct path for upgrading an existing SharePoint Online tenant with the starter kit v1 to v3. V3 may be installed into a tenant with v1 already installed, by default, this will add a tenant wide duplicate all of webparts and extensions. It is recommended that the starter kit v1 be removed from a tenant before adding v3, or creating a custom installation of v3.

> Starter Kit Version 2 includes a strategy for SharePoint Online and SharePoint 2019 and includes individual SPFx solutions for each webpart and application customizer. Version 2 may be accessed via the [v2 branch](https://github.com/pnp/sp-starter-kit/tree/v2) for legacy purposes and will not be maintained beyond February 2023. Starter Kit Version 2 is the only version that supports SharePoint 2019.

> Notice: The direct path for upgrading an existing SharePoint Online tenant with the starter kit v2 to v3 is to only install / invoke the [starterkit-spfx-only.pnp](./provisioning/starterkit-spfx-only.pnp) provisioning template found in the [./provisioning](./provisioning) folder. This provisioning template will only upgrade the existing SPFx solutions to V3 (SPFx version 1.16.1), and will not recreate the sample sites.

> Notice: the starter kit adds **tenant level settings** including themes, site designs, taxonomy term sets, and other adjustments. Therefore, it is recommended to test the starter kit in an **isolated test tenant and not immediately execute it within your production environment**.

# Table of contents

- [Objectives of this solution](#objectives-of-this-solution)
- [SharePoint Starter Kit v3 objectives](#sharepoint-starter-kit-v3-has-following-objectives)
- [Pre-requirements](#pre-requirements)
- [Getting started](#getting-started)
- [Learn more](#learn-more)
- [Custom Web Parts](#custom-web-parts)
- [SharePoint Framework Extensions](#sharepoint-framework-extensions)
- [SharePoint Framework Libraries](#sharepoint-framework-libraries)
- [Support and SLA for this project](#support-and-sla-for-this-project)
- [Contributing](#contributing)


## Objectives of this solution

SharePoint Communication Sites and Team Sites have great out-of-the-box capabilities, although the out-of-the-box capabilities may not always be sufficient for your scenarios. This is exactly why SharePoint may be extended and you are able to include your own customizations. This solution addresses common scenarios and tasks you may encounter when introducing those customizations, and provides examples and guidance on how you might address and provision them including:

- Automated provisioning of simple demo content within a communication site
- Automated provisioning of multiple team sites with pre-configuration and hub site association
- Automated provisioning of the whole solution to any tenant within minutes
- Automated configuration of Site Scripts and Site Designs at the tenant level using the PnP Remote Provisioning engine (SharePoint Online only)
- Implementation of different customizations for SharePoint
- Usage of Fluent UI and reusable PnP SPFx controls within the customizations

> Additional high resolution screenshots are also available: [front page](./assets/images/default-front-page-v2.png).


## SharePoint Starter Kit v3 has following objectives

* Extend the success of v1 and v2 by providing developers a customization and provisioning strategy for SharePoint Online
* Demonstrate new SharePoint Online UX design and layout capabilities including:
   * Full height vertical columns
   * Compact headers 
   * Mega menus
   * Background theming
* Support web parts, extensions, and libraries to be deployed one-by-one to tenants or farms
* Demonstrate teams tab development with SharePoint Framework for suitable web parts in SharePoint Online
* Demonstrate Microsoft Graph API and Graph Toolkit (current version mgt-react 2.9.0) usage in SharePoint Online


## Pre-requirements

Here are current pre-requirements for making this solution work in your tenant.

1. You will need to be a tenant administrator to be able to deploy this solution
    - Notice that you can get free developer tenant from [Microsoft 365 Developer Program](https://developer.microsoft.com/en-us/microsoft-365/dev-program), if needed.

1. Automatic end-to-end provisioning only works with English tenants
    - All solutions and web parts are also English in the current implementation
    - For tenants that have English but have a different default language, the [term set provisioning may be modified to assist with installation](./documentation/term-store.md#non-english-tenants)

1. Add the tenant administrator account used during provisioning as Term Store Administrator in the Taxonomy Term Store through the SharePoint Admin Center.

1. A tenant 'App Catalog' must have been created within the 'Apps' option of the SharePoint Admin Center.

> **It is recommended that you wait up to 24 hours before attempting to provision this solution if any of the following are true**
> - Your SharePoint tenant was just created
> - You just created your SharePoint tenant app catalog

> **This project will install [Microsoft Graph Toolkit for SPFx version 2.9.0](https://github.com/microsoftgraph/microsoft-graph-toolkit/releases) into the app catalog. If you have another version already installed, you will want to remove that package before installing the Starter Kit**

## Getting started

Shortest path to success for SharePoint Online - The following steps will help you get started in any SharePoint Online tenant as fast as possible.

> Starter Kit v3 no longer supports SharePoint 2019,  [refer to the SharePoint 2019 installation instructions for v2](https://github.com/pnp/sp-starter-kit/blob/v2/provisioning/readme-sp2019.md)

- Ensure you meet the [Pre-requirements](#Pre-requirements)

- Ensure that you meet the [requirements for SharePoint Framework development](https://learn.microsoft.com/en-us/sharepoint/dev/spfx/set-up-your-development-environment) and are using the latest version of [PnP PowerShell](https://pnp.github.io/powershell/articles/installation.html). **Latest confirmed version of PnP PowerShell: 1.12.0**.

- Prepare your tenant, by accomplishing the tasks highlighted in document [Preparing your tenant for the PnP SharePoint Starter Kit](./documentation/tenant-settings.md)

- Open PowerShell, and use PnP PowerShell to connect to any site in your tenant with the [`Connect-PnPOnline` cmdlet](https://pnp.github.io/powershell/cmdlets/Connect-PnPOnline.html) using your own tenant url. For more information on authenticating with PnP PowerShell, see [documentation](https://pnp.github.io/powershell/articles/authentication.html) 

  ```powershell
  Connect-PnPOnline https://contosodemosk.sharepoint.com
  ```

- Change to the `provisioning` folder found in this solution's root and execute the following command (using your own tenant url and the prefix of your choosing):

  ```powershell
  Invoke-PnPTenantTemplate -Path .\starterkit.pnp
  ```

  This will provision three site collections with urls of `/sites/demoportal`, `/sites/demohr`, and `/sites/demomarketing`. Your urls may vary depending on the managed path you selected for team sites in your tenant administration (this defaults to 'sites').

    - Refer to the ['provisioning documentation'](./provisioning) for advanced provisioning options and guidance

    - If you run into errors during provisioning, refer to ['Common SP Starter Kit Provisioning results'](./documentation/common-provision-results.md) for additional suggestions and common mistakes

- This solution will automatically install multiple SPFx webparts that require API permissisons to the Graph API. **After installing this solution**, access your API Management page in your SharePoint Admin Center and approve the pending requests.

> Notice that the starter kit also adds tenant level settings including themes, site designs, taxonomy term sets, and other adjustments. Therefore, it is recommended you test the starter kit in an **isolated test tenant and not immediately execute it within your production environment**.


## Learn more

- [Detailed provisioning instructions for SharePoint Online](./provisioning/readme.md)
- [Additional documentation and how-tos](./documentation/README.md)

## Custom Web Parts

Here are the custom web parts currently included in the solution package.

Screenshot |  Web Part |  Description  | Compatibility | Code
------------ | ----------- | ----------- | ----------- | -----------
![](assets/images/components/part-banner.png) | [Banner](documentation/components/wp-banner.md) | Creates a banner with an image and overlaid text. | SPO only | [code](./source/react-banner)
![](assets/images/components/part-followed-sites.png) | [Followed Sites](documentation/components/wp-followed-sites.md) | Shows the list of sites which particular user is following | SPO only | [code](./source/react-followed-sites)
![](assets/images/components/part-links.png) | [Links](documentation/components/wp-links.md)  | Link list web part which is using collection data editor and stores the links in web part properties | SPO only | [code](./source/react-links)
![](assets/images/components/part-lob-integration.png) | [LOB integration](documentation/components/wp-lob-integration.md) | Sample web part to surface LOB information from API hosted in Azure. | SPO only | [code](./source/react-lob-integration)
![](assets/images/components/part-people-directory.png) | [People Directory](documentation/components/wp-people-directory.md) | People directory web part uses the people search API to get list of people to show.  | SPO only | [code](./source/react-people-directory)
![](assets/images/components/part-personal-calendar.png) | [Personal Calendar](documentation/components/wp-personal-calendar.md) | Shows upcoming calendar meetings for the particular user using Microsoft Graph. | SPO only | [code](./source/react-personal-calendar)
![](assets/images/components/part-personal-contacts.png) | [Personal Contacts](documentation/components/wp-personal-contacts.md) | Personal contacts for particular user using Microsoft Graph. | SPO only |[code](./source/react-personal-contacts)
![](assets/images/components/part-personal-email.png) | [Personal Email](documentation/components/wp-personal-email.md) | List latest personal emails for the current user using Microsoft Graph. | SPO only | [code](./source/react-personal-email)
![](assets/images/components/part-personal-tasks.png) | [Personal Tasks](documentation/components/wp-personal-tasks.md) | Show personal tasks for the current user using Microsoft Graph. | SPO only | [code](./source/react-personal-tasks)
![](assets/images/components/part-recent-contacts.png) | [Recent Contacts](documentation/components/wp-recent-contacts.md) | Show recent contacts for the current user using Microsoft Graph. | SPO only | [code](./source/react-recent-contacts)
![](assets/images/components/part-recently-used-documents.png) | [Recently Used Documents](documentation/components/wp-recently-used-documents.md) | Show recently used documents for the current user using Microsoft Graph. | SPO only | [code](./source/react-recently-used-documents)
![](assets/images/components/part-recently-visited-sites.png) | [Recently Visited Sites](documentation/components/wp-recently-visited-sites.md) | Show recently visited sites for current user using Microsoft Graph. | SPO only | [code](./source/react-recently-visited-sites)
![](assets/images/components/part-site-information.png) | [Site Information](documentation/components/wp-site-information.md) | Intended to collect and present additional metadata for group associated team sites. | SPO only | [code](./source/react-site-information)
![](assets/images/components/part-stock.png) | [Stock Information (deprecated)](documentation/components/wp-stock-information.md) | Display stock information by using the live stocks service provided by [Alpha Advantage](https://www.alphavantage.co/). You will need to register for a custom key for this to work at the Alpha Advantage site and then include the key in the tenant properties. | SPO ony| [code](solution/src/webparts/stockInformation/StockInformationWebPart.ts)
![](assets/images/components/part-tiles.png) | [Tiles](documentation/components/wp-tiles.md) | Renders set of tiles. Icons are from Office UI Fabric and you can configure tiles using collection editor in web part properties. | SPO only |[code](./source/react-tiles)
![](assets/images/components/part-weather.png) | [Weather Information](documentation/components/wp-weather-information.md) | Weather information web part which is using Yahoo Weather APIs to get the forecast information. | SPO only | [code](./source/react-weather)
![](assets/images/components/part-world-time.png) | [World Time](documentation/components/wp-world-time.md) | Clock web part to show the time in specific time zone. | SPO only | [code](./source/react-world-clock)


## SharePoint Framework Extensions

Screenshot |  Extension |  Description  | Compatibility | Code
------------ | ----------- | ----------- | ----------- | -----------
![](assets/images/components/ext-alert.png) | [Alert Notification](documentation/components/ext-alert.md) | Shows informational or important messages in the header section of pages based on a custom list information in the hub site. | SPO only | [code](./source/react-application-alerts)
![](assets/images/components/ext-collab-footer.png) | [Collaboration Footer](documentation/components/ext-collab-footer.md) | Shows company wide links which are configured using Taxonomy service. Includes also  personalized links which are stored in user profile property if set. By default associated to group associated team sites when a custom Site Design is selected for new sites. | SPO only | [code](./source/react-application-collab-footer)
![](assets/images/components/ext-collab-discussnow.png) | [Discuss Now](documentation/components/ext-collab-discussnow.md) | Custom list view command set to add new custom dialog for document library that utilizes the Graph API. | SPO only | [code](./source/react-command-discuss-now)
![](assets/images/components/ext-portal-footer.png) | [Portal Footer](documentation/components/ext-portal-footer.md) | Expanding footer for communication site. Show standard company links and also supports personalized links for the current user which are stored in User Profile. | SPO only | [code](./source/react-appication-portal-footer)
Not available | Redirect | Can be used to perform automatic redirections of URLs in the site based on a custom list. | SPO only | [code](./source/react-application-portal-footer)
![](assets/images/components/ext-classification.png) | [Site Classification (deprecated)](documentation/components/ext-classification.md) | Renders a header with site classification information. This has been replaced by out-of-the-box SharePoint Online header functionality | SPO only | [code](./solution/src/extensions/siteClassification/SiteClassificationApplicationCustomizer.ts)
Not available | Tab Page (deprecated) | Renders a header with links between two different pages in the site. | SPO only | [code](./solution/src/extensions/tabPage/TabPageApplicationCustomizer.ts)


## SharePoint Framework Libraries

Extension |  Description  | Compatibility | Code
------------ | ----------- | ----------- | -----------
[Shared library](./documentation/components/lib-shared.md) | A shared library that includes shared locatization strings, consumabled by any other SPFx webpart or extension. | SPO only | [code](./source/library-starter-kit-shared)


## Support and SLA for this project

The following statements apply across all of the PnP samples and solutions, including samples, core component(s) and solutions, including the SharePoint Starter Kit.

- PnP guidance and samples are created by Microsoft & by the community
- PnP guidance and samples are maintained by Microsoft & by the community
- PnP uses supported and recommended techniques
- PnP is an open-source initiative by the community – people who work on the initiative for the benefit of others, have their normal day job as well
- PnP is NOT a product and therefore it’s not supported by Premier Support or other official support channels
- PnP is supported in similar ways as other open source projects offered by Microsoft with support from the community, by the community
- There are numerous partners that utilize PnP within their solutions for customers. Support for this is provided by the Partner. When PnP material is used in deployments, we recommend being clear with your customer/deployment owner on the support model

## Contributing

This project welcomes contributions and suggestions.  Most contributions require you to agree to a
Contributor License Agreement (CLA) declaring that you have the right to, and actually do, grant us
the rights to use your contribution. For details, visit https://cla.microsoft.com.

When you submit a pull request, a CLA-bot will automatically determine whether you need to provide
a CLA and decorate the PR appropriately (e.g., label, comment). Simply follow the instructions
provided by the bot. You will only need to do this once across all repos using our CLA.

This project has adopted the [Microsoft Open Source Code of Conduct](https://opensource.microsoft.com/codeofconduct/).
For more information see the [Code of Conduct FAQ](https://opensource.microsoft.com/codeofconduct/faq/) or
contact [opencode@microsoft.com](mailto:opencode@microsoft.com) with any additional questions or comments.


================================================
FILE: assets/designs/portalsitescript.js
================================================
{
    "$schema": "schema.json",
    "actions": [
        {
            "verb":"createSPList",
            "listName":"Assets",
            "templateType": 101,
            "subactions": [
                {
                    "verb": "setTitle",
                    "title": "Assets"
                },
                {
                    "verb": "setDescription",
                    "description": "Portal Site Assets"
                }
            ]
        }
    ],
    "bindata": {},
    "version": 1
}

================================================
FILE: assets/designs/portaltheme.xml
================================================
<Objs Version="1.1.0.1" xmlns="http://schemas.microsoft.com/powershell/2004/04">
  <Obj RefId="0">
    <TN RefId="0">
      <T>System.Collections.Hashtable</T>
      <T>System.Object</T>
    </TN>
    <DCT>
      <En>
        <S N="Key">neutralPrimaryAlt</S>
        <S N="Value">#2f2f2f</S>
      </En>
      <En>
        <S N="Key">themeLighterAlt</S>
        <S N="Value">#fffbed</S>
      </En>
      <En>
        <S N="Key">black</S>
        <S N="Value">#0b0b0b</S>
      </En>
      <En>
        <S N="Key">themeTertiary</S>
        <S N="Value">#ffcf3f</S>
      </En>
      <En>
        <S N="Key">primaryBackground</S>
        <S N="Value">#fff</S>
      </En>
      <En>
        <S N="Key">neutralQuaternaryAlt</S>
        <S N="Value">#dadada</S>
      </En>
      <En>
        <S N="Key">themePrimary</S>
        <S N="Value">#ffbe00</S>
      </En>
      <En>
        <S N="Key">neutralSecondary</S>
        <S N="Value">#373737</S>
      </En>
      <En>
        <S N="Key">themeLighter</S>
        <S N="Value">#fff4d1</S>
      </En>
      <En>
        <S N="Key">themeDark</S>
        <S N="Value">#a37a00</S>
      </En>
      <En>
        <S N="Key">neutralPrimary</S>
        <S N="Value">#000000</S>
      </En>
      <En>
        <S N="Key">neutralLighterAlt</S>
        <S N="Value">#f8f8f8</S>
      </En>
      <En>
        <S N="Key">neutralLighter</S>
        <S N="Value">#f4f4f4</S>
      </En>
      <En>
        <S N="Key">neutralDark</S>
        <S N="Value">#151515</S>
      </En>
      <En>
        <S N="Key">neutralQuaternary</S>
        <S N="Value">#d0d0d0</S>
      </En>
      <En>
        <S N="Key">neutralLight</S>
        <S N="Value">#eaeaea</S>
      </En>
      <En>
        <S N="Key">primaryText</S>
        <S N="Value">#000000</S>
      </En>
      <En>
        <S N="Key">themeDarker</S>
        <S N="Value">#8c6900</S>
      </En>
      <En>
        <S N="Key">neutralTertiaryAlt</S>
        <S N="Value">#c8c8c8</S>
      </En>
      <En>
        <S N="Key">themeDarkAlt</S>
        <S N="Value">#e6ac00</S>
      </En>
      <En>
        <S N="Key">white</S>
        <S N="Value">#fff</S>
      </En>
      <En>
        <S N="Key">bodyBackground</S>
        <S N="Value">#fff</S>
      </En>
      <En>
        <S N="Key">themeSecondary</S>
        <S N="Value">#ffc20b</S>
      </En>
      <En>
        <S N="Key">bodyText</S>
        <S N="Value">#000000</S>
      </En>
      <En>
        <S N="Key">disabledBackground</S>
        <S N="Value">#f4f4f4</S>
      </En>
      <En>
        <S N="Key">neutralTertiary</S>
        <S N="Value">#595959</S>
      </En>
      <En>
        <S N="Key">themeLight</S>
        <S N="Value">#ffe390</S>
      </En>
      <En>
        <S N="Key">disabledText</S>
        <S N="Value">#c8c8c8</S>
      </En>
    </DCT>
  </Obj>
</Objs>

================================================
FILE: assets/functions/applyportaltemplate/function.json
================================================
{
    "bindings": [
      {
        "name": "triggerInput",
        "type": "queueTrigger",
        "direction": "in",
        "queueName": "pnpspportalshowcasequeue"
      }
    ],
    "disabled": false
  }

================================================
FILE: assets/functions/applyportaltemplate/modules/SharePointPnPPowerShellOnline/SharePointPnP.PowerShell.Online.Commands.Format.ps1xml
================================================
<Configuration>
  <ViewDefinitions>
    <View>
      <Name>Feature</Name>
      <ViewSelectedBy>
        <TypeName>Microsoft.SharePoint.Client.Feature</TypeName>
      </ViewSelectedBy>
      <TableControl>
        <TableHeaders>
          <TableColumnHeader>
            <Width>38</Width>
            <Alignment>left</Alignment>
          </TableColumnHeader>
          <TableColumnHeader>
            <Alignment>left</Alignment>
          </TableColumnHeader>
        </TableHeaders>
        <TableRowEntries>
          <TableRowEntry>
            <TableColumnItems>
              <TableColumnItem>
                <PropertyName>DisplayName</PropertyName>
              </TableColumnItem>
              <TableColumnItem>
                <PropertyName>DefinitionId</PropertyName>
              </TableColumnItem>
            </TableColumnItems>
          </TableRowEntry>
        </TableRowEntries>
      </TableControl>
    </View>
    <View>
      <Name>AppInstance</Name>
      <ViewSelectedBy>
        <TypeName>Microsoft.SharePoint.Client.AppInstance</TypeName>
      </ViewSelectedBy>
      <TableControl>
        <TableHeaders>
          <TableColumnHeader>
            <Width>38</Width>
            <Alignment>left</Alignment>
          </TableColumnHeader>
          <TableColumnHeader>
            <Alignment>left</Alignment>
          </TableColumnHeader>
        </TableHeaders>
        <TableRowEntries>
          <TableRowEntry>
            <TableColumnItems>
              <TableColumnItem>
                <PropertyName>Title</PropertyName>
              </TableColumnItem>
              <TableColumnItem>
                <PropertyName>Id</PropertyName>
              </TableColumnItem>
            </TableColumnItems>
          </TableRowEntry>
        </TableRowEntries>
      </TableControl>
    </View>
    <View>
      <Name>Web</Name>
      <ViewSelectedBy>
        <TypeName>Microsoft.SharePoint.Client.Web</TypeName>
      </ViewSelectedBy>
      <TableControl>
        <TableHeaders>
          <TableColumnHeader>
            <Alignment>left</Alignment>
          </TableColumnHeader>
          <TableColumnHeader>
            <Width>38</Width>
            <Alignment>left</Alignment>
          </TableColumnHeader>
          <TableColumnHeader>
            <Alignment>left</Alignment>
          </TableColumnHeader>
        </TableHeaders>
        <TableRowEntries>
          <TableRowEntry>
            <TableColumnItems>
              <TableColumnItem>
                <PropertyName>Title</PropertyName>
              </TableColumnItem>
              <TableColumnItem>
                <PropertyName>ServerRelativeUrl</PropertyName>
              </TableColumnItem>
              <TableColumnItem>
                <PropertyName>Id</PropertyName>
              </TableColumnItem>
            </TableColumnItems>
          </TableRowEntry>
        </TableRowEntries>
      </TableControl>
    </View>
    <View>
      <Name>Site</Name>
      <ViewSelectedBy>
        <TypeName>Microsoft.SharePoint.Client.Site</TypeName>
      </ViewSelectedBy>
      <TableControl>
        <TableHeaders>
          <TableColumnHeader>
            <Width>55</Width>
            <Alignment>left</Alignment>
          </TableColumnHeader>
          <TableColumnHeader>
            <Alignment>left</Alignment>
          </TableColumnHeader>
        </TableHeaders>
        <TableRowEntries>
          <TableRowEntry>
            <TableColumnItems>
              <TableColumnItem>
                <PropertyName>Url</PropertyName>
              </TableColumnItem>
              <TableColumnItem>
                <PropertyName>CompatibilityLevel</PropertyName>
              </TableColumnItem>
            </TableColumnItems>
          </TableRowEntry>
        </TableRowEntries>
      </TableControl>
    </View>
    <View>
      <Name>View</Name>
      <ViewSelectedBy>
        <TypeName>Microsoft.SharePoint.Client.View</TypeName>
      </ViewSelectedBy>
      <TableControl>
        <TableHeaders>
          <TableColumnHeader>
            <Width>30</Width>
            <Alignment>left</Alignment>
          </TableColumnHeader>
          <TableColumnHeader>
            <Width>38</Width>
            <Alignment>left</Alignment>
          </TableColumnHeader>
          <TableColumnHeader>
            <Label>Default</Label>
            <Width>7</Width>
            <Alignment>left</Alignment>
          </TableColumnHeader>
          <TableColumnHeader>
            <Label>Personal</Label>
            <Width>8</Width>
            <Alignment>left</Alignment>
          </TableColumnHeader>
        </TableHeaders>
        <TableRowEntries>
          <TableRowEntry>
            <TableColumnItems>
              <TableColumnItem>
                <PropertyName>Title</PropertyName>
              </TableColumnItem>
              <TableColumnItem>
                <PropertyName>Id</PropertyName>
              </TableColumnItem>
              <TableColumnItem>
                <PropertyName>DefaultView</PropertyName>
              </TableColumnItem>
              <TableColumnItem>
                <PropertyName>PersonalView</PropertyName>
              </TableColumnItem>
            </TableColumnItems>
          </TableRowEntry>
        </TableRowEntries>
      </TableControl>
    </View>
    <View>
      <Name>List</Name>
      <ViewSelectedBy>
        <TypeName>Microsoft.SharePoint.Client.List</TypeName>
      </ViewSelectedBy>
      <TableControl>
        <TableHeaders>
          <TableColumnHeader>
            <Alignment>left</Alignment>
          </TableColumnHeader>
          <TableColumnHeader>
            <Width>38</Width>
            <Alignment>left</Alignment>
          </TableColumnHeader>
          <TableColumnHeader>
            <Label>Url</Label>
            <Alignment>left</Alignment>
          </TableColumnHeader>
        </TableHeaders>
        <TableRowEntries>
          <TableRowEntry>
            <TableColumnItems>
              <TableColumnItem>
                <PropertyName>Title</PropertyName>
              </TableColumnItem>
              <TableColumnItem>
                <PropertyName>Id</PropertyName>
              </TableColumnItem>
              <TableColumnItem>
                <ScriptBlock>$_.RootFolder.ServerRelativeUrl</ScriptBlock>
              </TableColumnItem>
            </TableColumnItems>
          </TableRowEntry>
        </TableRowEntries>
      </TableControl>
    </View>
    <View>
      <Name>ContentType</Name>
      <ViewSelectedBy>
        <TypeName>Microsoft.SharePoint.Client.ContentType</TypeName>
      </ViewSelectedBy>
      <TableControl>
        <TableHeaders>
          <TableColumnHeader>
            <Width>30</Width>
            <Alignment>left</Alignment>
          </TableColumnHeader>
          <TableColumnHeader>
            <Width>30</Width>
            <Alignment>left</Alignment>
          </TableColumnHeader>
          <TableColumnHeader>
            <Width>30</Width>
            <Alignment>left</Alignment>
          </TableColumnHeader>
          <TableColumnHeader>
            <Width>30</Width>
            <Alignment>left</Alignment>
          </TableColumnHeader>
        </TableHeaders>
        <TableRowEntries>
          <TableRowEntry>
            <TableColumnItems>
              <TableColumnItem>
                <PropertyName>Name</PropertyName>
              </TableColumnItem>
              <TableColumnItem>
                <PropertyName>Id</PropertyName>
              </TableColumnItem>
              <TableColumnItem>
                <PropertyName>Group</PropertyName>
              </TableColumnItem>
              <TableColumnItem>
                <PropertyName>Description</PropertyName>
              </TableColumnItem>
            </TableColumnItems>
          </TableRowEntry>
        </TableRowEntries>
      </TableControl>
    </View>
    <View>
      <Name>WebPartDefinition</Name>
      <ViewSelectedBy>
        <TypeName>Microsoft.SharePoint.Client.WebParts.WebPartDefinition</TypeName>
      </ViewSelectedBy>
      <TableControl>
        <TableHeaders>
          <TableColumnHeader>
            <Label>Title</Label>
            <Width>30</Width>
            <Alignment>left</Alignment>
          </TableColumnHeader>
          <TableColumnHeader>
            <Width>36</Width>
            <Alignment>left</Alignment>
          </TableColumnHeader>
        </TableHeaders>
        <TableRowEntries>
          <TableRowEntry>
            <TableColumnItems>
              <TableColumnItem>
                <ScriptBlock>$_.WebPart.Title</ScriptBlock>
              </TableColumnItem>
              <TableColumnItem>
                <PropertyName>Id</PropertyName>
              </TableColumnItem>
            </TableColumnItems>
          </TableRowEntry>
        </TableRowEntries>
      </TableControl>
    </View>
    <View>
      <Name>Field</Name>
      <ViewSelectedBy>
        <TypeName>Microsoft.SharePoint.Client.Field</TypeName>
      </ViewSelectedBy>
      <TableControl>
        <TableHeaders>
          <TableColumnHeader>
            <Alignment>left</Alignment>
          </TableColumnHeader>
          <TableColumnHeader>
            <Alignment>left</Alignment>
          </TableColumnHeader>
          <TableColumnHeader>
            <Width>36</Width>
            <Alignment>left</Alignment>
          </TableColumnHeader>
        </TableHeaders>
        <TableRowEntries>
          <TableRowEntry>
            <TableColumnItems>
              <TableColumnItem>
                <PropertyName>Title</PropertyName>
              </TableColumnItem>
              <TableColumnItem>
                <PropertyName>InternalName</PropertyName>
              </TableColumnItem>
              <TableColumnItem>
                <PropertyName>Id</PropertyName>
              </TableColumnItem>
            </TableColumnItems>
          </TableRowEntry>
        </TableRowEntries>
      </TableControl>
    </View>
    <View>
      <Name>Group</Name>
      <ViewSelectedBy>
        <TypeName>Microsoft.SharePoint.Client.Group</TypeName>
      </ViewSelectedBy>
      <TableControl>
        <TableHeaders>
          <TableColumnHeader>
            <Width>5</Width>
            <Alignment>left</Alignment>
          </TableColumnHeader>
          <TableColumnHeader>
            <Width>30</Width>
            <Alignment>left</Alignment>
          </TableColumnHeader>
          <TableColumnHeader>
            <Width>36</Width>
            <Alignment>left</Alignment>
          </TableColumnHeader>
        </TableHeaders>
        <TableRowEntries>
          <TableRowEntry>
            <TableColumnItems>
              <TableColumnItem>
                <PropertyName>Id</PropertyName>
              </TableColumnItem>
              <TableColumnItem>
                <PropertyName>Title</PropertyName>
              </TableColumnItem>
              <TableColumnItem>
                <PropertyName>LoginName</PropertyName>
              </TableColumnItem>
            </TableColumnItems>
          </TableRowEntry>
        </TableRowEntries>
      </TableControl>
    </View>
    <View>
      <Name>PersonProperties</Name>
      <ViewSelectedBy>
        <TypeName>Microsoft.SharePoint.Client.UserProfiles.PersonProperties</TypeName>
      </ViewSelectedBy>
      <TableControl>
        <TableHeaders>
          <TableColumnHeader>
            <Alignment>left</Alignment>
          </TableColumnHeader>
          <TableColumnHeader>
            <Alignment>left</Alignment>
          </TableColumnHeader>
          <TableColumnHeader>
            <Alignment>left</Alignment>
          </TableColumnHeader>
        </TableHeaders>
        <TableRowEntries>
          <TableRowEntry>
            <TableColumnItems>
              <TableColumnItem>
                <PropertyName>DisplayName</PropertyName>
              </TableColumnItem>
              <TableColumnItem>
                <PropertyName>AccountName</PropertyName>
              </TableColumnItem>
              <TableColumnItem>
                <PropertyName>PersonalUrl</PropertyName>
              </TableColumnItem>
            </TableColumnItems>
          </TableRowEntry>
        </TableRowEntries>
      </TableControl>
    </View>
    <View>
      <Name>SiteProperties</Name>
      <ViewSelectedBy>
        <TypeName>Microsoft.Online.SharePoint.TenantAdministration.SiteProperties</TypeName>
      </ViewSelectedBy>
      <TableControl>
        <TableHeaders>
          <TableColumnHeader>
            <Alignment>left</Alignment>
          </TableColumnHeader>
          <TableColumnHeader>
            <Width>20</Width>
            <Alignment>left</Alignment>
          </TableColumnHeader>
          <TableColumnHeader>
            <Width>5</Width>
            <Alignment>left</Alignment>
          </TableColumnHeader>
        </TableHeaders>
        <TableRowEntries>
          <TableRowEntry>
            <TableColumnItems>
              <TableColumnItem>
                <PropertyName>Url</PropertyName>
              </TableColumnItem>
              <TableColumnItem>
                <PropertyName>Template</PropertyName>
              </TableColumnItem>
              <TableColumnItem>
                <PropertyName>Lcid</PropertyName>
              </TableColumnItem>
            </TableColumnItems>
          </TableRowEntry>
        </TableRowEntries>
      </TableControl>
    </View>
    <View>
      <Name>ListItem</Name>
      <ViewSelectedBy>
        <TypeName>Microsoft.SharePoint.Client.ListItem</TypeName>
      </ViewSelectedBy>
      <TableControl>
        <TableHeaders>
          <TableColumnHeader>
            <Label>Id</Label>
            <Width>5</Width>
            <Alignment>left</Alignment>
          </TableColumnHeader>
          <TableColumnHeader>
            <Label>Title</Label>
            <Width>50</Width>
            <Alignment>left</Alignment>
          </TableColumnHeader>
          <TableColumnHeader>
            <Label>GUID</Label>
            <Alignment>left</Alignment>
          </TableColumnHeader>
        </TableHeaders>
        <TableRowEntries>
          <TableRowEntry>
            <TableColumnItems>
              <TableColumnItem>
                <PropertyName>Id</PropertyName>
              </TableColumnItem>
              <TableColumnItem>
                <ScriptBlock>$_["Title"]</ScriptBlock>
              </TableColumnItem>
              <TableColumnItem>
                <ScriptBlock>$_["GUID"]</ScriptBlock>
              </TableColumnItem>
            </TableColumnItems>
          </TableRowEntry>
        </TableRowEntries>
      </TableControl>
    </View>
    <View>
      <Name>UserCustomAction</Name>
      <ViewSelectedBy>
        <TypeName>Microsoft.SharePoint.Client.UserCustomAction</TypeName>
      </ViewSelectedBy>
      <TableControl>
        <TableHeaders>
          <TableColumnHeader>
            <Label>Name</Label>
            <Alignment>left</Alignment>
          </TableColumnHeader>
          <TableColumnHeader>
            <Label>Location</Label>
            <Alignment>left</Alignment>
          </TableColumnHeader>
          <TableColumnHeader>
            <Label>Scope</Label>
            <Width>5</Width>
            <Alignment>left</Alignment>
          </TableColumnHeader>
          <TableColumnHeader>
            <Label>Id</Label>
            <Alignment>left</Alignment>
          </TableColumnHeader>
        </TableHeaders>
        <TableRowEntries>
          <TableRowEntry>
            <TableColumnItems>
              <TableColumnItem>
                <PropertyName>Name</PropertyName>
              </TableColumnItem>
              <TableColumnItem>
                <PropertyName>Location</PropertyName>
              </TableColumnItem>
              <TableColumnItem>
                <PropertyName>Scope</PropertyName>
              </TableColumnItem>
              <TableColumnItem>
                <PropertyName>Id</PropertyName>
              </TableColumnItem>
            </TableColumnItems>
          </TableRowEntry>
        </TableRowEntries>
      </TableControl>
    </View>
    <View>
      <Name>WebTemplate</Name>
      <ViewSelectedBy>
        <TypeName>Microsoft.Online.SharePoint.TenantAdministration.SPOTenantWebTemplate</TypeName>
      </ViewSelectedBy>
      <TableControl>
        <TableHeaders>
          <TableColumnHeader>
            <Label>Name</Label>
            <Alignment>left</Alignment>
          </TableColumnHeader>
          <TableColumnHeader>
            <Label>Title</Label>
            <Width>40</Width>
            <Alignment>left</Alignment>
          </TableColumnHeader>
          <TableColumnHeader>
            <Label>Category</Label>
            <Width>15</Width>
            <Alignment>left</Alignment>
          </TableColumnHeader>
          <TableColumnHeader>
            <Label>Compatiblity Level</Label>
            <Width>18</Width>
            <Alignment>left</Alignment>
          </TableColumnHeader>
        </TableHeaders>
        <TableRowEntries>
          <TableRowEntry>
            <TableColumnItems>
              <TableColumnItem>
                <PropertyName>Name</PropertyName>
              </TableColumnItem>
              <TableColumnItem>
                <PropertyName>Title</PropertyName>
              </TableColumnItem>
              <TableColumnItem>
                <PropertyName>DisplayCategory</PropertyName>
              </TableColumnItem>
              <TableColumnItem>
                <PropertyName>CompatibilityLevel</PropertyName>
              </TableColumnItem>
            </TableColumnItems>
          </TableRowEntry>
        </TableRowEntries>
      </TableControl>
    </View>
    <View>
      <Name>FolderItems</Name>
      <ViewSelectedBy>
        <TypeName>Microsoft.SharePoint.Client.File</TypeName>
        <TypeName>Microsoft.SharePoint.Client.Folder</TypeName>
      </ViewSelectedBy>
      <TableControl>
        <TableHeaders>
          <TableColumnHeader>
            <Label>Name</Label>
            <Alignment>left</Alignment>
          </TableColumnHeader>
          <TableColumnHeader>
            <Label>Type</Label>
            <Alignment>left</Alignment>
          </TableColumnHeader>
          <TableColumnHeader>
            <Label>Items/Size</Label>
            <Alignment>right</Alignment>
          </TableColumnHeader>
          <TableColumnHeader>
            <Label>Last Modified</Label>
            <Alignment>left</Alignment>
          </TableColumnHeader>
        </TableHeaders>
        <TableRowEntries>
          <TableRowEntry>
            <TableColumnItems>
              <TableColumnItem>
                <ScriptBlock>
                  if($_.Name -eq ""){
                    $_.ServerRelativeUrl.TrimEnd("/").Substring($_.ServerRelativeUrl.TrimEnd("/").LastIndexof("/") + 1)
                  }
                  else{
                    $_.Name
                  }
                </ScriptBlock>
              </TableColumnItem>
              <TableColumnItem>
                <ScriptBlock>
                  if($_.GetType().Name -eq "Folder" -and $_.Name -eq ""){
                    "Subweb"
                  }
                  else{
                    $_.GetType().Name
                  }
                </ScriptBlock>
              </TableColumnItem>
              <TableColumnItem>
                <ScriptBlock>
                  if($_.GetType().Name -eq "File"){
                    $_.Length
                  }
                  else{
                    $_.ItemCount
                  }
                </ScriptBlock>
              </TableColumnItem>
              <TableColumnItem>
                <PropertyName>TimeLastModified</PropertyName>
              </TableColumnItem>
            </TableColumnItems>
          </TableRowEntry>
        </TableRowEntries>
      </TableControl>
    </View>
    <View>
      <Name>File</Name>
      <ViewSelectedBy>
        <TypeName>Microsoft.SharePoint.Client.File</TypeName>
      </ViewSelectedBy>
      <TableControl>
        <TableHeaders>
          <TableColumnHeader>
            <Label>Name</Label>
            <Width>30</Width>
            <Alignment>left</Alignment>
          </TableColumnHeader>
          <TableColumnHeader>
            <Label>Length</Label>
            <Width>10</Width>
            <Alignment>left</Alignment>
          </TableColumnHeader>
        </TableHeaders>
        <TableRowEntries>
          <TableRowEntry>
            <TableColumnItems>
              <TableColumnItem>
                <PropertyName>Name</PropertyName>
              </TableColumnItem>
              <TableColumnItem>
                <PropertyName>Length</PropertyName>
              </TableColumnItem>
            </TableColumnItems>
          </TableRowEntry>
        </TableRowEntries>
      </TableControl>
    </View>
    <View>
      <Name>Folder</Name>
      <ViewSelectedBy>
        <TypeName>Microsoft.SharePoint.Client.Folder</TypeName>
      </ViewSelectedBy>
      <TableControl>
        <TableHeaders>
          <TableColumnHeader>
            <Label>Name</Label>
            <Width>30</Width>
            <Alignment>left</Alignment>
          </TableColumnHeader>
        </TableHeaders>
        <TableRowEntries>
          <TableRowEntry>
            <TableColumnItems>
              <TableColumnItem>
                <PropertyName>Name</PropertyName>
              </TableColumnItem>
            </TableColumnItems>
          </TableRowEntry>
        </TableRowEntries>
      </TableControl>
    </View>
    <View>
      <Name>ExtensibilityHandler</Name>
      <ViewSelectedBy>
        <TypeName>OfficeDevPnP.Core.Framework.Provisioning.Model.ExtensibilityHandler</TypeName>
      </ViewSelectedBy>
      <TableControl>
        <TableHeaders>
          <TableColumnHeader>
            <Label>Assembly</Label>
            <Width>30</Width>
            <Alignment>left</Alignment>
          </TableColumnHeader>
          <TableColumnHeader>
            <Label>Type</Label>
            <Width>30</Width>
            <Alignment>left</Alignment>
          </TableColumnHeader>
          <TableColumnHeader>
            <Label>Enabled</Label>
            <Width>7</Width>
            <Alignment>left</Alignment>
          </TableColumnHeader>
        </TableHeaders>
        <TableRowEntries>
          <TableRowEntry>
            <TableColumnItems>
              <TableColumnItem>
                <PropertyName>Assembly</PropertyName>
              </TableColumnItem>
              <TableColumnItem>
                <PropertyName>Type</PropertyName>
              </TableColumnItem>
              <TableColumnItem>
                <PropertyName>Enabled</PropertyName>
              </TableColumnItem>
            </TableColumnItems>
          </TableRowEntry>
        </TableRowEntries>
      </TableControl>
    </View>
    <View>
      <Name>TermGroup</Name>
      <ViewSelectedBy>
        <TypeName>Microsoft.SharePoint.Client.Taxonomy.TermGroup</TypeName>
      </ViewSelectedBy>
      <TableControl>
        <TableHeaders>
          <TableColumnHeader>
            <Label>Name</Label>
            <Width>30</Width>
            <Alignment>left</Alignment>
          </TableColumnHeader>
          <TableColumnHeader>
            <Label>Id</Label>
            <Width>36</Width>
            <Alignment>left</Alignment>
          </TableColumnHeader>
        </TableHeaders>
        <TableRowEntries>
          <TableRowEntry>
            <TableColumnItems>
              <TableColumnItem>
                <PropertyName>Name</PropertyName>
              </TableColumnItem>
              <TableColumnItem>
                <PropertyName>Id</PropertyName>
              </TableColumnItem>
            </TableColumnItems>
          </TableRowEntry>
        </TableRowEntries>
      </TableControl>
    </View>
    <View>
      <Name>TermSet</Name>
      <ViewSelectedBy>
        <TypeName>Microsoft.SharePoint.Client.Taxonomy.TermSet</TypeName>
      </ViewSelectedBy>
      <TableControl>
        <TableHeaders>
          <TableColumnHeader>
            <Label>Name</Label>
            <Width>30</Width>
            <Alignment>left</Alignment>
          </TableColumnHeader>
          <TableColumnHeader>
            <Label>Id</Label>
            <Width>36</Width>
            <Alignment>left</Alignment>
          </TableColumnHeader>
        </TableHeaders>
        <TableRowEntries>
          <TableRowEntry>
            <TableColumnItems>
              <TableColumnItem>
                <PropertyName>Name</PropertyName>
              </TableColumnItem>
              <TableColumnItem>
                <PropertyName>Id</PropertyName>
              </TableColumnItem>
            </TableColumnItems>
          </TableRowEntry>
        </TableRowEntries>
      </TableControl>
    </View>
    <View>
      <Name>Term</Name>
      <ViewSelectedBy>
        <TypeName>Microsoft.SharePoint.Client.Taxonomy.Term</TypeName>
      </ViewSelectedBy>
      <TableControl>
        <TableHeaders>
          <TableColumnHeader>
            <Label>Name</Label>
            <Width>30</Width>
            <Alignment>left</Alignment>
          </TableColumnHeader>
          <TableColumnHeader>
            <Label>Id</Label>
            <Width>36</Width>
            <Alignment>left</Alignment>
          </TableColumnHeader>
        </TableHeaders>
        <TableRowEntries>
          <TableRowEntry>
            <TableColumnItems>
              <TableColumnItem>
                <PropertyName>Name</PropertyName>
              </TableColumnItem>
              <TableColumnItem>
                <PropertyName>Id</PropertyName>
              </TableColumnItem>
            </TableColumnItems>
          </TableRowEntry>
        </TableRowEntries>
      </TableControl>
    </View>
    <View>
      <Name>ProvisioningTemplateInformation</Name>
      <ViewSelectedBy>
        <TypeName>SharePointPnP.PowerShell.Commands.Components.ProvisioningTemplateInformation</TypeName>
      </ViewSelectedBy>
      <TableControl>
        <TableHeaders>
          <TableColumnHeader>
            <Label>DisplayName</Label>
            <Width>30</Width>
            <Alignment>left</Alignment>
          </TableColumnHeader>
          <TableColumnHeader>
            <Label>Id</Label>
            <Width>36</Width>
            <Alignment>left</Alignment>
          </TableColumnHeader>
        </TableHeaders>
        <TableRowEntries>
          <TableRowEntry>
            <TableColumnItems>
              <TableColumnItem>
                <PropertyName>DisplayName</PropertyName>
              </TableColumnItem>
              <TableColumnItem>
                <PropertyName>Id</PropertyName>
              </TableColumnItem>
            </TableColumnItems>
          </TableRowEntry>
        </TableRowEntries>
      </TableControl>
    </View>
    <View>
      <Name>UnifiedGroupEntity</Name>
      <ViewSelectedBy>
        <TypeName>OfficeDevPnP.Core.Entities.UnifiedGroupEntity</TypeName>
      </ViewSelectedBy>
      <TableControl>
        <TableHeaders>
          <TableColumnHeader>
            <Label>DisplayName</Label>
            <Width>30</Width>
            <Alignment>left</Alignment>
          </TableColumnHeader>
          <TableColumnHeader>
            <Label>Group Id</Label>
            <Width>38</Width>
            <Alignment>left</Alignment>
          </TableColumnHeader>
          <TableColumnHeader>
            <Label>Site URL</Label>
            <Width>38</Width>
            <Alignment>left</Alignment>
          </TableColumnHeader>
        </TableHeaders>
        <TableRowEntries>
          <TableRowEntry>
            <TableColumnItems>
              <TableColumnItem>
                <PropertyName>DisplayName</PropertyName>
              </TableColumnItem>
              <TableColumnItem>
                <PropertyName>GroupId</PropertyName>
              </TableColumnItem>
              <TableColumnItem>
                <PropertyName>SiteUrl</PropertyName>
              </TableColumnItem>
            </TableColumnItems>
          </TableRowEntry>
        </TableRowEntries>
      </TableControl>
    </View>
    <View>
      <Name>RecycleBinItem</Name>
      <ViewSelectedBy>
        <TypeName>Microsoft.SharePoint.Client.RecycleBinItem</TypeName>
      </ViewSelectedBy>
      <TableControl>
        <TableHeaders>
          <TableColumnHeader>
            <Label>Title</Label>
            <Alignment>left</Alignment>
          </TableColumnHeader>
          <TableColumnHeader>
            <Label>Id</Label>
            <Width>38</Width>
            <Alignment>left</Alignment>
          </TableColumnHeader>
          <TableColumnHeader>
            <Label>ItemType</Label>
            <Width>10</Width>
            <Alignment>left</Alignment>
          </TableColumnHeader>
          <TableColumnHeader>
            <Label>LeafName</Label>
            <Alignment>left</Alignment>
          </TableColumnHeader>
          <TableColumnHeader>
            <Label>DirName</Label>
            <Alignment>left</Alignment>
          </TableColumnHeader>
        </TableHeaders>
        <TableRowEntries>
          <TableRowEntry>
            <TableColumnItems>
              <TableColumnItem>
                <PropertyName>Title</PropertyName>
              </TableColumnItem>
              <TableColumnItem>
                <PropertyName>Id</PropertyName>
              </TableColumnItem>
              <TableColumnItem>
                <PropertyName>ItemType</PropertyName>
              </TableColumnItem>
              <TableColumnItem>
                <PropertyName>LeafName</PropertyName>
              </TableColumnItem>
              <TableColumnItem>
                <PropertyName>DirName</PropertyName>
              </TableColumnItem>
            </TableColumnItems>
          </TableRowEntry>
        </TableRowEntries>
      </TableControl>
    </View>
    <View>
      <Name>ImageRendition</Name>
      <ViewSelectedBy>
        <TypeName>Microsoft.SharePoint.Client.Publishing.ImageRendition</TypeName>
      </ViewSelectedBy>
      <TableControl>
        <TableHeaders>
          <TableColumnHeader>
            <Label>Id</Label>
            <Alignment>Right</Alignment>
          </TableColumnHeader>
          <TableColumnHeader>
            <Label>Name</Label>
            <Alignment>left</Alignment>
          </TableColumnHeader>
          <TableColumnHeader>
            <Label>Height</Label>
            <Alignment>Right</Alignment>
          </TableColumnHeader>
          <TableColumnHeader>
            <Label>Width</Label>
            <Alignment>Right</Alignment>
          </TableColumnHeader>
        </TableHeaders>
        <TableRowEntries>
          <TableRowEntry>
            <TableColumnItems>
              <TableColumnItem>
                <PropertyName>Id</PropertyName>
              </TableColumnItem>
              <TableColumnItem>
                <PropertyName>Name</PropertyName>
              </TableColumnItem>
              <TableColumnItem>
                <PropertyName>Height</PropertyName>
              </TableColumnItem>
              <TableColumnItem>
                <PropertyName>Width</PropertyName>
              </TableColumnItem>
            </TableColumnItems>
          </TableRowEntry>
        </TableRowEntries>
      </TableControl>
    </View>
    <View>
      <Name>DeletedSiteProperties</Name>
      <ViewSelectedBy>
        <TypeName>Microsoft.Online.SharePoint.TenantAdministration.DeletedSiteProperties</TypeName>
      </ViewSelectedBy>
      <TableControl>
        <TableHeaders>
          <TableColumnHeader>
            <Label>DaysRemaining</Label>
            <Alignment>right</Alignment>
          </TableColumnHeader>
          <TableColumnHeader>
            <Label>DeletionTime</Label>
            <Alignment>left</Alignment>
          </TableColumnHeader>
          <TableColumnHeader>
            <Label>Url</Label>
            <Alignment>left</Alignment>
          </TableColumnHeader>
        </TableHeaders>
        <TableRowEntries>
          <TableRowEntry>
            <TableColumnItems>
              <TableColumnItem>
                <PropertyName>DaysRemaining</PropertyName>
              </TableColumnItem>
              <TableColumnItem>
                <PropertyName>DeletionTime</PropertyName>
              </TableColumnItem>
              <TableColumnItem>
                <PropertyName>Url</PropertyName>
              </TableColumnItem>
            </TableColumnItems>
          </TableRowEntry>
        </TableRowEntries>
      </TableControl>
    </View>
    <View>
      <Name>TermStore</Name>
      <ViewSelectedBy>
        <TypeName>Microsoft.SharePoint.Client.Taxonomy.Termstore</TypeName>
      </ViewSelectedBy>
      <TableControl>
        <TableHeaders>
          <TableColumnHeader>
            <Label>Name</Label>
            <Alignment>left</Alignment>
          </TableColumnHeader>
          <TableColumnHeader>
            <Label>Id</Label>
            <Alignment>left</Alignment>
          </TableColumnHeader>
          <TableColumnHeader>
            <Label>Groups</Label>
            <Alignment>left</Alignment>
          </TableColumnHeader>
          <TableColumnHeader>
            <Label>KeywordsTermSet</Label>
            <Alignment>left</Alignment>
          </TableColumnHeader>
        </TableHeaders>
        <TableRowEntries>
          <TableRowEntry>
            <TableColumnItems>
              <TableColumnItem>
                <PropertyName>Name</PropertyName>
              </TableColumnItem>
              <TableColumnItem>
                <PropertyName>Id</PropertyName>
              </TableColumnItem>
              <TableColumnItem>
                <ScriptBlock>
                  if($_.IsObjectPropertyInstantiated("Groups")){
                  $_.Groups.Name
                  }
                  else{
                  "Not loaded"
                  }
                </ScriptBlock>
              </TableColumnItem>
              <TableColumnItem>
                <ScriptBlock>
                  if($_.IsObjectPropertyInstantiated("KeywordsTermSet")){
                  $_.KeywordsTermSet.Name
                  }
                  else{
                  "Not loaded"
                  }
                </ScriptBlock>
              </TableColumnItem>
            </TableColumnItems>
          </TableRowEntry>
        </TableRowEntries>
      </TableControl>
    </View>
    <View>
      <Name>SitePolicyEntity</Name>
      <ViewSelectedBy>
        <TypeName>OfficeDevPnP.Core.Entities.SitePolicyEntity</TypeName>
      </ViewSelectedBy>
      <TableControl>
        <TableHeaders>
          <TableColumnHeader>
            <Label>Name</Label>
            <Alignment>left</Alignment>
          </TableColumnHeader>
          <TableColumnHeader>
            <Label>Description</Label>
            <Alignment>left</Alignment>
          </TableColumnHeader>
        </TableHeaders>
        <TableRowEntries>
          <TableRowEntry>
            <TableColumnItems>
              <TableColumnItem>
                <PropertyName>Name</PropertyName>
              </TableColumnItem>
              <TableColumnItem>
                <PropertyName>Description</PropertyName>
              </TableColumnItem>
            </TableColumnItems>
          </TableRowEntry>
        </TableRowEntries>
      </TableControl>
    </View>
    <View>
      <Name>EventReceiverDefinition</Name>
      <ViewSelectedBy>
        <TypeName>Microsoft.SharePoint.Client.EventReceiverDefinition</TypeName>
      </ViewSelectedBy>
      <TableControl>
        <TableHeaders>
          <TableColumnHeader>
            <Label>ReceiverName</Label>
            <Alignment>left</Alignment>
          </TableColumnHeader>
          <TableColumnHeader>
            <Label>ReceiverId</Label>
            <Alignment>left</Alignment>
          </TableColumnHeader>
          <TableColumnHeader>
            <Label>SequenceNumber</Label>
            <Alignment>left</Alignment>
          </TableColumnHeader>
          <TableColumnHeader>
            <Label>EventType</Label>
            <Alignment>left</Alignment>
          </TableColumnHeader>
          <TableColumnHeader>
            <Label>Synchronization</Label>
            <Alignment>left</Alignment>
          </TableColumnHeader>
        </TableHeaders>
        <TableRowEntries>
          <TableRowEntry>
            <TableColumnItems>
              <TableColumnItem>
                <PropertyName>ReceiverName</PropertyName>
              </TableColumnItem>
              <TableColumnItem>
                <PropertyName>ReceiverId</PropertyName>
              </TableColumnItem>
              <TableColumnItem>
                <PropertyName>SequenceNumber</PropertyName>
              </TableColumnItem>
              <TableColumnItem>
                <PropertyName>EventType</PropertyName>
              </TableColumnItem>
              <TableColumnItem>
                <PropertyName>Synchronization</PropertyName>
              </TableColumnItem>
            </TableColumnItems>
          </TableRowEntry>
        </TableRowEntries>
      </TableControl>
    </View>
    <View>
      <Name>RoleDefinition</Name>
      <ViewSelectedBy>
        <TypeName>Microsoft.SharePoint.Client.RoleDefinition</TypeName>
      </ViewSelectedBy>
      <TableControl>
        <TableHeaders>
          <TableColumnHeader>
            <Label>Name</Label>
            <Alignment>left</Alignment>
          </TableColumnHeader>
          <TableColumnHeader>
            <Label>RoleTypeKind</Label>
            <Alignment>left</Alignment>
          </TableColumnHeader>
          <TableColumnHeader>
            <Label>Hidden</Label>
            <Alignment>left</Alignment>
          </TableColumnHeader>
          <TableColumnHeader>
            <Label>Order</Label>
            <Alignment>right</Alignment>
          </TableColumnHeader>
        </TableHeaders>
        <TableRowEntries>
          <TableRowEntry>
            <TableColumnItems>
              <TableColumnItem>
                <PropertyName>Name</PropertyName>
              </TableColumnItem>
              <TableColumnItem>
                <PropertyName>RoleTypeKind</PropertyName>
              </TableColumnItem>
              <TableColumnItem>
                <PropertyName>Hidden</PropertyName>
              </TableColumnItem>
              <TableColumnItem>
                <PropertyName>Order</PropertyName>
              </TableColumnItem>
            </TableColumnItems>
          </TableRowEntry>
        </TableRowEntries>
      </TableControl>
    </View>
    <View>
      <Name>Audit</Name>
      <ViewSelectedBy>
        <TypeName>Microsoft.SharePoint.Client.Audit</TypeName>
      </ViewSelectedBy>
      <TableControl>
        <TableHeaders>
          <TableColumnHeader>
            <Label>AuditFlags</Label>
            <Alignment>left</Alignment>
          </TableColumnHeader>
        </TableHeaders>
        <TableRowEntries>
          <TableRowEntry>
            <TableColumnItems>
              <TableColumnItem>
                <PropertyName>AuditFlags</PropertyName>
              </TableColumnItem>
            </TableColumnItems>
          </TableRowEntry>
        </TableRowEntries>
      </TableControl>
    </View>
    <View>
      <Name>User</Name>
      <ViewSelectedBy>
        <TypeName>Microsoft.SharePoint.Client.User</TypeName>
      </ViewSelectedBy>
      <TableControl>
        <TableHeaders>
          <TableColumnHeader>
            <Label>Id</Label>
            <Alignment>right</Alignment>
          </TableColumnHeader>
          <TableColumnHeader>
            <Label>Title</Label>
            <Alignment>left</Alignment>
          </TableColumnHeader>
          <TableColumnHeader>
            <Label>LoginName</Label>
            <Alignment>left</Alignment>
          </TableColumnHeader>
          <TableColumnHeader>
            <Label>Email</Label>
            <Alignment>left</Alignment>
          </TableColumnHeader>
        </TableHeaders>
        <TableRowEntries>
          <TableRowEntry>
            <TableColumnItems>
              <TableColumnItem>
                <PropertyName>Id</PropertyName>
              </TableColumnItem>
              <TableColumnItem>
                <PropertyName>Title</PropertyName>
              </TableColumnItem>
              <TableColumnItem>
                <PropertyName>LoginName</PropertyName>
              </TableColumnItem>
              <TableColumnItem>
                <PropertyName>Email</PropertyName>
              </TableColumnItem>
            </TableColumnItems>
          </TableRowEntry>
        </TableRowEntries>
      </TableControl>
    </View>
    <View>
      <Name>ClientSideComponent</Name>
      <ViewSelectedBy>
        <TypeName>OfficeDevPnP.Core.Pages.ClientSideComponent</TypeName>
      </ViewSelectedBy>
      <TableControl>
        <TableHeaders>
          <TableColumnHeader>
            <Label>Id</Label>
            <Alignment>left</Alignment>
          </TableColumnHeader>
          <TableColumnHeader>
            <Label>Name</Label>
            <Alignment>left</Alignment>
          </TableColumnHeader>
          <TableColumnHeader>
            <Label>Alias</Label>
            <Alignment>left</Alignment>
          </TableColumnHeader>
        </TableHeaders>
        <TableRowEntries>
          <TableRowEntry>
            <TableColumnItems>
              <TableColumnItem>
                <PropertyName>Id</PropertyName>
              </TableColumnItem>
              <TableColumnItem>
                <PropertyName>Name</PropertyName>
              </TableColumnItem>
              <TableColumnItem>
                <ScriptBlock>(ConvertFrom-Json $_.Manifest).alias</ScriptBlock>
              </TableColumnItem>
            </TableColumnItems>
          </TableRowEntry>
        </TableRowEntries>
      </TableControl>
    </View>
    <View>
      <Name>AppMetadata</Name>
      <ViewSelectedBy>
        <TypeName>OfficeDevPnP.Core.ALM.AppMetadata</TypeName>
      </ViewSelectedBy>
      <TableControl>
        <TableHeaders>
          <TableColumnHeader>
            <Label>Id</Label>
            <Alignment>left</Alignment>
          </TableColumnHeader>
          <TableColumnHeader>
            <Label>Title</Label>
            <Alignment>left</Alignment>
          </TableColumnHeader>
          <TableColumnHeader>
            <Label>Deployed</Label>
            <Alignment>left</Alignment>
          </TableColumnHeader>
          <TableColumnHeader>
            <Label>AppCatalogVersion</Label>
            <Alignment>left</Alignment>
          </TableColumnHeader>
          <TableColumnHeader>
            <Label>InstalledVersion</Label>
            <Alignment>left</Alignment>
          </TableColumnHeader>
        </TableHeaders>
        <TableRowEntries>
          <TableRowEntry>
            <TableColumnItems>
              <TableColumnItem>
                <PropertyName>Id</PropertyName>
              </TableColumnItem>
              <TableColumnItem>
                <PropertyName>Title</PropertyName>
              </TableColumnItem>
              <TableColumnItem>
                <PropertyName>Deployed</PropertyName>
              </TableColumnItem>
              <TableColumnItem>
                <PropertyName>AppCatalogVersion</PropertyName>
              </TableColumnItem>
              <TableColumnItem>
                <PropertyName>InstalledVersion</PropertyName>
              </TableColumnItem>
            </TableColumnItems>
          </TableRowEntry>
        </TableRowEntries>
      </TableControl>
    </View>
    <View>
      <Name>TenantSiteDesign</Name>
      <ViewSelectedBy>
        <TypeName>Microsoft.Online.SharePoint.TenantAdministration.TenantSiteDesign</TypeName>
      </ViewSelectedBy>
      <TableControl>
        <TableHeaders>
          <TableColumnHeader>
            <Label>Id</Label>
            <Alignment>left</Alignment>
          </TableColumnHeader>
          <TableColumnHeader>
            <Label>Title</Label>
            <Alignment>left</Alignment>
          </TableColumnHeader>
          <TableColumnHeader>
            <Label>Site Scripts</Label>
            <Alignment>left</Alignment>
          </TableColumnHeader>
        </TableHeaders>
        <TableRowEntries>
          <TableRowEntry>
            <TableColumnItems>
              <TableColumnItem>
                <PropertyName>Id</PropertyName>
              </TableColumnItem>
              <TableColumnItem>
                <PropertyName>Title</PropertyName>
              </TableColumnItem>
              <TableColumnItem>
                <PropertyName>SiteScriptIds</PropertyName>
              </TableColumnItem>
            </TableColumnItems>
          </TableRowEntry>
        </TableRowEntries>
      </TableControl>
    </View>
    <View>
      <Name>TenantSiteScript</Name>
      <ViewSelectedBy>
        <TypeName>Microsoft.Online.SharePoint.TenantAdministration.TenantSiteScript</TypeName>
      </ViewSelectedBy>
      <TableControl>
        <TableHeaders>
          <TableColumnHeader>
            <Label>Id</Label>
            <Alignment>left</Alignment>
          </TableColumnHeader>
          <TableColumnHeader>
            <Label>Title</Label>
            <Alignment>left</Alignment>
          </TableColumnHeader>
          <TableColumnHeader>
            <Label>Version</Label>
            <Alignment>left</Alignment>
          </TableColumnHeader>
          <TableColumnHeader>
            <Label>Content</Label>
            <Alignment>left</Alignment>
          </TableColumnHeader>
        </TableHeaders>
        <TableRowEntries>
          <TableRowEntry>
            <TableColumnItems>
              <TableColumnItem>
                <PropertyName>Id</PropertyName>
              </TableColumnItem>
              <TableColumnItem>
                <PropertyName>Title</PropertyName>
              </TableColumnItem>
              <TableColumnItem>
                <PropertyName>Version</PropertyName>
              </TableColumnItem>
              <TableColumnItem>
                <PropertyName>Content</PropertyName>
              </TableColumnItem>
            </TableColumnItems>
          </TableRowEntry>
        </TableRowEntries>
      </TableControl>
    </View>
    <View>
      <Name>TenantSiteDesignPrincipal</Name>
      <ViewSelectedBy>
        <TypeName>Microsoft.Online.SharePoint.TenantAdministration.TenantSiteDesignPrincipal</TypeName>
      </ViewSelectedBy>
      <TableControl>
        <TableHeaders>
          <TableColumnHeader>
            <Label>DisplayName</Label>
            <Alignment>left</Alignment>
          </TableColumnHeader>
          <TableColumnHeader>
            <Label>PrincipalName</Label>
            <Alignment>left</Alignment>
          </TableColumnHeader>
          <TableColumnHeader>
            <Label>Rights</Label>
            <Alignment>left</Alignment>
          </TableColumnHeader>
        </TableHeaders>
        <TableRowEntries>
          <TableRowEntry>
            <TableColumnItems>
              <TableColumnItem>
                <PropertyName>DisplayName</PropertyName>
              </TableColumnItem>
              <TableColumnItem>
                <PropertyName>PrincipalName</PropertyName>
              </TableColumnItem>
              <TableColumnItem>
                <PropertyName>Rights</PropertyName>
              </TableColumnItem>
            </TableColumnItems>
          </TableRowEntry>
        </TableRowEntries>
      </TableControl>
    </View>
    <View>
      <Name>CanvasControl</Name>
      <ViewSelectedBy>
        <TypeName>OfficeDevPnP.Core.Pages.CanvasControl</TypeName>
      </ViewSelectedBy>
      <TableControl>
        <TableHeaders>
          <TableColumnHeader>
            <Label>InstanceId</Label>
            <Alignment>left</Alignment>
          </TableColumnHeader>
          <TableColumnHeader>
            <Label>Type</Label>
            <Alignment>left</Alignment>
          </TableColumnHeader>
          <TableColumnHeader>
            <Label>Title</Label>
            <Alignment>left</Alignment>
          </TableColumnHeader>
          <TableColumnHeader>
            <Label>Section</Label>
            <Alignment>left</Alignment>
          </TableColumnHeader>
          <TableColumnHeader>
            <Label>Column</Label>
            <Alignment>left</Alignment>
          </TableColumnHeader>
          <TableColumnHeader>
            <Label>Position</Label>
            <Alignment>left</Alignment>
          </TableColumnHeader>
          <TableColumnHeader>
            <Label>PropertiesJson</Label>
            <Alignment>left</Alignment>
          </TableColumnHeader>
        </TableHeaders>
        <TableRowEntries>
          <TableRowEntry>
            <TableColumnItems>
              <TableColumnItem>
                <PropertyName>InstanceId</PropertyName>
              </TableColumnItem>
              <TableColumnItem>
                <ScriptBlock>$_.Type.Name</ScriptBlock>
              </TableColumnItem>
              <TableColumnItem>
                <PropertyName>Title</PropertyName>
              </TableColumnItem>
              <TableColumnItem>
                <ScriptBlock>$_.Section.Page.Sections.IndexOf($_.Section) + 1</ScriptBlock>
              </TableColumnItem>
              <TableColumnItem>
                <ScriptBlock>$_.Section.Columns.IndexOf($_.Column) + 1</ScriptBlock>
              </TableColumnItem>
              <TableColumnItem>
                <PropertyName>Order</PropertyName>
              </TableColumnItem>
              <TableColumnItem>
                <PropertyName>PropertiesJson</PropertyName>
              </TableColumnItem>
            </TableColumnItems>
          </TableRowEntry>
        </TableRowEntries>
      </TableControl>
    </View>
    <View>
      <Name>NavigationNode</Name>
      <ViewSelectedBy>
        <TypeName>Microsoft.SharePoint.Client.NavigationNode</TypeName>
      </ViewSelectedBy>
      <TableControl>
        <TableHeaders>
          <TableColumnHeader>
            <Label>Id</Label>
            <Alignment>left</Alignment>
          </TableColumnHeader>
          <TableColumnHeader>
            <Label>Title</Label>
            <Alignment>left</Alignment>
          </TableColumnHeader>
          <TableColumnHeader>
            <Label>Visible</Label>
            <Alignment>left</Alignment>
          </TableColumnHeader>
          <TableColumnHeader>
            <Label>Url</Label>
            <Alignment>left</Alignment>
          </TableColumnHeader>
        </TableHeaders>
        <TableRowEntries>
          <TableRowEntry>
            <TableColumnItems>
              <TableColumnItem>
                <PropertyName>Id</PropertyName>
              </TableColumnItem>
              <TableColumnItem>
                <PropertyName>Title</PropertyName>
              </TableColumnItem>
              <TableColumnItem>
                <PropertyName>IsVisible</PropertyName>
              </TableColumnItem>
              <TableColumnItem>
                <PropertyName>Url</PropertyName>
              </TableColumnItem>
            </TableColumnItems>
          </TableRowEntry>
        </TableRowEntries>
      </TableControl>
    </View>
    <View>
      <Name>SPOTheme</Name>
      <ViewSelectedBy>
        <TypeName>SharePointPnP.PowerShell.Commands.Model.SPOTheme</TypeName>
      </ViewSelectedBy>
      <TableControl>
        <TableHeaders>
          <TableColumnHeader>
            <Label>Name</Label>
            <Alignment>left</Alignment>
          </TableColumnHeader>
          <TableColumnHeader>
            <Label>Palette</Label>
            <Alignment>left</Alignment>
          </TableColumnHeader>
        </TableHeaders>
        <TableRowEntries>
          <TableRowEntry>
            <TableColumnItems>
              <TableColumnItem>
                <PropertyName>Name</PropertyName>
              </TableColumnItem>
              <TableColumnItem>
                <PropertyName>Palette</PropertyName>
              </TableColumnItem>
            </TableColumnItems>
          </TableRowEntry>
        </TableRowEntries>
      </TableControl>
    </View>
    <View>
      <Name>HubSiteProperties</Name>
      <ViewSelectedBy>
        <TypeName>Microsoft.Online.SharePoint.TenantAdministration.HubSiteProperties</TypeName>
      </ViewSelectedBy>
      <TableControl>
        <TableHeaders>
          <TableColumnHeader>
            <Label>SiteId</Label>
            <Alignment>left</Alignment>
          </TableColumnHeader>
          <TableColumnHeader>
            <Label>Title</Label>
            <Alignment>left</Alignment>
          </TableColumnHeader>
          <TableColumnHeader>
            <Label>Url</Label>
            <Alignment>left</Alignment>
          </TableColumnHeader>
        </TableHeaders>
        <TableRowEntries>
          <TableRowEntry>
            <TableColumnItems>
              <TableColumnItem>
                <PropertyName>SiteId</PropertyName>
              </TableColumnItem>
              <TableColumnItem>
                <PropertyName>Title</PropertyName>
              </TableColumnItem>
              <TableColumnItem>
                <PropertyName>SiteUrl</PropertyName>
              </TableColumnItem>
            </TableColumnItems>
          </TableRowEntry>
        </TableRowEntries>
      </TableControl>
    </View>
    <View>
      <Name>TenantSiteScriptActionResult</Name>
      <ViewSelectedBy>
        <TypeName>Microsoft.Online.SharePoint.TenantAdministration.TenantSiteScriptActionResult</TypeName>
      </ViewSelectedBy>
      <TableControl>
        <TableHeaders>
          <TableColumnHeader>
            <Label>Title</Label>
            <Alignment>left</Alignment>
          </TableColumnHeader>
          <TableColumnHeader>
            <Label>OutcomeText</Label>
            <Alignment>left</Alignment>
          </TableColumnHeader>
          <TableColumnHeader>
            <Label>Outcome</Label>
            <Alignment>left</Alignment>
          </TableColumnHeader>
        </TableHeaders>
        <TableRowEntries>
          <TableRowEntry>
            <TableColumnItems>
              <TableColumnItem>
                <PropertyName>Title</PropertyName>
              </TableColumnItem>
              <TableColumnItem>
                <PropertyName>OutcomeText</PropertyName>
              </TableColumnItem>
              <TableColumnItem>
                <PropertyName>Outcome</PropertyName>
              </TableColumnItem>
            </TableColumnItems>
          </TableRowEntry>
        </TableRowEntries>
      </TableControl>
    </View>
  </ViewDefinitions>
</Configuration>

================================================
FILE: assets/functions/applyportaltemplate/modules/SharePointPnPPowerShellOnline/SharePointPnP.PowerShell.Online.Commands.dll-help.xml
================================================
<?xml version="1.0" encoding="utf-8"?>
<helpItems schema="maml" xmlns="http://msh">
  <command:command xmlns:maml="http://schemas.microsoft.com/maml/2004/10" xmlns:command="http://schemas.microsoft.com/maml/dev/command/2004/10" xmlns:dev="http://schemas.microsoft.com/maml/dev/2004/10">
    <command:details>
      <command:name>Add-PnPApp</command:name>
      <maml:description>
        <maml:para>* Supported in: SharePoint Online.

Add/uploads an available app to the app catalog</maml:para>
      </maml:description>
      <maml:copyright>
        <maml:para />
      </maml:copyright>
      <command:verb>Add</command:verb>
      <command:noun>PnPApp</command:noun>
      <dev:version />
    </command:details>
    <command:syntax>
      <command:syntaxItem>
        <maml:name>Add-PnPApp</maml:name>
        <command:parameter required="true" position="named">
          <maml:name>Path</maml:name>
          <maml:description>
            <maml:para>Specifies the Id or an actual app metadata instance</maml:para>
          </maml:description>
          <command:parameterValue required="true">String</command:parameterValue>
        </command:parameter>
        <command:parameter required="false" position="named">
          <maml:name>Overwrite</maml:name>
          <maml:description>
            <maml:para>Overwrites the existing app package if it already exists</maml:para>
          </maml:description>
          <command:parameterValue required="false">SwitchParameter</command:parameterValue>
        </command:parameter>
        <command:parameter required="false" position="named">
          <maml:name>Connection</maml:name>
          <maml:description>
            <maml:para>Optional connection to be used by the cmdlet. Retrieve the value for this parameter by either specifying -ReturnConnection on Connect-PnPOnline or by executing Get-PnPConnection.</maml:para>
          </maml:description>
          <command:parameterValue required="true">SPOnlineConnection</command:parameterValue>
        </command:parameter>
      </command:syntaxItem>
      <command:syntaxItem>
        <maml:name>Add-PnPApp</maml:name>
        <command:parameter required="true" position="named">
          <maml:name>Publish</maml:name>
          <maml:description>
            <maml:para>This will deploy/trust an app into the app catalog</maml:para>
          </maml:description>
          <command:parameterValue required="false">SwitchParameter</command:parameterValue>
        </command:parameter>
        <command:parameter required="true" position="named">
          <maml:name>Path</maml:name>
          <maml:description>
            <maml:para>Specifies the Id or an actual app metadata instance</maml:para>
          </maml:description>
          <command:parameterValue required="true">String</command:parameterValue>
        </command:parameter>
        <command:parameter required="false" position="named">
          <maml:name>SkipFeatureDeployment</maml:name>
          <maml:description>
            <maml:para />
          </maml:description>
          <command:parameterValue required="false">SwitchParameter</command:parameterValue>
        </command:parameter>
        <command:parameter required="false" position="named">
          <maml:name>Overwrite</maml:name>
          <maml:description>
            <maml:para>Overwrites the existing app package if it already exists</maml:para>
          </maml:description>
          <command:parameterValue required="false">SwitchParameter</command:parameterValue>
        </command:parameter>
        <command:parameter required="false" position="named">
          <maml:name>Connection</maml:name>
          <maml:description>
            <maml:para>Optional connection to be used by the cmdlet. Retrieve the value for this parameter by either specifying -ReturnConnection on Connect-PnPOnline or by executing Get-PnPConnection.</maml:para>
          </maml:description>
          <command:parameterValue required="true">SPOnlineConnection</command:parameterValue>
        </command:parameter>
      </command:syntaxItem>
    </command:syntax>
    <command:parameters>
      <command:parameter required="false" position="named">
        <maml:name>Overwrite</maml:name>
        <maml:description>
          <maml:para>Overwrites the existing app package if it already exists</maml:para>
        </maml:description>
        <command:parameterValue required="false">SwitchParameter</command:parameterValue>
        <dev:type>
          <maml:name>SwitchParameter</maml:name>
          <maml:uri />
        </dev:type>
      </command:parameter>
      <command:parameter required="true" position="named">
        <maml:name>Path</maml:name>
        <maml:description>
          <maml:para>Specifies the Id or an actual app metadata instance</maml:para>
        </maml:description>
        <command:parameterValue required="true">String</command:parameterValue>
        <dev:type>
          <maml:name>String</maml:name>
          <maml:uri />
        </dev:type>
      </command:parameter>
      <command:parameter required="true" position="named">
        <maml:name>Publish</maml:name>
        <maml:description>
          <maml:para>This will deploy/trust an app into the app catalog</maml:para>
        </maml:description>
        <command:parameterValue required="true">SwitchParameter</command:parameterValue>
        <dev:type>
          <maml:name>SwitchParameter</maml:name>
          <maml:uri />
        </dev:type>
      </command:parameter>
      <command:parameter required="false" position="named">
        <maml:name>SkipFeatureDeployment</maml:name>
        <maml:description>
          <maml:para />
        </maml:description>
        <command:parameterValue required="false">SwitchParameter</command:parameterValue>
        <dev:type>
          <maml:name>SwitchParameter</maml:name>
          <maml:uri />
        </dev:type>
      </command:parameter>
      <command:parameter required="false" position="named">
        <maml:name>Connection</maml:name>
        <maml:description>
          <maml:para>Optional connection to be used by the cmdlet. Retrieve the value for this parameter by either specifying -ReturnConnection on Connect-PnPOnline or by executing Get-PnPConnection.</maml:para>
        </maml:description>
        <command:parameterValue required="false">SPOnlineConnection</command:parameterValue>
        <dev:type>
          <maml:name>SPOnlineConnection</maml:name>
          <maml:uri />
        </dev:type>
      </command:parameter>
    </command:parameters>
    <command:returnValues>
      <command:returnValue>
        <dev:type>
          <maml:name>OfficeDevPnP.Core.ALM.AppMetadata</maml:name>
          <maml:uri />
          <maml:description>
            <maml:para></maml:para>
          </maml:description>
        </dev:type>
      </command:returnValue>
    </command:returnValues>
    <command:examples>
      <command:example>
        <maml:title>------------------EXAMPLE 1---------------------</maml:title>
        <maml:introduction>
          <maml:para />
        </maml:introduction>
        <dev:code>PS:&gt; Add-PnPApp -Path ./myapp.sppkg</dev:code>
        <maml:remarks>
          <maml:para>This will upload the specified app package to the app catalog</maml:para>
          <maml:para></maml:para>
        </maml:remarks>
        <command:commandLines>
          <command:commandLine>
            <command:commandText />
          </command:commandLine>
        </command:commandLines>
      </command:example>
      <command:example>
        <maml:title>------------------EXAMPLE 2---------------------</maml:title>
        <maml:introduction>
          <maml:para />
        </maml:introduction>
        <dev:code>PS:&gt; Add-PnPApp -Path ./myapp.sppkg -Publish</dev:code>
        <maml:remarks>
          <maml:para>This will upload the specified app package to the app catalog and deploy/trust it at the same time.</maml:para>
          <maml:para></maml:para>
        </maml:remarks>
        <command:commandLines>
          <command:commandLine>
            <command:commandText />
          </command:commandLine>
        </command:commandLines>
      </command:example>
    </command:examples>
    <maml:relatedLinks>
      <maml:navigationLink>
        <maml:linkText>SharePoint Developer Patterns and Practices:</maml:linkText>
        <maml:uri>http://aka.ms/sppnp</maml:uri>
      </maml:navigationLink>
    </maml:relatedLinks>
  </command:command>
  <command:command xmlns:maml="http://schemas.microsoft.com/maml/2004/10" xmlns:command="http://schemas.microsoft.com/maml/dev/command/2004/10" xmlns:dev="http://schemas.microsoft.com/maml/dev/2004/10">
    <command:details>
      <command:name>Add-PnPClientSidePage</command:name>
      <maml:description>
        <maml:para>* Supported in: SharePoint Online.

Adds a Client-Side Page</maml:para>
      </maml:description>
      <maml:copyright>
        <maml:para />
      </maml:copyright>
      <command:verb>Add</command:verb>
      <command:noun>PnPClientSidePage</command:noun>
      <dev:version />
    </command:details>
    <command:syntax>
      <command:syntaxItem>
        <maml:name>Add-PnPClientSidePage</maml:name>
        <command:parameter required="true" position="named">
          <maml:name>Name</maml:name>
          <maml:description>
            <maml:para>Specifies the name of the page.</maml:para>
          </maml:description>
          <command:parameterValue required="true">String</command:parameterValue>
        </command:parameter>
        <command:parameter required="false" position="named">
          <maml:name>LayoutType</maml:name>
          <maml:description>
            <maml:para>Specifies the layout type of the page.</maml:para>
          </maml:description>
          <command:parameterValue required="true">ClientSidePageLayoutType</command:parameterValue>
        </command:parameter>
        <command:parameter required="false" position="named">
          <maml:name>PromoteAs</maml:name>
          <maml:description>
            <maml:para>Allows to promote the page for a specific purpose (HomePage | NewsPage)</maml:para>
          </maml:description>
          <command:parameterValue required="true">ClientSidePagePromoteType</command:parameterValue>
        </command:parameter>
        <command:parameter required="false" position="named">
          <maml:name>CommentsEnabled</maml:name>
          <maml:description>
            <maml:para>Enables or Disables the comments on the page</maml:para>
          </maml:description>
          <command:parameterValue required="false">SwitchParameter</command:parameterValue>
        </command:parameter>
        <command:parameter required="false" position="named">
          <maml:name>Publish</maml:name>
          <maml:description>
            <maml:para>Publishes the page once it is saved. Applicable to libraries set to create major and minor versions.</maml:para>
          </maml:description>
          <command:parameterValue required="false">SwitchParameter</command:parameterValue>
        </command:parameter>
        <command:parameter required="false" position="named">
          <maml:name>Web</maml:name>
          <maml:description>
            <maml:para>This parameter allows you to optionally apply the cmdlet action to a subweb within the current web. In most situations this parameter is not required and you can connect to the subweb using Connect-PnPOnline instead. Specify the GUID, server relative url (i.e. /sites/team1) or web instance of the web to apply the command to. Omit this parameter to use the current web.</maml:para>
          </maml:description>
          <command:parameterValue required="true">WebPipeBind</command:parameterValue>
        </command:parameter>
        <command:parameter required="false" position="named">
          <maml:name>Connection</maml:name>
          <maml:description>
            <maml:para>Optional connection to be used by the cmdlet. Retrieve the value for this parameter by either specifying -ReturnConnection on Connect-PnPOnline or by executing Get-PnPConnection.</maml:para>
          </maml:description>
          <command:parameterValue required="true">SPOnlineConnection</command:parameterValue>
        </command:parameter>
      </command:syntaxItem>
    </command:syntax>
    <command:parameters>
      <command:parameter required="false" position="named">
        <maml:name>CommentsEnabled</maml:name>
        <maml:description>
          <maml:para>Enables or Disables the comments on the page</maml:para>
        </maml:description>
        <command:parameterValue required="false">SwitchParameter</command:parameterValue>
        <dev:type>
          <maml:name>SwitchParameter</maml:name>
          <maml:uri />
        </dev:type>
      </command:parameter>
      <command:parameter required="false" position="named">
        <maml:name>LayoutType</maml:name>
        <maml:description>
          <maml:para>Specifies the layout type of the page.</maml:para>
        </maml:description>
        <command:parameterValue required="false">ClientSidePageLayoutType</command:parameterValue>
        <dev:type>
          <maml:name>ClientSidePageLayoutType</maml:name>
          <maml:uri />
        </dev:type>
      </command:parameter>
      <command:parameter required="true" position="named">
        <maml:name>Name</maml:name>
        <maml:description>
          <maml:para>Specifies the name of the page.</maml:para>
        </maml:description>
        <command:parameterValue required="true">String</command:parameterValue>
        <dev:type>
          <maml:name>String</maml:name>
          <maml:uri />
        </dev:type>
      </command:parameter>
      <command:parameter required="false" position="named">
        <maml:name>PromoteAs</maml:name>
        <maml:description>
          <maml:para>Allows to promote the page for a specific purpose (HomePage | NewsPage)</maml:para>
        </maml:description>
        <command:parameterValue required="false">ClientSidePagePromoteType</command:parameterValue>
        <dev:type>
          <maml:name>ClientSidePagePromoteType</maml:name>
          <maml:uri />
        </dev:type>
      </command:parameter>
      <command:parameter required="false" position="named">
        <maml:name>Publish</maml:name>
        <maml:description>
          <maml:para>Publishes the page once it is saved. Applicable to libraries set to create major and minor versions.</maml:para>
        </maml:description>
        <command:parameterValue required="false">SwitchParameter</command:parameterValue>
        <dev:type>
          <maml:name>SwitchParameter</maml:name>
          <maml:uri />
        </dev:type>
      </command:parameter>
      <command:parameter required="false" position="named">
        <maml:name>Connection</maml:name>
        <maml:description>
          <maml:para>Optional connection to be used by the cmdlet. Retrieve the value for this parameter by either specifying -ReturnConnection on Connect-PnPOnline or by executing Get-PnPConnection.</maml:para>
        </maml:description>
        <command:parameterValue required="false">SPOnlineConnection</command:parameterValue>
        <dev:type>
          <maml:name>SPOnlineConnection</maml:name>
          <maml:uri />
        </dev:type>
      </command:parameter>
      <command:parameter required="false" position="named">
        <maml:name>Web</maml:name>
        <maml:description>
          <maml:para>This parameter allows you to optionally apply the cmdlet action to a subweb within the current web. In most situations this parameter is not required and you can connect to the subweb using Connect-PnPOnline instead. Specify the GUID, server relative url (i.e. /sites/team1) or web instance of the web to apply the command to. Omit this parameter to use the current web.</maml:para>
        </maml:description>
        <command:parameterValue required="false">WebPipeBind</command:parameterValue>
        <dev:type>
          <maml:name>WebPipeBind</maml:name>
          <maml:uri />
        </dev:type>
      </command:parameter>
    </command:parameters>
    <command:returnValues>
      <command:returnValue>
        <dev:type>
          <maml:name></maml:name>
          <maml:uri />
          <maml:description>
            <maml:para></maml:para>
          </maml:description>
        </dev:type>
      </command:returnValue>
    </command:returnValues>
    <command:examples>
      <command:example>
        <maml:title>------------------EXAMPLE 1---------------------</maml:title>
        <maml:introduction>
          <maml:para />
        </maml:introduction>
        <dev:code>PS:&gt; Add-PnPClientSidePage -Name "NewPage"</dev:code>
        <maml:remarks>
          <maml:para>Creates a new Client-Side page named 'NewPage'</maml:para>
          <maml:para></maml:para>
        </maml:remarks>
        <command:commandLines>
          <command:commandLine>
            <command:commandText />
          </command:commandLine>
        </command:commandLines>
      </command:example>
      <command:example>
        <maml:title>------------------EXAMPLE 2---------------------</maml:title>
        <maml:introduction>
          <maml:para />
        </maml:introduction>
        <dev:code>PS:&gt; Add-PnPClientSidePage "NewPage"</dev:code>
        <maml:remarks>
          <maml:para>Creates a new Client-Side page named 'NewPage'</maml:para>
          <maml:para></maml:para>
        </maml:remarks>
        <command:commandLines>
          <command:commandLine>
            <command:commandText />
          </command:commandLine>
        </command:commandLines>
      </command:example>
    </command:examples>
    <maml:relatedLinks>
      <maml:navigationLink>
        <maml:linkText>SharePoint Developer Patterns and Practices:</maml:linkText>
        <maml:uri>http://aka.ms/sppnp</maml:uri>
      </maml:navigationLink>
    </maml:relatedLinks>
  </command:command>
  <command:command xmlns:maml="http://schemas.microsoft.com/maml/2004/10" xmlns:command="http://schemas.microsoft.com/maml/dev/command/2004/10" xmlns:dev="http://schemas.microsoft.com/maml/dev/2004/10">
    <command:details>
      <command:name>Add-PnPClientSidePageSection</command:name>
      <maml:description>
        <maml:para>* Supported in: SharePoint Online.

Adds a new section to a Client-Side page</maml:para>
      </maml:description>
      <maml:copyright>
        <maml:para />
      </maml:copyright>
      <command:verb>Add</command:verb>
      <command:noun>PnPClientSidePageSection</command:noun>
      <dev:version />
    </command:details>
    <command:syntax>
      <command:syntaxItem>
        <maml:name>Add-PnPClientSidePageSection</maml:name>
        <command:parameter required="true" position="named">
          <maml:name>SectionTemplate</maml:name>
          <maml:description>
            <maml:para>Specifies the columns template to use for the section.</maml:para>
          </maml:description>
          <command:parameterValue required="true">CanvasSectionTemplate</command:parameterValue>
        </command:parameter>
        <command:parameter required="true" position="named">
          <maml:name>Page</maml:name>
          <maml:description>
            <maml:para>The name of the page</maml:para>
          </maml:description>
          <command:parameterValue required="true">ClientSidePagePipeBind</command:parameterValue>
        </command:parameter>
        <command:parameter required="false" position="named">
          <maml:name>Order</maml:name>
          <maml:description>
            <maml:para>Sets the order of the section. (Default = 1)</maml:para>
          </maml:description>
          <command:parameterValue required="true">Int32</command:parameterValue>
        </command:parameter>
        <command:parameter required="false" position="named">
          <maml:name>Web</maml:name>
          <maml:description>
            <maml:para>This parameter allows you to optionally apply the cmdlet action to a subweb within the current web. In most situations this parameter is not required and you can connect to the subweb using Connect-PnPOnline instead. Specify the GUID, server relative url (i.e. /sites/team1) or web instance of the web to apply the command to. Omit this parameter to use the current web.</maml:para>
          </maml:description>
          <command:parameterValue required="true">WebPipeBind</command:parameterValue>
        </command:parameter>
        <command:parameter required="false" position="named">
          <maml:name>Connection</maml:name>
          <maml:description>
            <maml:para>Optional connection to be used by the cmdlet. Retrieve the value for this parameter by either specifying -ReturnConnection on Connect-PnPOnline or by executing Get-PnPConnection.</maml:para>
          </maml:description>
          <command:parameterValue required="true">SPOnlineConnection</command:parameterValue>
        </command:parameter>
      </command:syntaxItem>
    </command:syntax>
    <command:parameters>
      <command:parameter required="false" position="named">
        <maml:name>Order</maml:name>
        <maml:description>
          <maml:para>Sets the order of the section. (Default = 1)</maml:para>
        </maml:description>
        <command:parameterValue required="false">Int32</command:parameterValue>
        <dev:type>
          <maml:name>Int32</maml:name>
          <maml:uri />
        </dev:type>
      </command:parameter>
      <command:parameter required="true" position="named">
        <maml:name>Page</maml:name>
        <maml:description>
          <maml:para>The name of the page</maml:para>
        </maml:description>
        <command:parameterValue required="true">ClientSidePagePipeBind</command:parameterValue>
        <dev:type>
          <maml:name>ClientSidePagePipeBind</maml:name>
          <maml:uri />
        </dev:type>
      </command:parameter>
      <command:parameter required="true" position="named">
        <maml:name>SectionTemplate</maml:name>
        <maml:description>
          <maml:para>Specifies the columns template to use for the section.</maml:para>
        </maml:description>
        <command:parameterValue required="true">CanvasSectionTemplate</command:parameterValue>
        <dev:type>
          <maml:name>CanvasSectionTemplate</maml:name>
          <maml:uri />
        </dev:type>
      </command:parameter>
      <command:parameter required="false" position="named">
        <maml:name>Connection</maml:name>
        <maml:description>
          <maml:para>Optional connection to be used by the cmdlet. Retrieve the value for this parameter by either specifying -ReturnConnection on Connect-PnPOnline or by executing Get-PnPConnection.</maml:para>
        </maml:description>
        <command:parameterValue required="false">SPOnlineConnection</command:parameterValue>
        <dev:type>
          <maml:name>SPOnlineConnection</maml:name>
          <maml:uri />
        </dev:type>
      </command:parameter>
      <command:parameter required="false" position="named">
        <maml:name>Web</maml:name>
        <maml:description>
          <maml:para>This parameter allows you to optionally apply the cmdlet action to a subweb within the current web. In most situations this parameter is not required and you can connect to the subweb using Connect-PnPOnline instead. Specify the GUID, server relative url (i.e. /sites/team1) or web instance of the web to apply the command to. Omit this parameter to use the current web.</maml:para>
        </maml:description>
        <command:parameterValue required="false">WebPipeBind</command:parameterValue>
        <dev:type>
          <maml:name>WebPipeBind</maml:name>
          <maml:uri />
        </dev:type>
      </command:parameter>
    </command:parameters>
    <command:returnValues>
      <command:returnValue>
        <dev:type>
          <maml:name></maml:name>
          <maml:uri />
          <maml:description>
            <maml:para></maml:para>
          </maml:description>
        </dev:type>
      </command:returnValue>
    </command:returnValues>
    <command:examples>
      <command:example>
        <maml:title>------------------EXAMPLE 1---------------------</maml:title>
        <maml:introduction>
          <maml:para />
        </maml:introduction>
        <dev:code>PS:&gt; Add-PnPClientSidePageSection -Page "MyPage" -SectionTemplate OneColumn</dev:code>
        <maml:remarks>
          <maml:para>Adds a new one-column section to the Client-Side page 'MyPage'</maml:para>
          <maml:para></maml:para>
        </maml:remarks>
        <command:commandLines>
          <command:commandLine>
            <command:commandText />
          </command:commandLine>
        </command:commandLines>
      </command:example>
      <command:example>
        <maml:title>------------------EXAMPLE 2---------------------</maml:title>
        <maml:introduction>
          <maml:para />
        </maml:introduction>
        <dev:code>PS:&gt; Add-PnPClientSidePageSection -Page "MyPage" -SectionTemplate ThreeColumn -Order 10</dev:code>
        <maml:remarks>
          <maml:para>Adds a new Three columns section to the Client-Side page 'MyPage' with an order index of 10</maml:para>
          <maml:para></maml:para>
        </maml:remarks>
        <command:commandLines>
          <command:commandLine>
            <command:commandText />
          </command:commandLine>
        </command:commandLines>
      </command:example>
      <command:example>
        <maml:title>------------------EXAMPLE 3---------------------</maml:title>
        <maml:introduction>
          <maml:para />
        </maml:introduction>
        <dev:code>PS:&gt; $page = Add-PnPClientSidePage -Name "MyPage"
PS&gt; Add-PnPClientSidePageSection -Page $page -SectionTemplate OneColumn</dev:code>
        <maml:remarks>
          <maml:para>Adds a new one column section to the Client-Side page 'MyPage'</maml:para>
          <maml:para></maml:para>
        </maml:remarks>
        <command:commandLines>
          <command:commandLine>
            <command:commandText />
          </command:commandLine>
        </command:commandLines>
      </command:example>
    </command:examples>
    <maml:relatedLinks>
      <maml:navigationLink>
        <maml:linkText>SharePoint Developer Patterns and Practices:</maml:linkText>
        <maml:uri>http://aka.ms/sppnp</maml:uri>
      </maml:navigationLink>
    </maml:relatedLinks>
  </command:command>
  <command:command xmlns:maml="http://schemas.microsoft.com/maml/2004/10" xmlns:command="http://schemas.microsoft.com/maml/dev/command/2004/10" xmlns:dev="http://schemas.microsoft.com/maml/dev/2004/10">
    <command:details>
      <command:name>Add-PnPClientSideText</command:name>
      <maml:description>
        <maml:para>* Supported in: SharePoint Online.

Adds a text element to a client-side page.</maml:para>
      </maml:description>
      <maml:copyright>
        <maml:para />
      </maml:copyright>
      <command:verb>Add</command:verb>
      <command:noun>PnPClientSideText</command:noun>
      <dev:version />
    </command:details>
    <maml:description>
      <maml:para>Adds a new text element to a section on a client-side page.</maml:para>
    </maml:description>
    <command:syntax>
      <command:syntaxItem>
        <maml:name>Add-PnPClientSideText</maml:name>
        <command:parameter required="true" position="named">
          <maml:name>Text</maml:name>
          <maml:description>
            <maml:para>Specifies the text to display in the text area.</maml:para>
          </maml:description>
          <command:parameterValue required="true">String</command:parameterValue>
        </command:parameter>
        <command:parameter required="true" position="named">
          <maml:name>Page</maml:name>
          <maml:description>
            <maml:para>The name of the page.</maml:para>
          </maml:description>
          <command:parameterValue required="true">ClientSidePagePipeBind</command:parameterValue>
        </command:parameter>
        <command:parameter required="false" position="named">
          <maml:name>Order</maml:name>
          <maml:description>
            <maml:para>Sets the order of the text control. (Default = 1)</maml:para>
          </maml:description>
          <command:parameterValue required="true">Int32</command:parameterValue>
        </command:parameter>
        <command:parameter required="false" position="named">
          <maml:name>Web</maml:name>
          <maml:description>
            <maml:para>This parameter allows you to optionally apply the cmdlet action to a subweb within the current web. In most situations this parameter is not required and you can connect to the subweb using Connect-PnPOnline instead. Specify the GUID, server relative url (i.e. /sites/team1) or web instance of the web to apply the command to. Omit this parameter to use the current web.</maml:para>
          </maml:description>
          <command:parameterValue required="true">WebPipeBind</command:parameterValue>
        </command:parameter>
        <command:parameter required="false" position="named">
          <maml:name>Connection</maml:name>
          <maml:description>
            <maml:para>Optional connection to be used by the cmdlet. Retrieve the value for this parameter by either specifying -ReturnConnection on Connect-PnPOnline or by executing Get-PnPConnection.</maml:para>
          </maml:description>
          <command:parameterValue required="true">SPOnlineConnection</command:parameterValue>
        </command:parameter>
      </command:syntaxItem>
      <command:syntaxItem>
        <maml:name>Add-PnPClientSideText</maml:name>
        <command:parameter required="true" position="named">
          <maml:name>Text</maml:name>
          <maml:description>
            <maml:para>Specifies the text to display in the text area.</maml:para>
          </maml:description>
          <command:parameterValue required="true">String</command:parameterValue>
        </command:parameter>
        <command:parameter required="true" position="named">
          <maml:name>Section</maml:name>
          <maml:description>
            <maml:para>Sets the section where to insert the text control.</maml:para>
          </maml:description>
          <command:parameterValue required="true">Int32</command:parameterValue>
        </command:parameter>
        <command:parameter required="true" position="named">
          <maml:name>Column</maml:name>
          <maml:description>
            <maml:para>Sets the column where to insert the text control.</maml:para>
          </maml:description>
          <command:parameterValue required="true">Int32</command:parameterValue>
        </command:parameter>
        <command:parameter required="true" position="named">
          <maml:name>Page</maml:name>
          <maml:description>
            <maml:para>The name of the page.</maml:para>
          </maml:description>
          <command:parameterValue required="true">ClientSidePagePipeBind</command:parameterValue>
        </command:parameter>
        <command:parameter required="false" position="named">
          <maml:name>Order</maml:name>
          <maml:description>
            <maml:para>Sets the order of the text control. (Default = 1)</maml:para>
          </maml:description>
          <command:parameterValue required="true">Int32</command:parameterValue>
        </command:parameter>
        <command:parameter required="false" position="named">
          <maml:name>Web</maml:name>
          <maml:description>
            <maml:para>This parameter allows you to optionally apply the cmdlet action to a subweb within the current web. In most situations this parameter is not required and you can connect to the subweb using Connect-PnPOnline instead. Specify the GUID, server relative url (i.e. /sites/team1) or web instance of the web to apply the command to. Omit this parameter to use the current web.</maml:para>
          </maml:description>
          <command:parameterValue required="true">WebPipeBind</command:parameterValue>
        </command:parameter>
        <command:parameter required="false" position="named">
          <maml:name>Connection</maml:name>
          <maml:description>
            <maml:para>Optional connection to be used by the cmdlet. Retrieve the value for this parameter by either specifying -ReturnConnection on Connect-PnPOnline or by executing Get-PnPConnection.</maml:para>
          </maml:description>
          <command:parameterValue required="true">SPOnlineConnection</command:parameterValue>
        </command:parameter>
      </command:syntaxItem>
    </command:syntax>
    <command:parameters>
      <command:parameter required="true" position="named">
        <maml:name>Column</maml:name>
        <maml:description>
          <maml:para>Sets the column where to insert the text control.</maml:para>
        </maml:description>
        <command:parameterValue required="true">Int32</command:parameterValue>
        <dev:type>
          <maml:name>Int32</maml:name>
          <maml:uri />
        </dev:type>
      </command:parameter>
      <command:parameter required="false" position="named">
        <maml:name>Order</maml:name>
        <maml:description>
          <maml:para>Sets the order of the text control. (Default = 1)</maml:para>
        </maml:description>
        <command:parameterValue required="false">Int32</command:parameterValue>
        <dev:type>
          <maml:name>Int32</maml:name>
          <maml:uri />
        </dev:type>
      </command:parameter>
      <command:parameter required="true" position="named">
        <maml:name>Page</maml:name>
        <maml:description>
          <maml:para>The name of the page.</maml:para>
        </maml:description>
        <command:parameterValue required="true">ClientSidePagePipeBind</command:parameterValue>
        <dev:type>
          <maml:name>ClientSidePagePipeBind</maml:name>
          <maml:uri />
        </dev:type>
      </command:parameter>
      <command:parameter required="true" position="named">
        <maml:name>Section</maml:name>
        <maml:description>
          <maml:para>Sets the section where to insert the text control.</maml:para>
        </maml:description>
        <command:parameterValue required="true">Int32</command:parameterValue>
        <dev:type>
          <maml:name>Int32</maml:name>
          <maml:uri />
        </dev:type>
      </command:parameter>
      <command:parameter required="true" position="named">
        <maml:name>Text</maml:name>
        <maml:description>
          <maml:para>Specifies the text to display in the text area.</maml:para>
        </maml:description>
        <command:parameterValue required="true">String</command:parameterValue>
        <dev:type>
          <maml:name>String</maml:name>
          <maml:uri />
        </dev:type>
      </command:parameter>
      <command:parameter required="false" position="named">
        <maml:name>Connection</maml:name>
        <maml:description>
          <maml:para>Optional connection to be used by the cmdlet. Retrieve the value for this parameter by either specifying -ReturnConnection on Connect-PnPOnline or by executing Get-PnPConnection.</maml:para>
        </maml:description>
        <command:parameterValue required="false">SPOnlineConnection</command:parameterValue>
        <dev:type>
          <maml:name>SPOnlineConnection</maml:name>
          <maml:uri />
        </dev:type>
      </command:parameter>
      <command:parameter required="false" position="named">
        <maml:name>Web</maml:name>
        <maml:description>
          <maml:para>This parameter allows you to optionally apply the cmdlet action to a subweb within the current web. In most situations this parameter is not required and you can connect to the subweb using Connect-PnPOnline instead. Specify the GUID, server relative url (i.e. /sites/team1) or web instance of the web to apply the command to. Omit this parameter to use the current web.</maml:para>
        </maml:description>
        <command:parameterValue required="false">WebPipeBind</command:parameterValue>
        <dev:type>
          <maml:name>WebPipeBind</maml:name>
          <maml:uri />
        </dev:type>
      </command:parameter>
    </command:parameters>
    <command:returnValues>
      <command:returnValue>
        <dev:type>
          <maml:name></maml:name>
          <maml:uri />
          <maml:description>
            <maml:para></maml:para>
          </maml:description>
        </dev:type>
      </command:returnValue>
    </command:returnValues>
    <command:examples>
      <command:example>
        <maml:title>------------------EXAMPLE 1---------------------</maml:title>
        <maml:introduction>
          <maml:para />
        </maml:introduction>
        <dev:code>PS:&gt; Add-PnPClientSideText -Page "MyPage" -Text "Hello World!"</dev:code>
        <maml:remarks>
          <maml:para>Adds the text 'Hello World!' to the Client-Side Page 'MyPage'</maml:para>
          <maml:para></maml:para>
        </maml:remarks>
        <command:commandLines>
          <command:commandLine>
            <command:commandText />
          </command:commandLine>
        </command:commandLines>
      </command:example>
    </command:examples>
    <maml:relatedLinks>
      <maml:navigationLink>
        <maml:linkText>SharePoint Developer Patterns and Practices:</maml:linkText>
        <maml:uri>http://aka.ms/sppnp</maml:uri>
      </maml:navigationLink>
    </maml:relatedLinks>
  </command:command>
  <command:command xmlns:maml="http://schemas.microsoft.com/maml/2004/10" xmlns:command="http://schemas.microsoft.com/maml/dev/command/2004/10" xmlns:dev="http://schemas.microsoft.com/maml/dev/2004/10">
    <command:details>
      <command:name>Add-PnPClientSideWebPart</command:name>
      <maml:description>
        <maml:para>* Supported in: SharePoint Online.

Adds a Client-Side Web Part to a client-side page</maml:para>
      </maml:description>
      <maml:copyright>
        <maml:para />
      </maml:copyright>
      <command:verb>Add</command:verb>
      <command:noun>PnPClientSideWebPart</command:noun>
      <dev:version />
    </command:details>
    <maml:description>
      <maml:para>Adds a client-side web part to an existing client-side page.</maml:para>
    </maml:description>
    <command:syntax>
      <command:syntaxItem>
        <maml:name>Add-PnPClientSideWebPart</maml:name>
        <command:parameter required="true" position="named">
          <maml:name>DefaultWebPartType</maml:name>
          <maml:description>
            <maml:para>Defines a default WebPart type to insert.</maml:para>
          </maml:description>
          <command:parameterValue required="true">DefaultClientSideWebParts</command:parameterValue>
        </command:parameter>
        <command:parameter required="true" position="named">
          <maml:name>Page</maml:name>
          <maml:description>
            <maml:para>The name of the page.</maml:para>
          </maml:description>
          <command:parameterValue required="true">ClientSidePagePipeBind</command:parameterValue>
        </command:parameter>
        <command:parameter required="false" position="named">
          <maml:name>WebPartProperties</maml:name>
          <maml:description>
            <maml:para>The properties of the WebPart</maml:para>
          </maml:description>
          <command:parameterValue required="true">PropertyBagPipeBind</command:parameterValue>
        </command:parameter>
        <command:parameter required="false" position="named">
          <maml:name>Order</maml:name>
          <maml:description>
            <maml:para>Sets the order of the WebPart control. (Default = 1)</maml:para>
          </maml:description>
          <command:parameterValue required="true">Int32</command:parameterValue>
        </command:parameter>
        <command:parameter required="false" position="named">
          <maml:name>Web</maml:name>
          <maml:description>
            <maml:para>This parameter allows you to optionally apply the cmdlet action to a subweb within the current web. In most situations this parameter is not required and you can connect to the subweb using Connect-PnPOnline instead. Specify the GUID, server relative url (i.e. /sites/team1) or web instance of the web to apply the command to. Omit this parameter to use the current web.</maml:para>
          </maml:description>
          <command:parameterValue required="true">WebPipeBind</command:parameterValue>
        </command:parameter>
        <command:parameter required="false" position="named">
          <maml:name>Connection</maml:name>
          <maml:description>
            <maml:para>Optional connection to be used by the cmdlet. Retrieve the value for this parameter by either specifying -ReturnConnection on Connect-PnPOnline or by executing Get-PnPConnection.</maml:para>
          </maml:description>
          <command:parameterValue required="true">SPOnlineConnection</command:parameterValue>
        </command:parameter>
      </command:syntaxItem>
      <command:syntaxItem>
        <maml:name>Add-PnPClientSideWebPart</maml:name>
        <command:parameter required="true" position="named">
          <maml:name>Component</maml:name>
          <maml:description>
            <maml:para>Specifies the component instance or Id to add.</maml:para>
          </maml:description>
          <command:parameterValue required="true">ClientSideComponentPipeBind</command:parameterValue>
        </command:parameter>
        <command:parameter required="true" position="named">
          <maml:name>Page</maml:name>
          <maml:description>
            <maml:para>The name of the page.</maml:para>
          </maml:description>
          <command:parameterValue required="true">ClientSidePagePipeBind</command:parameterValue>
        </command:parameter>
        <command:parameter required="false" position="named">
          <maml:name>WebPartProperties</maml:name>
          <maml:description>
            <maml:para>The properties of the WebPart</maml:para>
          </maml:description>
          <command:parameterValue required="true">PropertyBagPipeBind</command:parameterValue>
        </command:parameter>
        <command:parameter required="false" position="named">
          <maml:name>Order</maml:name>
          <maml:description>
            <maml:para>Sets the order of the WebPart control. (Default = 1)</maml:para>
          </maml:description>
          <command:parameterValue required="true">Int32</command:parameterValue>
        </command:parameter>
        <command:parameter required="false" position="named">
          <maml:name>Web</maml:name>
          <maml:description>
            <maml:para>This parameter allows you to optionally apply the cmdlet action to a subweb within the current web. In most situations this parameter is not required and you can connect to the subweb using Connect-PnPOnline instead. Specify the GUID, server relative url (i.e. /sites/team1) or web instance of the web to apply the command to. Omit this parameter to use the current web.</maml:para>
          </maml:description>
          <command:parameterValue required="true">WebPipeBind</command:parameterValue>
        </command:parameter>
        <command:parameter required="false" position="named">
          <maml:name>Connection</maml:name>
          <maml:description>
            <maml:para>Optional connection to be used by the cmdlet. Retrieve the value for this parameter by either specifying -ReturnConnection on Connect-PnPOnline or by executing Get-PnPConnection.</maml:para>
          </maml:description>
          <command:parameterValue required="true">SPOnlineConnection</command:parameterValue>
        </command:parameter>
      </command:syntaxItem>
      <command:syntaxItem>
        <maml:name>Add-PnPClientSideWebPart</maml:name>
        <command:parameter required="true" position="named">
          <maml:name>DefaultWebPartType</maml:name>
          <maml:description>
            <maml:para>Defines a default WebPart type to insert.</maml:para>
          </maml:description>
          <command:parameterValue required="true">DefaultClientSideWebParts</command:parameterValue>
        </command:parameter>
        <command:parameter required="true" position="named">
          <maml:name>Section</maml:name>
          <maml:description>
            <maml:para>Sets the section where to insert the WebPart control.</maml:para>
          </maml:description>
          <command:parameterValue required="true">Int32</command:parameterValue>
        </command:parameter>
        <command:parameter required="true" position="named">
          <maml:name>Column</maml:name>
          <maml:description>
            <maml:para>Sets the column where to insert the WebPart control.</maml:para>
          </maml:description>
          <command:parameterValue required="true">Int32</command:parameterValue>
        </command:parameter>
        <command:parameter required="true" position="named">
          <maml:name>Page</maml:name>
          <maml:description>
            <maml:para>The name of the page.</maml:para>
          </maml:description>
          <command:parameterValue required="true">ClientSidePagePipeBind</command:parameterValue>
        </command:parameter>
        <command:parameter required="false" position="named">
          <maml:name>WebPartProperties</maml:name>
          <maml:description>
            <maml:para>The properties of the WebPart</maml:para>
          </maml:description>
          <command:parameterValue required="true">PropertyBagPipeBind</command:parameterValue>
        </command:parameter>
        <command:parameter required="false" position="named">
          <maml:name>Order</maml:name>
          <maml:description>
            <maml:para>Sets the order of the WebPart control. (Default = 1)</maml:para>
          </maml:description>
          <command:parameterValue required="true">Int32</command:parameterValue>
        </command:parameter>
        <command:parameter required="false" position="named">
          <maml:name>Web</maml:name>
          <maml:description>
            <maml:para>This parameter allows you to optionally apply the cmdlet action to a subweb within the current web. In most situations this parameter is not required and you can connect to the subweb using Connect-PnPOnline instead. Specify the GUID, server relative url (i.e. /sites/team1) or web instance of the web to apply the command to. Omit this parameter to use the current web.</maml:para>
          </maml:description>
          <command:parameterValue required="true">WebPipeBind</command:parameterValue>
        </command:parameter>
        <command:parameter required="false" position="named">
          <maml:name>Connection</maml:name>
          <maml:description>
            <maml:para>Optional connection to be used by the cmdlet. Retrieve the value for this parameter by either specifying -ReturnConnection on Connect-PnPOnline or by executing Get-PnPConnection.</maml:para>
          </maml:description>
          <command:parameterValue required="true">SPOnlineConnection</command:parameterValue>
        </command:parameter>
      </command:syntaxItem>
      <command:syntaxItem>
        <maml:name>Add-PnPClientSideWebPart</maml:name>
        <command:parameter required="true" position="named">
          <maml:name>Component</maml:name>
          <maml:description>
            <maml:para>Specifies the component instance or Id to add.</maml:para>
          </maml:description>
          <command:parameterValue required="true">ClientSideComponentPipeBind</command:parameterValue>
        </command:parameter>
        <command:parameter required="true" position="named">
          <maml:name>Section</maml:name>
          <maml:description>
            <maml:para>Sets the section where to insert the WebPart control.</maml:para>
          </maml:description>
          <command:parameterValue required="true">Int32</command:parameterValue>
        </command:parameter>
        <command:parameter required="true" position="named">
          <maml:name>Column</maml:name>
          <maml:description>
            <maml:para>Sets the column where to insert the WebPart control.</maml:para>
          </maml:description>
          <command:parameterValue required="true">Int32</command:parameterValue>
        </command:parameter>
        <command:parameter required="true" position="named">
          <maml:name>Page</maml:name>
          <maml:description>
            <maml:para>The name of the page.</maml:para>
          </maml:description>
          <command:parameterValue required="true">ClientSidePagePipeBind</command:parameterValue>
        </command:parameter>
        <command:parameter required="false" position="named">
          <maml:name>WebPartProperties</maml:name>
          <maml:description>
            <maml:para>The properties of the WebPart</maml:para>
          </maml:description>
          <command:parameterValue required="true">PropertyBagPipeBind</command:parameterValue>
        </command:parameter>
        <command:parameter required="false" position="named">
          <maml:name>Order</maml:name>
          <maml:description>
            <maml:para>Sets the order of the WebPart control. (Default = 1)</maml:para>
          </maml:description>
          <command:parameterValue required="true">Int32</command:parameterValue>
        </command:parameter>
        <command:parameter required="false" position="named">
          <maml:name>Web</maml:name>
          <maml:description>
            <maml:para>This parameter allows you to optionally apply the cmdlet action to a subweb within the current web. In most situations this parameter is not required and you can connect to the subweb using Connect-PnPOnline instead. Specify the GUID, server relative url (i.e. /sites/team1) or web instance of the web to apply the command to. Omit this parameter to use the current web.</maml:para>
          </maml:description>
          <command:parameterValue required="true">WebPipeBind</command:parameterValue>
        </command:parameter>
        <command:parameter required="false" position="named">
          <maml:name>Connection</maml:name>
          <maml:description>
            <maml:para>Optional connection to be used by the cmdlet. Retrieve the value for this parameter by either specifying -ReturnConnection on Connect-PnPOnline or by executing Get-PnPConnection.</maml:para>
          </maml:description>
          <command:parameterValue required="true">SPOnlineConnection</command:parameterValue>
        </command:parameter>
      </command:syntaxItem>
    </command:syntax>
    <command:parameters>
      <command:parameter required="true" position="named">
        <maml:name>Column</maml:name>
        <maml:description>
          <maml:para>Sets the column where to insert the WebPart control.</maml:para>
        </maml:description>
        <command:parameterValue required="true">Int32</command:parameterValue>
        <dev:type>
          <maml:name>Int32</maml:name>
          <maml:uri />
        </dev:type>
      </command:parameter>
      <command:parameter required="true" position="named">
        <maml:name>Component</maml:name>
        <maml:description>
          <maml:para>Specifies the component instance or Id to add.</maml:para>
        </maml:description>
        <command:parameterValue required="true">ClientSideComponentPipeBind</command:parameterValue>
        <dev:type>
          <maml:name>ClientSideComponentPipeBind</maml:name>
          <maml:uri />
        </dev:type>
      </command:parameter>
      <command:parameter required="true" position="named">
        <maml:name>DefaultWebPartType</maml:name>
        <maml:description>
          <maml:para>Defines a default WebPart type to insert.</maml:para>
        </maml:description>
        <command:parameterValue required="true">DefaultClientSideWebParts</command:parameterValue>
        <dev:type>
          <maml:name>DefaultClientSideWebParts</maml:name>
          <maml:uri />
        </dev:type>
      </command:parameter>
      <command:parameter required="false" position="named">
        <maml:name>Order</maml:name>
        <maml:description>
          <maml:para>Sets the order of the WebPart control. (Default = 1)</maml:para>
        </maml:description>
        <command:parameterValue required="false">Int32</command:parameterValue>
        <dev:type>
          <maml:name>Int32</maml:name>
          <maml:uri />
        </dev:type>
      </command:parameter>
      <command:parameter required="true" position="named">
        <maml:name>Page</maml:name>
        <maml:description>
          <maml:para>The name of the page.</maml:para>
        </maml:description>
        <command:parameterValue required="true">ClientSidePagePipeBind</command:parameterValue>
        <dev:type>
          <maml:name>ClientSidePagePipeBind</maml:name>
          <maml:uri />
        </dev:type>
      </command:parameter>
      <command:parameter required="true" position="named">
        <maml:name>Section</maml:name>
        <maml:description>
          <maml:para>Sets the section where to insert the WebPart control.</maml:para>
        </maml:description>
        <command:parameterValue required="true">Int32</command:parameterValue>
        <dev:type>
          <maml:name>Int32</maml:name>
          <maml:uri />
        </dev:type>
      </command:parameter>
      <command:parameter required="false" position="named">
        <maml:name>WebPartProperties</maml:name>
        <maml:description>
          <maml:para>The properties of the WebPart</maml:para>
        </maml:description>
        <command:parameterValue required="false">PropertyBagPipeBind</command:parameterValue>
        <dev:type>
          <maml:name>PropertyBagPipeBind</maml:name>
          <maml:uri />
        </dev:type>
      </command:parameter>
      <command:parameter required="false" position="named">
        <maml:name>Connection</maml:name>
        <maml:description>
          <maml:para>Optional connection to be used by the cmdlet. Retrieve the value for this parameter by either specifying -ReturnConnection on Connect-PnPOnline or by executing Get-PnPConnection.</maml:para>
        </maml:description>
        <command:parameterValue required="false">SPOnlineConnection</command:parameterValue>
        <dev:type>
          <maml:name>SPOnlineConnection</maml:name>
          <maml:uri />
        </dev:type>
      </command:parameter>
      <command:parameter required="false" position="named">
        <maml:name>Web</maml:name>
        <maml:description>
          <maml:para>This parameter allows you to optionally apply the cmdlet action to a subweb within the current web. In most situations this parameter is not required and you can connect to the subweb using Connect-PnPOnline instead. Specify the GUID, server relative url (i.e. /sites/team1) or web instance of the web to apply the command to. Omit this parameter to use the current web.</maml:para>
        </maml:description>
        <command:parameterValue required="false">WebPipeBind</command:parameterValue>
        <dev:type>
          <maml:name>WebPipeBind</maml:name>
          <maml:uri />
        </dev:type>
      </command:parameter>
    </command:parameters>
    <command:returnValues>
      <command:returnValue>
        <dev:type>
          <maml:name></maml:name>
          <maml:uri />
          <maml:description>
            <maml:para></maml:para>
          </maml:description>
        </dev:type>
      </command:returnValue>
    </command:returnValues>
    <command:examples>
      <command:example>
        <maml:title>------------------EXAMPLE 1---------------------</maml:title>
        <maml:introduction>
          <maml:para />
        </maml:introduction>
        <dev:code>PS:&gt; Add-PnPClientSideWebPart -Page "MyPage" -DefaultWebPartType BingMap</dev:code>
        <maml:remarks>
          <maml:para>Adds a built-in Client-Side component 'BingMap' to the page called 'MyPage'</maml:para>
          <maml:para></maml:para>
        </maml:remarks>
        <command:commandLines>
          <command:commandLine>
            <command:commandText />
          </command:commandLine>
        </command:commandLines>
      </command:example>
      <command:example>
        <maml:title>------------------EXAMPLE 2---------------------</maml:title>
        <maml:introduction>
          <maml:para />
        </maml:introduction>
        <dev:code>PS:&gt; Add-PnPClientSideWebPart -Page "MyPage" -Component "HelloWorld"</dev:code>
        <maml:remarks>
          <maml:para>Adds a Client-Side component 'HelloWorld' to the page called 'MyPage'</maml:para>
          <maml:para></maml:para>
        </maml:remarks>
        <command:commandLines>
          <command:commandLine>
            <command:commandText />
          </command:commandLine>
        </command:commandLines>
      </command:example>
      <command:example>
        <maml:title>------------------EXAMPLE 3---------------------</maml:title>
        <maml:introduction>
          <maml:para />
        </maml:introduction>
        <dev:code>PS:&gt; Add-PnPClientSideWebPart  -Page "MyPage" -Component "HelloWorld" -Section 1 -Column 2</dev:code>
        <maml:remarks>
          <maml:para>Adds a Client-Side component 'HelloWorld' to the page called 'MyPage' in section 1 and column 2</maml:para>
          <maml:para></maml:para>
        </maml:remarks>
        <command:commandLines>
          <command:commandLine>
            <command:commandText />
          </command:commandLine>
        </command:commandLines>
      </command:example>
    </command:examples>
    <maml:relatedLinks>
      <maml:navigationLink>
        <maml:linkText>SharePoint Developer Patterns and Practices:</maml:linkText>
        <maml:uri>http://aka.ms/sppnp</maml:uri>
      </maml:navigationLink>
    </maml:relatedLinks>
  </command:command>
  <command:command xmlns:maml="http://schemas.microsoft.com/maml/2004/10" xmlns:command="http://schemas.microsoft.com/maml/dev/command/2004/10" xmlns:dev="http://schemas.microsoft.com/maml/dev/2004/10">
    <command:details>
      <command:name>Add-PnPContentType</command:name>
      <maml:description>
        <maml:para>Adds a new content type</maml:para>
      </maml:description>
      <maml:copyright>
        <maml:para />
      </maml:copyright>
      <command:verb>Add</command:verb>
      <command:noun>PnPContentType</command:noun>
      <dev:version />
    </command:details>
    <command:syntax>
      <command:syntaxItem>
        <maml:name>Add-PnPContentType</maml:name>
        <command:parameter required="true" position="named">
          <maml:name>Name</maml:name>
          <maml:description>
            <maml:para>Specify the name of the new content type</maml:para>
          </maml:description>
          <command:parameterValue required="true">String</command:parameterValue>
        </command:parameter>
        <command:parameter required="false" position="named">
          <maml:name>ContentTypeId</maml:name>
          <maml:description>
            <maml:para>If specified, in the format of 0x0100233af432334r434343f32f3, will create a content type with the specific ID</maml:para>
          </maml:description>
          <command:parameterValue required="true">String</command:parameterValue>
        </command:parameter>
        <command:parameter required="false" position="named">
          <maml:name>Description</maml:name>
          <maml:description>
            <maml:para>Specifies the description of the new content type</maml:para>
          </maml:description>
          <command:parameterValue required="true">String</command:parameterValue>
        </command:parameter>
        <command:parameter required="false" position="named">
          <maml:name>Group</maml:name>
          <maml:description>
            <maml:para>Specifies the group of the new content type</maml:para>
          </maml:description>
          <command:parameterValue required="true">String</command:parameterValue>
        </command:parameter>
        <command:parameter required="false" position="named">
          <maml:name>ParentContentType</maml:name>
          <maml:description>
            <maml:para>Specifies the parent of the new content type</maml:para>
          </maml:description>
          <command:parameterValue required="true">ContentType</command:parameterValue>
        </command:parameter>
        <command:parameter required="false" position="named">
          <maml:name>Web</maml:name>
          <maml:description>
            <maml:para>This parameter allows you to optionally apply the cmdlet action to a subweb within the current web. In most situations this parameter is not required and you can connect to the subweb using Connect-PnPOnline instead. Specify the GUID, server relative url (i.e. /sites/team1) or web instance of the web to apply the command to. Omit this parameter to use the current web.</maml:para>
          </maml:description>
          <command:parameterValue required="true">WebPipeBind</command:parameterValue>
        </command:parameter>
        <command:parameter required="false" position="named">
          <maml:name>Connection</maml:name>
          <maml:description>
            <maml:para>Optional connection to be used by the cmdlet. Retrieve the value for this parameter by either specifying -ReturnConnection on Connect-PnPOnline or by executing Get-PnPConnection.</maml:para>
          </maml:description>
          <command:parameterValue required="true">SPOnlineConnection</command:parameterValue>
        </command:parameter>
      </command:syntaxItem>
    </command:syntax>
    <command:parameters>
      <command:parameter required="false" position="named">
        <maml:name>ContentTypeId</maml:name>
        <maml:description>
          <maml:para>If specified, in the format of 0x0100233af432334r434343f32f3, will create a content type with the specific ID</maml:para>
        </maml:description>
        <command:parameterValue required="false">String</command:parameterValue>
        <dev:type>
          <maml:name>String</maml:name>
          <maml:uri />
        </dev:type>
      </command:parameter>
      <command:parameter required="false" position="named">
        <maml:name>Description</maml:name>
        <maml:description>
          <maml:para>Specifies the description of the new content type</maml:para>
        </maml:description>
        <command:parameterValue required="false">String</command:parameterValue>
        <dev:type>
          <maml:name>String</maml:name>
          <maml:uri />
        </dev:type>
      </command:parameter>
      <command:parameter required="false" position="named">
        <maml:name>Group</maml:name>
        <maml:description>
          <maml:para>Specifies the group of the new content type</maml:para>
        </maml:description>
        <command:parameterValue required="false">String</command:parameterValue>
        <dev:type>
          <maml:name>String</maml:name>
          <maml:uri />
        </dev:type>
      </command:parameter>
      <command:parameter required="true" position="named">
        <maml:name>Name</maml:name>
        <maml:description>
          <maml:para>Specify the name of the new content type</maml:para>
        </maml:description>
        <command:parameterValue required="true">String</command:parameterValue>
        <dev:type>
          <maml:name>String</maml:name>
          <maml:uri />
        </dev:type>
      </command:parameter>
      <command:parameter required="false" position="named">
        <maml:name>ParentContentType</maml:name>
        <maml:description>
          <maml:para>Specifies the parent of the new content type</maml:para>
        </maml:description>
        <command:parameterValue required="false">ContentType</command:parameterValue>
        <dev:type>
          <maml:name>ContentType</maml:name>
          <maml:uri />
        </dev:type>
      </command:parameter>
      <command:parameter required="false" position="named">
        <maml:name>Connection</maml:name>
        <maml:description>
          <maml:para>Optional connection to be used by the cmdlet. Retrieve the value for this parameter by either specifying -ReturnConnection on Connect-PnPOnline or by executing Get-PnPConnection.</maml:para>
        </maml:description>
        <command:parameterValue required="false">SPOnlineConnection</command:parameterValue>
        <dev:type>
          <maml:name>SPOnlineConnection</maml:name>
          <maml:uri />
        </dev:type>
      </command:parameter>
      <command:parameter required="false" position="named">
        <maml:name>Web</maml:name>
        <maml:description>
          <maml:para>This parameter allows you to optionally apply the cmdlet action to a subweb within the current web. In most situations this parameter is not required and you can connect to the subweb using Connect-PnPOnline instead. Specify the GUID, server relative url (i.e. /sites/team1) or web instance of the web to apply the command to. Omit this parameter to use the current web.</maml:para>
        </maml:description>
        <command:parameterValue required="false">WebPipeBind</command:parameterValue>
        <dev:type>
          <maml:name>WebPipeBind</maml:name>
          <maml:uri />
        </dev:type>
      </command:parameter>
    </command:parameters>
    <command:returnValues>
      <command:returnValue>
        <dev:type>
          <maml:name>Microsoft.SharePoint.Client.ContentType</maml:name>
          <maml:uri />
          <maml:description>
            <maml:para></maml:para>
          </maml:description>
        </dev:type>
      </command:returnValue>
    </command:returnValues>
    <command:examples>
      <command:example>
        <maml:title>------------------EXAMPLE 1---------------------</maml:title>
        <maml:introduction>
          <maml:para />
        </maml:introduction>
        <dev:code>PS:&gt; Add-PnPContentType -Name "Project Document" -Description "Use for Contoso projects" -Group "Contoso Content Types" -ParentContentType $ct</dev:code>
        <maml:remarks>
          <maml:para>This will add a new content type based on the parent content type stored in the $ct variable.</maml:para>
          <maml:para></maml:para>
        </maml:remarks>
        <command:commandLines>
          <command:commandLine>
            <command:commandText />
          </command:commandLine>
        </command:commandLines>
      </command:example>
    </command:examples>
    <maml:relatedLinks>
      <maml:navigationLink>
        <maml:linkText>SharePoint Developer Patterns and Practices:</maml:linkText>
        <maml:uri>http://aka.ms/sppnp</maml:uri>
      </maml:navigationLink>
    </maml:relatedLinks>
  </command:command>
  <command:command xmlns:maml="http://schemas.microsoft.com/maml/2004/10" xmlns:command="http://schemas.microsoft.com/maml/dev/command/2004/10" xmlns:dev="http://schemas.microsoft.com/maml/dev/2004/10">
    <command:details>
      <command:name>Add-PnPContentTypeToDocumentSet</command:name>
      <maml:description>
        <maml:para>Adds a content type to a document set</maml:para>
      </maml:description>
      <maml:copyright>
        <maml:para />
      </maml:copyright>
      <command:verb>Add</command:verb>
      <command:noun>PnPContentTypeToDocumentSet</command:noun>
      <dev:version />
    </command:details>
    <command:syntax>
      <command:syntaxItem>
        <maml:name>Add-PnPContentTypeToDocumentSet</maml:name>
        <command:parameter required="true" position="named">
          <maml:name>ContentType</maml:name>
          <maml:description>
            <maml:para>The content type object, name or id to add. Either specify name, an id, or a content type object.</maml:para>
          </maml:description>
          <command:parameterValue required="true">ContentTypePipeBind[]</command:parameterValue>
        </command:parameter>
        <command:parameter required="true" position="named">
          <maml:name>DocumentSet</maml:name>
          <maml:description>
            <maml:para>The document set object or id to add the content type to. Either specify a name, a document set template object, an id, or a content type object</maml:para>
          </maml:description>
          <command:parameterValue required="true">DocumentSetPipeBind</command:parameterValue>
        </command:parameter>
        <command:parameter required="false" position="named">
          <maml:name>Web</maml:name>
          <maml:description>
            <maml:para>This parameter allows you to optionally apply the cmdlet action to a subweb within the current web. In most situations this parameter is not required and you can connect to the subweb using Connect-PnPOnline instead. Specify the GUID, server relative url (i.e. /sites/team1) or web instance of the web to apply the command to. Omit this parameter to use the current web.</maml:para>
          </maml:description>
          <command:parameterValue required="true">WebPipeBind</command:parameterValue>
        </command:parameter>
        <command:parameter required="false" position="named">
          <maml:name>Connection</maml:name>
          <maml:description>
            <maml:para>Optional connection to be used by the cmdlet. Retrieve the value for this parameter by either specifying -ReturnConnection on Connect-PnPOnline or by executing Get-PnPConnection.</maml:para>
          </maml:description>
          <command:parameterValue required="true">SPOnlineConnection</command:parameterValue>
        </command:parameter>
      </command:syntaxItem>
    </command:syntax>
    <command:parameters>
      <command:parameter required="true" position="named">
        <maml:name>ContentType</maml:name>
        <maml:description>
          <maml:para>The content type object, name or id to add. Either specify name, an id, or a content type object.</maml:para>
        </maml:description>
        <command:parameterValue required="true">ContentTypePipeBind[]</command:parameterValue>
        <dev:type>
          <maml:name>ContentTypePipeBind[]</maml:name>
          <maml:uri />
        </dev:type>
      </command:parameter>
      <command:parameter required="true" position="named">
        <maml:name>DocumentSet</maml:name>
        <maml:description>
          <maml:para>The document set object or id to add the content type to. Either specify a name, a document set template object, an id, or a content type object</maml:para>
        </maml:description>
        <command:parameterValue required="true">DocumentSetPipeBind</command:parameterValue>
        <dev:type>
          <maml:name>DocumentSetPipeBind</maml:name>
          <maml:uri />
        </dev:type>
      </command:parameter>
      <command:parameter required="false" position="named">
        <maml:name>Connection</maml:name>
        <maml:description>
          <maml:para>Optional connection to be used by the cmdlet. Retrieve the value for this parameter by either specifying -ReturnConnection on Connect-PnPOnline or by executing Get-PnPConnection.</maml:para>
        </maml:description>
        <command:parameterValue required="false">SPOnlineConnection</command:parameterValue>
        <dev:type>
          <maml:name>SPOnlineConnection</maml:name>
          <maml:uri />
        </dev:type>
      </command:parameter>
      <command:parameter required="false" position="named">
        <maml:name>Web</maml:name>
        <maml:description>
          <maml:para>This parameter allows you to optionally apply the cmdlet action to a subweb within the current web. In most situations this parameter is not required and you can connect to the subweb using Connect-PnPOnline instead. Specify the GUID, s
Download .txt
gitextract_4xefdc4j/

├── .deployment
├── .github/
│   ├── CONTRIBUTING.md
│   ├── ISSUE_TEMPLATE/
│   │   ├── ---bug.md
│   │   ├── ---enhancement.md
│   │   └── --question.md
│   ├── ISSUE_TEMPLATE.md
│   └── PULL_REQUEST_TEMPLATE.md
├── .gitignore
├── .tours/
│   └── spo-solution-overview.tour
├── LICENSE
├── README.md
├── assets/
│   ├── designs/
│   │   ├── portalsitescript.js
│   │   └── portaltheme.xml
│   ├── documents/
│   │   └── Contoso_Report.pptx
│   ├── functions/
│   │   ├── applyportaltemplate/
│   │   │   ├── function.json
│   │   │   ├── modules/
│   │   │   │   └── SharePointPnPPowerShellOnline/
│   │   │   │       ├── SharePointPnP.PowerShell.Online.Commands.Format.ps1xml
│   │   │   │       ├── SharePointPnP.PowerShell.Online.Commands.dll-help.xml
│   │   │   │       ├── SharePointPnPPowerShellOnline.psd1
│   │   │   │       └── SharePointPnPPowerShellOnlineAliases.psm1
│   │   │   ├── portal.xml
│   │   │   └── run.ps1
│   │   └── host.json
│   └── readme.md
├── changelog.md
├── documentation/
│   ├── README.md
│   ├── api-management.md
│   ├── common-provision-results.md
│   ├── components/
│   │   ├── ext-alert.md
│   │   ├── ext-classification.md
│   │   ├── ext-collab-discussnow.md
│   │   ├── ext-collab-footer.md
│   │   ├── ext-portal-footer.md
│   │   ├── ext-redirect.md
│   │   ├── lib-shared.md
│   │   ├── wp-banner.md
│   │   ├── wp-followed-sites.md
│   │   ├── wp-links.md
│   │   ├── wp-lob-integration.md
│   │   ├── wp-people-directory.md
│   │   ├── wp-personal-calendar.md
│   │   ├── wp-personal-contacts.md
│   │   ├── wp-personal-email.md
│   │   ├── wp-personal-tasks.md
│   │   ├── wp-recent-contacts.md
│   │   ├── wp-recently-used-documents.md
│   │   ├── wp-recently-visited-sites.md
│   │   ├── wp-site-information.md
│   │   ├── wp-stock-information.md
│   │   ├── wp-tiles.md
│   │   ├── wp-weather-information.md
│   │   └── wp-world-time.md
│   ├── manual-deploy-sppkg-solution.md
│   ├── modifying-spfx-solutions.md
│   ├── tenant-settings.md
│   └── term-store.md
├── lerna.json
├── package/
│   ├── readme.md
│   └── sharepoint-starter-kit.sppkg
├── package.json
├── provisioning/
│   ├── .vscode/
│   │   └── launch.json
│   ├── readme-sp2019.md
│   ├── readme-spfx-only.md
│   ├── readme.md
│   ├── starterkit-spfx-only.pnp
│   └── starterkit.pnp
├── sample-lob-service/
│   └── SharePointPnP.LobScenario/
│       ├── .gitignore
│       ├── Controllers/
│       │   └── CustomersController.cs
│       ├── Models/
│       │   ├── Customer.cs
│       │   └── LobResponse.cs
│       ├── Program.cs
│       ├── README.md
│       ├── SharePointPnP.LobScenario.csproj
│       ├── SharePointPnP.LobScenario.sln
│       ├── Startup.cs
│       └── appsettings.json
└── source/
    ├── README.md
    ├── js-application-redirect/
    │   ├── .editorconfig
    │   ├── .eslintrc.js
    │   ├── .gitignore
    │   ├── .npmignore
    │   ├── .vscode/
    │   │   ├── launch.json
    │   │   └── settings.json
    │   ├── .yo-rc.json
    │   ├── README.md
    │   ├── config/
    │   │   ├── config.json
    │   │   ├── deploy-azure-storage.json
    │   │   ├── package-solution.json
    │   │   ├── sass.json
    │   │   ├── serve.json
    │   │   └── write-manifests.json
    │   ├── gulpfile.js
    │   ├── package.json
    │   ├── sharepoint/
    │   │   └── assets/
    │   │       ├── ClientSideInstance.xml
    │   │       └── elements.xml
    │   ├── src/
    │   │   ├── extensions/
    │   │   │   └── redirect/
    │   │   │       ├── IRedirectApplicationCustomizerProperties.ts
    │   │   │       ├── IRedirection.ts
    │   │   │       ├── RedirectApplicationCustomizer.manifest.json
    │   │   │       ├── RedirectApplicationCustomizer.ts
    │   │   │       └── loc/
    │   │   │           ├── en-us.js
    │   │   │           ├── fr-fr.js
    │   │   │           └── myStrings.d.ts
    │   │   └── index.ts
    │   └── tsconfig.json
    ├── library-starter-kit-shared/
    │   ├── .editorconfig
    │   ├── .eslintrc.js
    │   ├── .gitignore
    │   ├── .npmignore
    │   ├── .vscode/
    │   │   ├── extensions.json
    │   │   ├── launch.json
    │   │   └── settings.json
    │   ├── .yo-rc.json
    │   ├── README.md
    │   ├── config/
    │   │   ├── config.json
    │   │   ├── deploy-azure-storage.json
    │   │   ├── package-solution.json
    │   │   ├── sass.json
    │   │   ├── serve.json
    │   │   └── write-manifests.json
    │   ├── gulpfile.generatelocalkeys.js
    │   ├── gulpfile.js
    │   ├── package.json
    │   ├── sharepoint/
    │   │   └── solution/
    │   │       └── library-starter-kit-shared.sppkg
    │   ├── src/
    │   │   ├── index.ts
    │   │   └── libraries/
    │   │       └── spStarterKitShared/
    │   │           ├── SpStarterKitSharedLibrary.manifest.json
    │   │           ├── SpStarterKitSharedLibrary.ts
    │   │           └── loc/
    │   │               ├── LocaleKeys.ts
    │   │               ├── de-de.js
    │   │               ├── en-us.js
    │   │               ├── es-es.js
    │   │               ├── fr-fr.js
    │   │               ├── mystrings.d.ts
    │   │               ├── nb-no.js
    │   │               ├── nl-nl.js
    │   │               ├── sv-se.js
    │   │               └── tr-tr.js
    │   └── tsconfig.json
    ├── mgt-spfx/
    │   ├── README.md
    │   ├── mgt-spfx-2.2.1.sppkg
    │   └── mgt-spfx-v2.9.0.sppkg
    ├── react-application-alerts/
    │   ├── .editorconfig
    │   ├── .eslintrc.js
    │   ├── .gitignore
    │   ├── .npmignore
    │   ├── .vscode/
    │   │   ├── launch.json
    │   │   └── settings.json
    │   ├── .yo-rc.json
    │   ├── README.md
    │   ├── config/
    │   │   ├── config.json
    │   │   ├── deploy-azure-storage.json
    │   │   ├── package-solution.json
    │   │   ├── sass.json
    │   │   ├── serve.json
    │   │   └── write-manifests.json
    │   ├── gulpfile.js
    │   ├── package.json
    │   ├── sharepoint/
    │   │   └── assets/
    │   │       ├── ClientSideInstance.xml
    │   │       └── elements.xml
    │   ├── src/
    │   │   ├── extensions/
    │   │   │   └── hubOrSiteAlerts/
    │   │   │       ├── HubOrSiteAlertsApplicationCustomizer.manifest.json
    │   │   │       ├── HubOrSiteAlertsApplicationCustomizer.ts
    │   │   │       ├── IAlert.ts
    │   │   │       ├── IHubSiteData.ts
    │   │   │       ├── components/
    │   │   │       │   ├── AlertNotifications.tsx
    │   │   │       │   ├── IAlertNotificationsProps.ts
    │   │   │       │   └── index.ts
    │   │   │       └── loc/
    │   │   │           ├── de-de.js
    │   │   │           ├── en-us.js
    │   │   │           ├── es-es.js
    │   │   │           ├── fr-fr.js
    │   │   │           ├── myStrings.d.ts
    │   │   │           ├── nb-no.js
    │   │   │           ├── nl-nl.js
    │   │   │           ├── sv-se.js
    │   │   │           └── tr-tr.js
    │   │   └── index.ts
    │   └── tsconfig.json
    ├── react-application-collab-footer/
    │   ├── .editorconfig
    │   ├── .eslintrc.js
    │   ├── .gitignore
    │   ├── .npmignore
    │   ├── .vscode/
    │   │   ├── launch.json
    │   │   └── settings.json
    │   ├── .yo-rc.json
    │   ├── README.md
    │   ├── config/
    │   │   ├── config.json
    │   │   ├── deploy-azure-storage.json
    │   │   ├── package-solution.json
    │   │   ├── sass.json
    │   │   ├── serve.json
    │   │   └── write-manifests.json
    │   ├── gulpfile.js
    │   ├── package.json
    │   ├── sharepoint/
    │   │   └── assets/
    │   │       ├── ClientSideInstance.xml
    │   │       └── elements.xml
    │   ├── src/
    │   │   ├── extensions/
    │   │   │   └── collaborationFooter/
    │   │   │       ├── CollaborationFooterApplicationCustomizer.manifest.json
    │   │   │       ├── CollaborationFooterApplicationCustomizer.ts
    │   │   │       ├── components/
    │   │   │       │   ├── CollabFooter.module.scss
    │   │   │       │   ├── CollabFooter.tsx
    │   │   │       │   ├── ICollabFooterEditResult.ts
    │   │   │       │   ├── ICollabFooterProps.ts
    │   │   │       │   ├── ICollabFooterState.ts
    │   │   │       │   └── myLinks/
    │   │   │       │       ├── IMyLink.ts
    │   │   │       │       ├── MyLinks.module.scss
    │   │   │       │       ├── MyLinksDialog.tsx
    │   │   │       │       └── loc/
    │   │   │       │           ├── de-de.js
    │   │   │       │           ├── en-us.js
    │   │   │       │           ├── es-es.js
    │   │   │       │           ├── fr-fr.js
    │   │   │       │           ├── mystrings.d.ts
    │   │   │       │           ├── nb-no.js
    │   │   │       │           ├── nl-nl.js
    │   │   │       │           ├── sv-se.js
    │   │   │       │           └── tr-tr.js
    │   │   │       └── loc/
    │   │   │           ├── de-de.js
    │   │   │           ├── en-us.js
    │   │   │           ├── es-es.js
    │   │   │           ├── fr-fr.js
    │   │   │           ├── myStrings.d.ts
    │   │   │           ├── nb-no.js
    │   │   │           ├── nl-nl.js
    │   │   │           ├── sv-se.js
    │   │   │           └── tr-tr.js
    │   │   ├── index.ts
    │   │   └── services/
    │   │       ├── SPTaxonomyService.ts
    │   │       ├── SPTaxonomyTypes.ts
    │   │       ├── SPUserProfileService.ts
    │   │       └── SPUserProfileTypes.ts
    │   └── tsconfig.json
    ├── react-application-portal-footer/
    │   ├── .editorconfig
    │   ├── .eslintrc.js
    │   ├── .gitignore
    │   ├── .npmignore
    │   ├── .vscode/
    │   │   ├── launch.json
    │   │   └── settings.json
    │   ├── .yo-rc.json
    │   ├── README.md
    │   ├── config/
    │   │   ├── config.json
    │   │   ├── deploy-azure-storage.json
    │   │   ├── package-solution.json
    │   │   ├── sass.json
    │   │   ├── serve.json
    │   │   └── write-manifests.json
    │   ├── gulpfile.js
    │   ├── package.json
    │   ├── sharepoint/
    │   │   └── assets/
    │   │       ├── ClientSideInstance.xml
    │   │       └── elements.xml
    │   ├── src/
    │   │   ├── extensions/
    │   │   │   └── portalFooter/
    │   │   │       ├── IHubSiteData.ts
    │   │   │       ├── ILinkListItem.ts
    │   │   │       ├── PortalFooterApplicationCustomizer.manifest.json
    │   │   │       ├── PortalFooterApplicationCustomizer.ts
    │   │   │       ├── components/
    │   │   │       │   ├── Links/
    │   │   │       │   │   ├── ILinksProps.ts
    │   │   │       │   │   ├── Links.module.scss
    │   │   │       │   │   ├── Links.tsx
    │   │   │       │   │   └── index.ts
    │   │   │       │   ├── PortalFooter/
    │   │   │       │   │   ├── ILinkGroup.ts
    │   │   │       │   │   ├── IPortalFooterEditResult.ts
    │   │   │       │   │   ├── IPortalFooterProps.ts
    │   │   │       │   │   ├── IPortalFooterState.ts
    │   │   │       │   │   ├── PortalFooter.module.scss
    │   │   │       │   │   ├── PortalFooter.tsx
    │   │   │       │   │   └── index.ts
    │   │   │       │   └── myLinks/
    │   │   │       │       ├── IMyLink.ts
    │   │   │       │       ├── MyLinks.module.scss
    │   │   │       │       ├── MyLinksDialog.tsx
    │   │   │       │       └── loc/
    │   │   │       │           ├── de-de.js
    │   │   │       │           ├── en-us.js
    │   │   │       │           ├── es-es.js
    │   │   │       │           ├── fr-fr.js
    │   │   │       │           ├── mystrings.d.ts
    │   │   │       │           ├── nb-no.js
    │   │   │       │           ├── nl-nl.js
    │   │   │       │           ├── sv-se.js
    │   │   │       │           └── tr-tr.js
    │   │   │       └── loc/
    │   │   │           ├── de-de.js
    │   │   │           ├── en-us.js
    │   │   │           ├── es-es.js
    │   │   │           ├── fr-fr.js
    │   │   │           ├── myStrings.d.ts
    │   │   │           ├── nb-no.js
    │   │   │           ├── nl-nl.js
    │   │   │           ├── sv-se.js
    │   │   │           └── tr-tr.js
    │   │   ├── index.ts
    │   │   └── services/
    │   │       ├── SPUserProfileService.ts
    │   │       └── SPUserProfileTypes.ts
    │   └── tsconfig.json
    ├── react-banner/
    │   ├── .editorconfig
    │   ├── .eslintrc.js
    │   ├── .gitignore
    │   ├── .npmignore
    │   ├── .vscode/
    │   │   ├── launch.json
    │   │   └── settings.json
    │   ├── .yo-rc.json
    │   ├── README.md
    │   ├── config/
    │   │   ├── config.json
    │   │   ├── deploy-azure-storage.json
    │   │   ├── package-solution.json
    │   │   ├── sass.json
    │   │   ├── serve.json
    │   │   └── write-manifests.json
    │   ├── gulpfile.js
    │   ├── package.json
    │   ├── src/
    │   │   ├── index.ts
    │   │   └── webparts/
    │   │       └── banner/
    │   │           ├── BannerWebPart.manifest.json
    │   │           ├── BannerWebPart.ts
    │   │           ├── components/
    │   │           │   ├── Banner.module.scss
    │   │           │   ├── Banner.tsx
    │   │           │   ├── IBannerProps.ts
    │   │           │   └── index.ts
    │   │           └── loc/
    │   │               ├── de-de.js
    │   │               ├── en-us.js
    │   │               ├── es-es.js
    │   │               ├── fr-fr.js
    │   │               ├── mystrings.d.ts
    │   │               ├── nb-no.js
    │   │               ├── nl-nl.js
    │   │               ├── sv-se.js
    │   │               └── tr-tr.js
    │   └── tsconfig.json
    ├── react-command-discuss-now/
    │   ├── .editorconfig
    │   ├── .eslintrc.js
    │   ├── .gitignore
    │   ├── .npmignore
    │   ├── .vscode/
    │   │   ├── launch.json
    │   │   └── settings.json
    │   ├── .yo-rc.json
    │   ├── README.md
    │   ├── config/
    │   │   ├── config.json
    │   │   ├── deploy-azure-storage.json
    │   │   ├── package-solution.json
    │   │   ├── sass.json
    │   │   ├── serve.json
    │   │   └── write-manifests.json
    │   ├── gulpfile.js
    │   ├── package.json
    │   ├── sharepoint/
    │   │   └── assets/
    │   │       ├── ClientSideInstance.xml
    │   │       └── elements.xml
    │   ├── src/
    │   │   ├── extensions/
    │   │   │   └── discussNow/
    │   │   │       ├── DiscussNowCommandSet.manifest.json
    │   │   │       ├── DiscussNowCommandSet.ts
    │   │   │       ├── components/
    │   │   │       │   ├── DateTimePicker.tsx
    │   │   │       │   ├── IDateTimePickerProps.ts
    │   │   │       │   ├── IDateTimePickerState.ts
    │   │   │       │   ├── ScheduleMeetingDialog.module.scss
    │   │   │       │   └── ScheduleMeetingDialog.tsx
    │   │   │       └── loc/
    │   │   │           ├── de-de.js
    │   │   │           ├── en-us.js
    │   │   │           ├── es-es.js
    │   │   │           ├── fr-fr.js
    │   │   │           ├── myStrings.d.ts
    │   │   │           ├── nb-no.js
    │   │   │           ├── nl-nl.js
    │   │   │           ├── sv-se.js
    │   │   │           └── tr-tr.js
    │   │   └── index.ts
    │   └── tsconfig.json
    ├── react-followed-sites/
    │   ├── .editorconfig
    │   ├── .gitignore
    │   ├── .npmignore
    │   ├── .vscode/
    │   │   ├── launch.json
    │   │   └── settings.json
    │   ├── .yo-rc.json
    │   ├── README.md
    │   ├── config/
    │   │   ├── config.json
    │   │   ├── deploy-azure-storage.json
    │   │   ├── package-solution.json
    │   │   ├── sass.json
    │   │   ├── serve.json
    │   │   └── write-manifests.json
    │   ├── gulpfile.js
    │   ├── package.json
    │   ├── src/
    │   │   ├── index.ts
    │   │   └── webparts/
    │   │       └── followedSites/
    │   │           ├── FollowedSitesWebPart.manifest.json
    │   │           ├── FollowedSitesWebPart.ts
    │   │           └── components/
    │   │               ├── FollowedSites.module.scss
    │   │               ├── FollowedSites.tsx
    │   │               ├── IFollowedResult.ts
    │   │               ├── IFollowedSitesProps.ts
    │   │               ├── IFollowedSitesState.ts
    │   │               ├── index.ts
    │   │               └── paging/
    │   │                   ├── IPagingProps.ts
    │   │                   ├── IPagingState.ts
    │   │                   ├── Paging.module.scss
    │   │                   ├── Paging.tsx
    │   │                   └── index.ts
    │   └── tsconfig.json
    ├── react-links/
    │   ├── .editorconfig
    │   ├── .eslintrc.js
    │   ├── .gitignore
    │   ├── .npmignore
    │   ├── .vscode/
    │   │   ├── launch.json
    │   │   └── settings.json
    │   ├── .yo-rc.json
    │   ├── README.md
    │   ├── config/
    │   │   ├── config.json
    │   │   ├── deploy-azure-storage.json
    │   │   ├── package-solution.json
    │   │   ├── sass.json
    │   │   ├── serve.json
    │   │   └── write-manifests.json
    │   ├── gulpfile.js
    │   ├── package.json
    │   ├── src/
    │   │   ├── index.ts
    │   │   └── webparts/
    │   │       └── links/
    │   │           ├── ILink.ts
    │   │           ├── LinksWebPart.manifest.json
    │   │           ├── LinksWebPart.ts
    │   │           ├── components/
    │   │           │   ├── ILinksProps.ts
    │   │           │   ├── ILinksState.ts
    │   │           │   ├── Links.module.scss
    │   │           │   └── Links.tsx
    │   │           └── loc/
    │   │               ├── de-de.js
    │   │               ├── en-us.js
    │   │               ├── es-es.js
    │   │               ├── fr-fr.js
    │   │               ├── mystrings.d.ts
    │   │               ├── nb-no.js
    │   │               ├── nl-nl.js
    │   │               ├── sv-se.js
    │   │               └── tr-tr.js
    │   └── tsconfig.json
    ├── react-lob-integration/
    │   ├── .editorconfig
    │   ├── .eslintrc.js
    │   ├── .gitignore
    │   ├── .npmignore
    │   ├── .vscode/
    │   │   ├── launch.json
    │   │   └── settings.json
    │   ├── .yo-rc.json
    │   ├── README.md
    │   ├── config/
    │   │   ├── config.json
    │   │   ├── deploy-azure-storage.json
    │   │   ├── package-solution.json
    │   │   ├── sass.json
    │   │   ├── serve.json
    │   │   └── write-manifests.json
    │   ├── gulpfile.js
    │   ├── package.json
    │   ├── src/
    │   │   ├── index.ts
    │   │   └── webparts/
    │   │       └── lobIntegration/
    │   │           ├── ICustomer.ts
    │   │           ├── ILobIntegrationWebPartProps.ts
    │   │           ├── ILobServiceResponse.ts
    │   │           ├── LobIntegrationWebPart.manifest.json
    │   │           ├── LobIntegrationWebPart.ts
    │   │           ├── components/
    │   │           │   ├── ILobIntegrationProps.ts
    │   │           │   ├── ILobIntegrationState.ts
    │   │           │   ├── LobIntegration.module.scss
    │   │           │   ├── LobIntegration.module.scss.ts
    │   │           │   └── LobIntegration.tsx
    │   │           └── loc/
    │   │               ├── de-de.js
    │   │               ├── en-us.js
    │   │               ├── es-es.js
    │   │               ├── fr-fr.js
    │   │               ├── mystrings.d.ts
    │   │               ├── nb-no.js
    │   │               ├── sv-se.js
    │   │               └── tr-tr.js
    │   └── tsconfig.json
    ├── react-people-directory/
    │   ├── .eslintrc.js
    │   ├── .gitignore
    │   ├── .npmignore
    │   ├── .vscode/
    │   │   ├── launch.json
    │   │   └── settings.json
    │   ├── .yo-rc.json
    │   ├── README.md
    │   ├── config/
    │   │   ├── config.json
    │   │   ├── deploy-azure-storage.json
    │   │   ├── package-solution.json
    │   │   ├── sass.json
    │   │   ├── serve.json
    │   │   └── write-manifests.json
    │   ├── gulpfile.js
    │   ├── package.json
    │   ├── src/
    │   │   ├── index.ts
    │   │   └── webparts/
    │   │       └── peopleDirectory/
    │   │           ├── PeopleDirectoryWebPart.manifest.json
    │   │           ├── PeopleDirectoryWebPart.ts
    │   │           ├── components/
    │   │           │   ├── IndexNavigation/
    │   │           │   │   ├── IIndexNavigationProps.ts
    │   │           │   │   ├── IndexNavigation.module.scss
    │   │           │   │   ├── IndexNavigation.tsx
    │   │           │   │   └── index.ts
    │   │           │   ├── PeopleCallout/
    │   │           │   │   ├── IPeopleCalloutProps.ts
    │   │           │   │   ├── IPeopleCalloutState.ts
    │   │           │   │   ├── PeopleCallout.module.scss
    │   │           │   │   ├── PeopleCallout.tsx
    │   │           │   │   └── index.ts
    │   │           │   ├── PeopleDirectory/
    │   │           │   │   ├── IPeopleDirectoryProps.ts
    │   │           │   │   ├── IPeopleDirectoryState.ts
    │   │           │   │   ├── IPeopleSearchResults.ts
    │   │           │   │   ├── IPerson.ts
    │   │           │   │   ├── PeopleDirectory.module.scss
    │   │           │   │   ├── PeopleDirectory.tsx
    │   │           │   │   └── index.ts
    │   │           │   ├── PeopleDirectory.module.scss
    │   │           │   ├── PeopleList/
    │   │           │   │   ├── IPeopleListProps.ts
    │   │           │   │   ├── IPeopleListState.ts
    │   │           │   │   ├── PeopleList.module.scss
    │   │           │   │   ├── PeopleList.tsx
    │   │           │   │   └── index.ts
    │   │           │   └── Search/
    │   │           │       ├── ISearchProps.ts
    │   │           │       ├── Search.module.scss
    │   │           │       ├── Search.tsx
    │   │           │       └── index.ts
    │   │           └── loc/
    │   │               ├── de-de.js
    │   │               ├── en-us.js
    │   │               ├── es-es.js
    │   │               ├── fr-fr.js
    │   │               ├── mystrings.d.ts
    │   │               ├── nb-no.js
    │   │               ├── nl-nl.js
    │   │               ├── sv-se.js
    │   │               └── tr-tr.js
    │   └── tsconfig.json
    ├── react-personal-calendar/
    │   ├── .editorconfig
    │   ├── .eslintrc.js
    │   ├── .gitignore
    │   ├── .npmignore
    │   ├── .vscode/
    │   │   ├── launch.json
    │   │   └── settings.json
    │   ├── .yo-rc.json
    │   ├── README.md
    │   ├── config/
    │   │   ├── config.json
    │   │   ├── deploy-azure-storage.json
    │   │   ├── package-solution.json
    │   │   ├── sass.json
    │   │   ├── serve.json
    │   │   └── write-manifests.json
    │   ├── gulpfile.js
    │   ├── package.json
    │   ├── src/
    │   │   ├── index.ts
    │   │   └── webparts/
    │   │       └── personalCalendar/
    │   │           ├── PersonalCalendarWebPart.manifest.json
    │   │           ├── PersonalCalendarWebPart.ts
    │   │           ├── components/
    │   │           │   ├── IMeeting.ts
    │   │           │   ├── IPersonalCalendarProps.ts
    │   │           │   ├── IPersonalCalendarState.ts
    │   │           │   ├── PersonalCalendar.module.scss
    │   │           │   ├── PersonalCalendar.tsx
    │   │           │   ├── SimpleCalendar.module.scss
    │   │           │   ├── SimpleCalendar.tsx
    │   │           │   └── index.ts
    │   │           └── loc/
    │   │               ├── de-de.js
    │   │               ├── en-us.js
    │   │               ├── es-es.js
    │   │               ├── fr-fr.js
    │   │               ├── mystrings.d.ts
    │   │               ├── nb-no.js
    │   │               ├── nl-nl.js
    │   │               ├── sv-se.js
    │   │               └── tr-tr.js
    │   └── tsconfig.json
    ├── react-personal-contacts/
    │   ├── .eslintrc.js
    │   ├── .gitignore
    │   ├── .npmignore
    │   ├── .vscode/
    │   │   ├── launch.json
    │   │   └── settings.json
    │   ├── .yo-rc.json
    │   ├── README.md
    │   ├── config/
    │   │   ├── config.json
    │   │   ├── deploy-azure-storage.json
    │   │   ├── package-solution.json
    │   │   ├── sass.json
    │   │   ├── serve.json
    │   │   └── write-manifests.json
    │   ├── gulpfile.js
    │   ├── package.json
    │   ├── src/
    │   │   ├── index.ts
    │   │   └── webparts/
    │   │       └── personalContacts/
    │   │           ├── PersonalContactsWebPart.manifest.json
    │   │           ├── PersonalContactsWebPart.ts
    │   │           ├── components/
    │   │           │   ├── IContacts.ts
    │   │           │   ├── Person/
    │   │           │   │   ├── IPersonProps.ts
    │   │           │   │   ├── IPersonState.ts
    │   │           │   │   ├── Person.module.scss
    │   │           │   │   ├── Person.tsx
    │   │           │   │   └── index.ts
    │   │           │   ├── PersonalContacts/
    │   │           │   │   ├── IPersonalContactsProps.ts
    │   │           │   │   ├── IPersonalContactsState.ts
    │   │           │   │   ├── PersonalContacts.module.scss
    │   │           │   │   ├── PersonalContacts.tsx
    │   │           │   │   └── index.ts
    │   │           │   └── index.ts
    │   │           └── loc/
    │   │               ├── de-de.js
    │   │               ├── en-us.js
    │   │               ├── es-es.js
    │   │               ├── fr-fr.js
    │   │               ├── mystrings.d.ts
    │   │               ├── nb-no.js
    │   │               ├── nl-nl.js
    │   │               ├── sv-se.js
    │   │               └── tr-tr.js
    │   └── tsconfig.json
    ├── react-personal-email/
    │   ├── .editorconfig
    │   ├── .eslintrc.js
    │   ├── .gitignore
    │   ├── .npmignore
    │   ├── .vscode/
    │   │   ├── launch.json
    │   │   └── settings.json
    │   ├── .yo-rc.json
    │   ├── README.md
    │   ├── config/
    │   │   ├── config.json
    │   │   ├── deploy-azure-storage.json
    │   │   ├── package-solution.json
    │   │   ├── sass.json
    │   │   ├── serve.json
    │   │   └── write-manifests.json
    │   ├── gulpfile.js
    │   ├── package.json
    │   ├── src/
    │   │   ├── index.ts
    │   │   └── webparts/
    │   │       └── personalEmail/
    │   │           ├── PersonalEmailWebPart.manifest.json
    │   │           ├── PersonalEmailWebPart.ts
    │   │           ├── components/
    │   │           │   ├── IMessage.ts
    │   │           │   ├── IPersonalEmailProps.ts
    │   │           │   ├── IPersonalEmailState.ts
    │   │           │   ├── PersonalEmail.module.scss
    │   │           │   ├── PersonalEmail.tsx
    │   │           │   └── index.ts
    │   │           └── loc/
    │   │               ├── de-de.js
    │   │               ├── en-us.js
    │   │               ├── es-es.js
    │   │               ├── fr-fr.js
    │   │               ├── mystrings.d.ts
    │   │               ├── nb-no.js
    │   │               ├── nl-nl.js
    │   │               ├── sv-se.js
    │   │               └── tr-tr.js
    │   └── tsconfig.json
    ├── react-personal-tasks/
    │   ├── .editorconfig
    │   ├── .gitignore
    │   ├── .npmignore
    │   ├── .vscode/
    │   │   ├── launch.json
    │   │   └── settings.json
    │   ├── .yo-rc.json
    │   ├── README.md
    │   ├── config/
    │   │   ├── config.json
    │   │   ├── deploy-azure-storage.json
    │   │   ├── package-solution.json
    │   │   ├── sass.json
    │   │   ├── serve.json
    │   │   └── write-manifests.json
    │   ├── gulpfile.js
    │   ├── package.json
    │   ├── src/
    │   │   ├── index.ts
    │   │   └── webparts/
    │   │       └── personalTasks/
    │   │           ├── PersonalTasksWebPart.manifest.json
    │   │           ├── PersonalTasksWebPart.ts
    │   │           ├── components/
    │   │           │   ├── IPersonalTasksProps.ts
    │   │           │   ├── PersonalTasks.module.scss
    │   │           │   └── PersonalTasks.tsx
    │   │           └── loc/
    │   │               ├── en-us.js
    │   │               └── mystrings.d.ts
    │   └── tsconfig.json
    ├── react-recent-contacts/
    │   ├── .editorconfig
    │   ├── .eslintrc.js
    │   ├── .gitignore
    │   ├── .vscode/
    │   │   ├── launch.json
    │   │   └── settings.json
    │   ├── .yo-rc.json
    │   ├── README.md
    │   ├── config/
    │   │   ├── config.json
    │   │   ├── deploy-azure-storage.json
    │   │   ├── package-solution.json
    │   │   ├── sass.json
    │   │   ├── serve.json
    │   │   └── write-manifests.json
    │   ├── gulpfile.js
    │   ├── package.json
    │   ├── src/
    │   │   ├── index.ts
    │   │   └── webparts/
    │   │       └── recentContacts/
    │   │           ├── RecentContactsWebPart.manifest.json
    │   │           ├── RecentContactsWebPart.ts
    │   │           ├── components/
    │   │           │   ├── IContacts.ts
    │   │           │   ├── IRecentContactsProps.ts
    │   │           │   ├── IRecentContactsState.ts
    │   │           │   ├── RecentContacts.module.scss
    │   │           │   ├── RecentContacts.tsx
    │   │           │   ├── index.ts
    │   │           │   └── person/
    │   │           │       ├── IPersonProps.ts
    │   │           │       ├── IPersonState.ts
    │   │           │       ├── Person.tsx
    │   │           │       └── index.ts
    │   │           └── loc/
    │   │               ├── de-de.js
    │   │               ├── en-us.js
    │   │               ├── es-es.js
    │   │               ├── fr-fr.js
    │   │               ├── mystrings.d.ts
    │   │               ├── nb-no.js
    │   │               ├── nl-nl.js
    │   │               ├── sv-se.js
    │   │               └── tr-tr.js
    │   └── tsconfig.json
    ├── react-recently-used-documents/
    │   ├── .editorconfig
    │   ├── .eslintrc.js
    │   ├── .gitignore
    │   ├── .npmignore
    │   ├── .vscode/
    │   │   ├── launch.json
    │   │   └── settings.json
    │   ├── .yo-rc.json
    │   ├── README.md
    │   ├── config/
    │   │   ├── config.json
    │   │   ├── deploy-azure-storage.json
    │   │   ├── package-solution.json
    │   │   ├── sass.json
    │   │   ├── serve.json
    │   │   └── write-manifests.json
    │   ├── gulpfile.js
    │   ├── package.json
    │   ├── src/
    │   │   ├── index.ts
    │   │   └── webparts/
    │   │       └── recentlyUsedDocuments/
    │   │           ├── RecentlyUsedDocumentsWebPart.manifest.json
    │   │           ├── RecentlyUsedDocumentsWebPart.ts
    │   │           ├── components/
    │   │           │   ├── BrandIcons.ts
    │   │           │   ├── IRecentDocuments.ts
    │   │           │   ├── IRecentlyUsedDocumentsProps.ts
    │   │           │   ├── IRecentlyUsedDocumentsState.ts
    │   │           │   ├── RecentlyUsedDocuments.module.scss
    │   │           │   ├── RecentlyUsedDocuments.tsx
    │   │           │   └── index.ts
    │   │           └── loc/
    │   │               ├── de-de.js
    │   │               ├── en-us.js
    │   │               ├── es-es.js
    │   │               ├── fr-fr.js
    │   │               ├── mystrings.d.ts
    │   │               ├── nb-no.js
    │   │               ├── nl-nl.js
    │   │               ├── sv-se.js
    │   │               └── tr-tr.js
    │   └── tsconfig.json
    ├── react-recently-visited-sites/
    │   ├── .editorconfig
    │   ├── .eslintrc.js
    │   ├── .gitignore
    │   ├── .npmignore
    │   ├── .vscode/
    │   │   ├── launch.json
    │   │   └── settings.json
    │   ├── .yo-rc.json
    │   ├── README.md
    │   ├── config/
    │   │   ├── config.json
    │   │   ├── deploy-azure-storage.json
    │   │   ├── package-solution.json
    │   │   ├── sass.json
    │   │   ├── serve.json
    │   │   └── write-manifests.json
    │   ├── gulpfile.js
    │   ├── package.json
    │   ├── src/
    │   │   ├── index.ts
    │   │   └── webparts/
    │   │       └── recentlyVisitedSites/
    │   │           ├── RecentlyVisitedSitesWebPart.manifest.json
    │   │           ├── RecentlyVisitedSitesWebPart.ts
    │   │           ├── components/
    │   │           │   ├── IRecentWebs.ts
    │   │           │   ├── IRecentlyVisitedSitesProps.ts
    │   │           │   ├── IRecentlyVisitedSitesState.ts
    │   │           │   ├── IWebs.ts
    │   │           │   ├── RecentlyVisitedSites.module.scss
    │   │           │   ├── RecentlyVisitedSites.tsx
    │   │           │   └── index.ts
    │   │           └── loc/
    │   │               ├── de-de.js
    │   │               ├── en-us.js
    │   │               ├── es-es.js
    │   │               ├── fr-fr.js
    │   │               ├── mystrings.d.ts
    │   │               ├── nb-no.js
    │   │               ├── nl-nl.js
    │   │               ├── sv-se.js
    │   │               └── tr-tr.js
    │   └── tsconfig.json
    ├── react-site-information/
    │   ├── .editorconfig
    │   ├── .eslintrc.js
    │   ├── .gitignore
    │   ├── .npmignore
    │   ├── .vscode/
    │   │   ├── launch.json
    │   │   └── settings.json
    │   ├── .yo-rc.json
    │   ├── README.md
    │   ├── config/
    │   │   ├── config.json
    │   │   ├── deploy-azure-storage.json
    │   │   ├── package-solution.json
    │   │   ├── sass.json
    │   │   ├── serve.json
    │   │   └── write-manifests.json
    │   ├── gulpfile.js
    │   ├── package.json
    │   ├── src/
    │   │   ├── index.ts
    │   │   └── webparts/
    │   │       └── siteInformation/
    │   │           ├── ISiteInformationWebPartProps.ts
    │   │           ├── SiteInformationWebPart.manifest.json
    │   │           ├── SiteInformationWebPart.ts
    │   │           ├── components/
    │   │           │   ├── ISiteInformationProps.ts
    │   │           │   ├── SiteInformation.module.scss
    │   │           │   └── SiteInformation.tsx
    │   │           └── loc/
    │   │               ├── de-de.js
    │   │               ├── en-us.js
    │   │               ├── es-es.js
    │   │               ├── fr-fr.js
    │   │               ├── mystrings.d.ts
    │   │               ├── nb-no.js
    │   │               ├── nl-nl.js
    │   │               ├── sv-se.js
    │   │               └── tr-tr.js
    │   └── tsconfig.json
    ├── react-tiles/
    │   ├── .editorconfig
    │   ├── .eslintrc.js
    │   ├── .gitignore
    │   ├── .npmignore
    │   ├── .vscode/
    │   │   ├── launch.json
    │   │   └── settings.json
    │   ├── .yo-rc.json
    │   ├── README.md
    │   ├── config/
    │   │   ├── config.json
    │   │   ├── deploy-azure-storage.json
    │   │   ├── package-solution.json
    │   │   ├── sass.json
    │   │   ├── serve.json
    │   │   └── write-manifests.json
    │   ├── gulpfile.js
    │   ├── package.json
    │   ├── src/
    │   │   ├── index.ts
    │   │   └── webparts/
    │   │       └── tiles/
    │   │           ├── ITileInfo.ts
    │   │           ├── TilesWebPart.manifest.json
    │   │           ├── TilesWebPart.ts
    │   │           ├── components/
    │   │           │   ├── ITilesProps.ts
    │   │           │   ├── Tile/
    │   │           │   │   ├── ITileProps.ts
    │   │           │   │   ├── Tile.module.scss
    │   │           │   │   └── Tile.tsx
    │   │           │   ├── Tiles.module.scss
    │   │           │   └── Tiles.tsx
    │   │           └── loc/
    │   │               ├── de-de.js
    │   │               ├── en-us.js
    │   │               ├── es-es.js
    │   │               ├── fr-fr.js
    │   │               ├── mystrings.d.ts
    │   │               ├── nb-no.js
    │   │               ├── nl-nl.js
    │   │               ├── sv-se.js
    │   │               └── tr-tr.js
    │   └── tsconfig.json
    ├── react-weather/
    │   ├── .editorconfig
    │   ├── .eslintrc.js
    │   ├── .gitignore
    │   ├── .npmignore
    │   ├── .vscode/
    │   │   ├── launch.json
    │   │   └── settings.json
    │   ├── .yo-rc.json
    │   ├── README.md
    │   ├── config/
    │   │   ├── config.json
    │   │   ├── copy-assets.json
    │   │   ├── deploy-azure-storage.json
    │   │   ├── package-solution.json
    │   │   ├── sass.json
    │   │   ├── serve.json
    │   │   └── write-manifests.json
    │   ├── gulpfile.js
    │   ├── package.json
    │   ├── src/
    │   │   ├── index.ts
    │   │   └── webparts/
    │   │       └── weather/
    │   │           ├── WeatherWebPart.manifest.json
    │   │           ├── WeatherWebPart.ts
    │   │           ├── components/
    │   │           │   ├── IWeatherData.ts
    │   │           │   ├── IWeatherProps.ts
    │   │           │   ├── IWeatherState.ts
    │   │           │   ├── Weather.module.scss
    │   │           │   ├── Weather.tsx
    │   │           │   └── index.ts
    │   │           └── loc/
    │   │               ├── en-us.js
    │   │               └── mystrings.d.ts
    │   └── tsconfig.json
    ├── react-world-clock/
    │   ├── .editorconfig
    │   ├── .eslintrc.js
    │   ├── .gitignore
    │   ├── .npmignore
    │   ├── .vscode/
    │   │   ├── launch.json
    │   │   └── settings.json
    │   ├── .yo-rc.json
    │   ├── README.md
    │   ├── config/
    │   │   ├── config.json
    │   │   ├── deploy-azure-storage.json
    │   │   ├── package-solution.json
    │   │   ├── sass.json
    │   │   ├── serve.json
    │   │   └── write-manifests.json
    │   ├── gulpfile.js
    │   ├── package.json
    │   ├── src/
    │   │   ├── index.ts
    │   │   └── webparts/
    │   │       └── worldClock/
    │   │           ├── IWorldClockWebPartProps.ts
    │   │           ├── WorldClockWebPart.manifest.json
    │   │           ├── WorldClockWebPart.ts
    │   │           ├── components/
    │   │           │   ├── Clock.module.scss
    │   │           │   ├── Clock.tsx
    │   │           │   ├── IWorldClockProps.ts
    │   │           │   ├── Timezones.ts
    │   │           │   ├── WorldClock.module.scss
    │   │           │   └── WorldClock.tsx
    │   │           └── loc/
    │   │               ├── en-us.js
    │   │               └── mystrings.d.ts
    │   └── tsconfig.json
    └── templates/
        ├── resources/
        │   ├── collabcommunicationsite.json
        │   ├── collabteamsite.json
        │   ├── documents/
        │   │   └── Contoso_Report.pptx
        │   ├── resources-core.de-de.resx
        │   ├── resources-core.en-us.resx
        │   ├── resources-core.es-es.resx
        │   ├── resources-core.fr-fr.resx
        │   ├── resources-core.nb-no.resx
        │   ├── resources-core.nl-nl.resx
        │   ├── resources-core.sv-se.resx
        │   └── resources-core.tr-tr.resx
        ├── starterkit-spfx-only.xml
        └── starterkit.xml
Download .txt
SYMBOL INDEX (503 symbols across 171 files)

FILE: sample-lob-service/SharePointPnP.LobScenario/Controllers/CustomersController.cs
  class CustomersController (line 13) | [Authorize]
    method CustomersController (line 20) | public CustomersController(ILogger<CustomersController> logger)
    method Get (line 26) | [HttpGet]
    method Get (line 38) | [HttpGet]
    method Search (line 51) | [HttpGet]

FILE: sample-lob-service/SharePointPnP.LobScenario/Models/Customer.cs
  class Customer (line 8) | public class Customer

FILE: sample-lob-service/SharePointPnP.LobScenario/Models/LobResponse.cs
  class LobResponse (line 8) | public class LobResponse

FILE: sample-lob-service/SharePointPnP.LobScenario/Program.cs
  class Program (line 6) | public class Program
    method Main (line 8) | public static void Main(string[] args)
    method CreateHostBuilder (line 13) | public static IHostBuilder CreateHostBuilder(string[] args) =>

FILE: sample-lob-service/SharePointPnP.LobScenario/Startup.cs
  class Startup (line 13) | public class Startup
    method Startup (line 15) | public Startup(IConfiguration configuration)
    method ConfigureServices (line 23) | public void ConfigureServices(IServiceCollection services)
    method Configure (line 66) | public void Configure(IApplicationBuilder app, IWebHostEnvironment env)

FILE: source/js-application-redirect/src/extensions/redirect/IRedirectApplicationCustomizerProperties.ts
  type IRedirectApplicationCustomizerProperties (line 1) | interface IRedirectApplicationCustomizerProperties {

FILE: source/js-application-redirect/src/extensions/redirect/IRedirection.ts
  type IRedirection (line 2) | interface IRedirection {

FILE: source/js-application-redirect/src/extensions/redirect/RedirectApplicationCustomizer.ts
  constant LOG_SOURCE (line 13) | const LOG_SOURCE: string = 'RedirectApplicationCustomizer';
  class RedirectApplicationCustomizer (line 16) | class RedirectApplicationCustomizer
    method onInit (line 26) | public async onInit(): Promise<void> {
    method loadRedirectionForCurrentPage (line 57) | private async loadRedirectionForCurrentPage(redirectionsListTitle: str...
    method ensureRedirectionsList (line 112) | private async ensureRedirectionsList(redirectionsListTitle: string): P...

FILE: source/js-application-redirect/src/extensions/redirect/loc/myStrings.d.ts
  type IRedirectApplicationCustomizerStrings (line 1) | interface IRedirectApplicationCustomizerStrings {

FILE: source/library-starter-kit-shared/gulpfile.generatelocalkeys.js
  function getKeyValuePairs (line 6) | function getKeyValuePairs(fileContents) {
  function stripQuotes (line 45) | function stripQuotes(value) {

FILE: source/library-starter-kit-shared/src/libraries/spStarterKitShared/SpStarterKitSharedLibrary.ts
  class SpStarterKitSharedLibrary (line 4) | class SpStarterKitSharedLibrary {
    method getLocale (line 11) | public static getLocale(localeKey: LocaleKeys | string, returnNull = f...

FILE: source/library-starter-kit-shared/src/libraries/spStarterKitShared/loc/LocaleKeys.ts
  type LocaleKeys (line 1) | enum LocaleKeys {

FILE: source/library-starter-kit-shared/src/libraries/spStarterKitShared/loc/mystrings.d.ts
  type ISpStarterKitSharedLibraryStrings (line 1) | interface ISpStarterKitSharedLibraryStrings {}

FILE: source/react-application-alerts/src/extensions/hubOrSiteAlerts/HubOrSiteAlertsApplicationCustomizer.ts
  type IHubOrSiteAlertsApplicationCustomizerProperties (line 18) | interface IHubOrSiteAlertsApplicationCustomizerProperties {
  class HubOrSiteAlertsApplicationCustomizer (line 22) | class HubOrSiteAlertsApplicationCustomizer
    method onInit (line 32) | public onInit(): Promise<void> {
    method _handleDispose (line 40) | private _handleDispose(): void {
    method _getConnectedHubSiteData (line 50) | private _getConnectedHubSiteData(): Promise<IHubSiteData> {
    method _loadUpcomingAlerts (line 90) | private _loadUpcomingAlerts(hubSiteUrl: string): Promise<IAlert[]> {
    method _render (line 132) | private _render(): void {

FILE: source/react-application-alerts/src/extensions/hubOrSiteAlerts/IAlert.ts
  type IAlert (line 4) | interface IAlert {
  type AlertType (line 10) | enum AlertType {
  type IAlertItem (line 18) | interface IAlertItem {

FILE: source/react-application-alerts/src/extensions/hubOrSiteAlerts/IHubSiteData.ts
  type IHubSiteData (line 1) | interface IHubSiteData {
  type IHubSiteDataResponse (line 16) | interface IHubSiteDataResponse {

FILE: source/react-application-alerts/src/extensions/hubOrSiteAlerts/components/AlertNotifications.tsx
  class AlertNotifications (line 7) | class AlertNotifications extends React.Component<IAlertNotificationsProp...
    method render (line 8) | public render(): React.ReactElement<IAlertNotificationsProps> {

FILE: source/react-application-alerts/src/extensions/hubOrSiteAlerts/components/IAlertNotificationsProps.ts
  type IAlertNotificationsProps (line 3) | interface IAlertNotificationsProps {

FILE: source/react-application-alerts/src/extensions/hubOrSiteAlerts/loc/myStrings.d.ts
  type IHubOrSiteAlertsApplicationCustomizerStrings (line 1) | interface IHubOrSiteAlertsApplicationCustomizerStrings {

FILE: source/react-application-collab-footer/src/extensions/collaborationFooter/CollaborationFooterApplicationCustomizer.ts
  constant LOG_SOURCE (line 23) | const LOG_SOURCE: string = 'CollaborationFooterApplicationCustomizer';
  type ICollaborationFooterApplicationCustomizerProperties (line 30) | interface ICollaborationFooterApplicationCustomizerProperties {
  class CollaborationFooterApplicationCustomizer (line 38) | class CollaborationFooterApplicationCustomizer
    method onInit (line 46) | public async onInit(): Promise<void> {
    method getMenuItems (line 59) | private async getMenuItems(): Promise<IContextualMenuItem[]> {
    method projectTermToMenuItem (line 96) | private projectTermToMenuItem(menuItem: ITerm, itemType: ContextualMen...
    method projectMyLinkToMenuItem (line 119) | private projectMyLinkToMenuItem(menuItem: IMyLink, itemType: Contextua...
    method _renderPlaceHolders (line 164) | private async _renderPlaceHolders(): Promise<void> {
    method _onDispose (line 194) | private _onDispose(): void {

FILE: source/react-application-collab-footer/src/extensions/collaborationFooter/components/CollabFooter.tsx
  class CollabFooter (line 14) | class CollabFooter extends React.Component<ICollabFooterProps, ICollabFo...
    method constructor (line 19) | constructor(props: ICollabFooterProps) {
    method render (line 27) | public render(): React.ReactElement<ICollabFooterProps> {

FILE: source/react-application-collab-footer/src/extensions/collaborationFooter/components/ICollabFooterEditResult.ts
  type ICollabFooterEditResult (line 3) | interface ICollabFooterEditResult {

FILE: source/react-application-collab-footer/src/extensions/collaborationFooter/components/ICollabFooterProps.ts
  type ICollabFooterProps (line 4) | interface ICollabFooterProps {

FILE: source/react-application-collab-footer/src/extensions/collaborationFooter/components/ICollabFooterState.ts
  type ICollabFooterState (line 3) | interface ICollabFooterState {

FILE: source/react-application-collab-footer/src/extensions/collaborationFooter/components/myLinks/IMyLink.ts
  type IMyLink (line 4) | interface IMyLink {

FILE: source/react-application-collab-footer/src/extensions/collaborationFooter/components/myLinks/MyLinksDialog.tsx
  type IMyLinksDialogContentProps (line 44) | interface IMyLinksDialogContentProps {
  type IMyLinksDialogContentState (line 56) | interface IMyLinksDialogContentState {
  class MyLinksDialogContent (line 74) | class MyLinksDialogContent extends
    method constructor (line 80) | constructor(props: IMyLinksDialogContentProps) {
    method componentDidMount (line 96) | public componentDidMount(): void {
    method render (line 106) | public render(): JSX.Element {
  class MyLinksDialog (line 333) | class MyLinksDialog extends BaseDialog {
    method constructor (line 341) | constructor(public links: Array<IMyLink>, public isSave?: boolean) {
    method render (line 349) | public render(): void {
    method getConfig (line 358) | public getConfig(): IDialogConfiguration {

FILE: source/react-application-collab-footer/src/extensions/collaborationFooter/components/myLinks/loc/mystrings.d.ts
  type IMyLinksStrings (line 1) | interface IMyLinksStrings {

FILE: source/react-application-collab-footer/src/extensions/collaborationFooter/loc/myStrings.d.ts
  type ICollabFooterApplicationCustomizerStrings (line 1) | interface ICollabFooterApplicationCustomizerStrings {

FILE: source/react-application-collab-footer/src/services/SPTaxonomyService.ts
  class SPTaxonomyService (line 14) | class SPTaxonomyService {
    method constructor (line 28) | constructor(private context: IWebPartContext | ExtensionContext) {
    method getFormDigest (line 37) | private async getFormDigest(): Promise<string> {
    method getTermsFromTermSet (line 58) | public async getTermsFromTermSet(termSetName: string, locale: number =...
    method getChildTerms (line 160) | private async getChildTerms(term: ITerm): Promise<ITerm[]> {
    method expandTerm (line 234) | private async expandTerm(term: ITerm): Promise<ITerm> {
    method cleanGuid (line 252) | private cleanGuid(guid: string): string {

FILE: source/react-application-collab-footer/src/services/SPTaxonomyTypes.ts
  type ITermSets (line 4) | interface ITermSets {
  type ITermSet (line 12) | interface ITermSet {
  type ITerms (line 24) | interface ITerms {
  type ITerm (line 32) | interface ITerm {

FILE: source/react-application-collab-footer/src/services/SPUserProfileService.ts
  class SPUserProfileService (line 14) | class SPUserProfileService {
    method constructor (line 28) | constructor(private context: IWebPartContext | ExtensionContext) {
    method getFormDigest (line 37) | private async getFormDigest(): Promise<string> {
    method getUserProfileProperty (line 58) | public async getUserProfileProperty(propertyName: string): Promise<any> {
    method setUserProfileProperty (line 127) | public async setUserProfileProperty(propertyName: string, propertyType...

FILE: source/react-application-collab-footer/src/services/SPUserProfileTypes.ts
  type IPersonProperties (line 4) | interface IPersonProperties {
  type ISetPropertyResponse (line 13) | interface ISetPropertyResponse {

FILE: source/react-application-portal-footer/src/extensions/portalFooter/IHubSiteData.ts
  type IHubSiteDataResponse (line 1) | interface IHubSiteDataResponse {
  type IHubSiteData (line 6) | interface IHubSiteData {

FILE: source/react-application-portal-footer/src/extensions/portalFooter/ILinkListItem.ts
  type ILinkListItem (line 1) | interface ILinkListItem {

FILE: source/react-application-portal-footer/src/extensions/portalFooter/PortalFooterApplicationCustomizer.ts
  constant LOG_SOURCE (line 11) | const LOG_SOURCE: string = 'PortalFooterApplicationCustomizer';
  type IPortalFooterApplicationCustomizerProperties (line 32) | interface IPortalFooterApplicationCustomizerProperties {
  class PortalFooterApplicationCustomizer (line 44) | class PortalFooterApplicationCustomizer
    method _handleDispose (line 50) | private _handleDispose(): void {
    method onInit (line 55) | public async onInit(): Promise<void> {
    method getHubSiteUrl (line 110) | private async getHubSiteUrl(): Promise<string> {
    method loadLinks (line 136) | private async loadLinks(): Promise<ILinkGroup[]> {
    method _renderPlaceHolders (line 203) | private async _renderPlaceHolders(): Promise<void> {

FILE: source/react-application-portal-footer/src/extensions/portalFooter/components/Links/ILinksProps.ts
  type ILinksProps (line 3) | interface ILinksProps {

FILE: source/react-application-portal-footer/src/extensions/portalFooter/components/Links/Links.tsx
  class Links (line 7) | class Links extends React.Component<ILinksProps, {}> {
    method render (line 13) | public render(): React.ReactElement<ILinksProps> {

FILE: source/react-application-portal-footer/src/extensions/portalFooter/components/PortalFooter/ILinkGroup.ts
  type ILinkGroup (line 1) | interface ILinkGroup {

FILE: source/react-application-portal-footer/src/extensions/portalFooter/components/PortalFooter/IPortalFooterEditResult.ts
  type IPortalFooterEditResult (line 3) | interface IPortalFooterEditResult {

FILE: source/react-application-portal-footer/src/extensions/portalFooter/components/PortalFooter/IPortalFooterProps.ts
  type IPortalFooterProps (line 4) | interface IPortalFooterProps {

FILE: source/react-application-portal-footer/src/extensions/portalFooter/components/PortalFooter/IPortalFooterState.ts
  type IPortalFooterState (line 3) | interface IPortalFooterState {

FILE: source/react-application-portal-footer/src/extensions/portalFooter/components/PortalFooter/PortalFooter.tsx
  class PortalFooter (line 11) | class PortalFooter extends React.Component<IPortalFooterProps, IPortalFo...
    method constructor (line 12) | constructor(props: IPortalFooterProps) {
    method render (line 56) | public render(): React.ReactElement<IPortalFooterProps> {

FILE: source/react-application-portal-footer/src/extensions/portalFooter/components/myLinks/IMyLink.ts
  type IMyLink (line 4) | interface IMyLink {

FILE: source/react-application-portal-footer/src/extensions/portalFooter/components/myLinks/MyLinksDialog.tsx
  type IMyLinksDialogContentProps (line 44) | interface IMyLinksDialogContentProps {
  type IMyLinksDialogContentState (line 56) | interface IMyLinksDialogContentState {
  class MyLinksDialogContent (line 74) | class MyLinksDialogContent extends
    method constructor (line 80) | constructor(props: IMyLinksDialogContentProps) {
    method componentDidMount (line 96) | public componentDidMount(): void {
    method render (line 106) | public render(): JSX.Element {
  class MyLinksDialog (line 333) | class MyLinksDialog extends BaseDialog {
    method constructor (line 341) | constructor(public links: Array<IMyLink>, public isSave?: boolean) {
    method render (line 349) | public render(): void {
    method getConfig (line 358) | public getConfig(): IDialogConfiguration {

FILE: source/react-application-portal-footer/src/extensions/portalFooter/components/myLinks/loc/mystrings.d.ts
  type IMyLinksStrings (line 1) | interface IMyLinksStrings {

FILE: source/react-application-portal-footer/src/extensions/portalFooter/loc/myStrings.d.ts
  type IPortalFooterApplicationCustomizerStrings (line 1) | interface IPortalFooterApplicationCustomizerStrings {

FILE: source/react-application-portal-footer/src/services/SPUserProfileService.ts
  class SPUserProfileService (line 14) | class SPUserProfileService {
    method constructor (line 28) | constructor(private context: IWebPartContext | ExtensionContext) {
    method getFormDigest (line 37) | private async getFormDigest(): Promise<string> {
    method getUserProfileProperty (line 58) | public async getUserProfileProperty(propertyName: string): Promise<any> {
    method setUserProfileProperty (line 127) | public async setUserProfileProperty(propertyName: string, propertyType...

FILE: source/react-application-portal-footer/src/services/SPUserProfileTypes.ts
  type IPersonProperties (line 4) | interface IPersonProperties {
  type ISetPropertyResponse (line 13) | interface ISetPropertyResponse {

FILE: source/react-banner/src/webparts/banner/BannerWebPart.ts
  type IBannerWebPartProps (line 11) | interface IBannerWebPartProps {
  class BannerWebPart (line 21) | class BannerWebPart extends BaseClientSideWebPart<IBannerWebPartProps> {
    method render (line 25) | public render(): void {
    method dataVersion (line 40) | protected get dataVersion(): Version {
    method propertiesMetadata (line 47) | protected get propertiesMetadata(): IWebPartPropertiesMetadata {
    method loadPropertyPaneResources (line 56) | protected async loadPropertyPaneResources(): Promise<void> {
    method getPropertyPaneConfiguration (line 70) | protected getPropertyPaneConfiguration(): IPropertyPaneConfiguration {
    method _validateImageField (line 115) | private _validateImageField(imgVal: string): string {

FILE: source/react-banner/src/webparts/banner/components/Banner.tsx
  class Banner (line 8) | class Banner extends React.Component<IBannerProps, {}> {
    method componentDidMount (line 16) | public componentDidMount(): void {
    method componentDidUpdate (line 24) | public componentDidUpdate(prevProps: IBannerProps): void {
    method componentWillUnmount (line 31) | public componentWillUnmount(): void {
    method render (line 38) | public render(): React.ReactElement<IBannerProps> {
    method _getScrollableParent (line 79) | private _getScrollableParent(): HTMLElement {
    method _setTranslate (line 91) | private _setTranslate (vector: number): void {
    method _removeParallaxBinding (line 115) | private _removeParallaxBinding(): void {
    method _parallaxBinding (line 125) | private _parallaxBinding(): void {

FILE: source/react-banner/src/webparts/banner/components/IBannerProps.ts
  type IBannerProps (line 4) | interface IBannerProps extends IBannerWebPartProps {

FILE: source/react-banner/src/webparts/banner/loc/mystrings.d.ts
  type IBannerWebPartStrings (line 1) | interface IBannerWebPartStrings {

FILE: source/react-command-discuss-now/src/extensions/discussNow/DiscussNowCommandSet.ts
  type IDiscussNowCommandSetProperties (line 21) | interface IDiscussNowCommandSetProperties {
  constant LOG_SOURCE (line 26) | const LOG_SOURCE: string = 'DiscussNowCommandSet';
  class DiscussNowCommandSet (line 28) | class DiscussNowCommandSet extends BaseListViewCommandSet<IDiscussNowCom...
    method onInit (line 31) | public onInit(): Promise<void> {
    method onListViewUpdated (line 37) | public onListViewUpdated(event: IListViewCommandSetListViewUpdatedPara...
    method onExecute (line 44) | public onExecute(event: IListViewCommandSetExecuteEventParameters): vo...

FILE: source/react-command-discuss-now/src/extensions/discussNow/components/DateTimePicker.tsx
  type IDatePickerRequiredExampleState (line 90) | interface IDatePickerRequiredExampleState {
  class DateTimePicker (line 94) | class DateTimePicker extends React.Component<IDateTimePickerProps, IDate...
    method constructor (line 99) | constructor(props: IDateTimePickerProps) {
    method render (line 110) | public render(): React.ReactElement<IDateTimePickerProps> {
    method saveFullDate (line 214) | private saveFullDate(): void {

FILE: source/react-command-discuss-now/src/extensions/discussNow/components/IDateTimePickerProps.ts
  type IDateTimePickerProps (line 1) | interface IDateTimePickerProps {

FILE: source/react-command-discuss-now/src/extensions/discussNow/components/IDateTimePickerState.ts
  type IDateTimePickerState (line 1) | interface IDateTimePickerState {

FILE: source/react-command-discuss-now/src/extensions/discussNow/components/ScheduleMeetingDialog.tsx
  type IScheduleMeetingDialogContentProps (line 22) | interface IScheduleMeetingDialogContentProps {
  type IScheduleMeetingDialogContentState (line 29) | interface IScheduleMeetingDialogContentState {
  class ScheduleMeetingDialogContent (line 35) | class ScheduleMeetingDialogContent extends
    method constructor (line 38) | constructor(props: IScheduleMeetingDialogContentProps) {
    method render (line 48) | public render(): JSX.Element {
    method _getErrorMessageSubject (line 118) | private _getErrorMessageSubject(value: string): string {
  class ScheduleMeetingDialog (line 139) | class ScheduleMeetingDialog extends BaseDialog {
    method render (line 144) | public render(): void {
    method getConfig (line 153) | public getConfig(): IDialogConfiguration {

FILE: source/react-command-discuss-now/src/extensions/discussNow/loc/myStrings.d.ts
  type IDiscussNowCommandSetStrings (line 1) | interface IDiscussNowCommandSetStrings {

FILE: source/react-followed-sites/src/webparts/followedSites/FollowedSitesWebPart.ts
  type IFollowedSitesWebPartProps (line 11) | interface IFollowedSitesWebPartProps {
  type SortOrder (line 17) | enum SortOrder {
  class FollowedSitesWebPart (line 22) | class FollowedSitesWebPart extends BaseClientSideWebPart<IFollowedSitesW...
    method render (line 25) | public render(): void {
    method onDispose (line 44) | protected onDispose(): void {
    method dataVersion (line 48) | protected get dataVersion(): Version {
    method loadPropertyPaneResources (line 52) | protected async loadPropertyPaneResources(): Promise<void> {
    method getPropertyPaneConfiguration (line 62) | protected getPropertyPaneConfiguration(): IPropertyPaneConfiguration {

FILE: source/react-followed-sites/src/webparts/followedSites/components/FollowedSites.tsx
  class FollowedSites (line 13) | class FollowedSites extends React.Component<IFollowedSitesProps, IFollow...
    method constructor (line 16) | constructor(props: IFollowedSitesProps) {
    method _fetchFollowedSites (line 30) | private _fetchFollowedSites(): void {
    method _sortByName (line 100) | private _sortByName(a: IFollowedResult, b: IFollowedResult): number {
    method componentDidMount (line 131) | public componentDidMount(): void {
    method componentDidUpdate (line 140) | public componentDidUpdate(prevProps: IFollowedSitesProps, prevState: I...
    method render (line 150) | public render(): React.ReactElement<IFollowedSitesProps> {

FILE: source/react-followed-sites/src/webparts/followedSites/components/IFollowedResult.ts
  type IFollowed (line 1) | interface IFollowed {
  type IFollowedResult (line 7) | interface IFollowedResult {
  type IErrorMessage (line 27) | interface IErrorMessage {

FILE: source/react-followed-sites/src/webparts/followedSites/components/IFollowedSitesProps.ts
  type IFollowedSitesProps (line 5) | interface IFollowedSitesProps extends IFollowedSitesWebPartProps {

FILE: source/react-followed-sites/src/webparts/followedSites/components/IFollowedSitesState.ts
  type IFollowedSitesState (line 3) | interface IFollowedSitesState {

FILE: source/react-followed-sites/src/webparts/followedSites/components/paging/IPagingProps.ts
  type IPagingProps (line 3) | interface IPagingProps {

FILE: source/react-followed-sites/src/webparts/followedSites/components/paging/IPagingState.ts
  type IPagingState (line 1) | interface IPagingState {

FILE: source/react-followed-sites/src/webparts/followedSites/components/paging/Paging.tsx
  class Paging (line 7) | class Paging extends React.Component<IPagingProps, IPagingState> {
    method constructor (line 8) | constructor(props: IPagingProps) {
    method componentWillReceiveProps (line 61) | public componentWillReceiveProps(nextProps: IPagingProps): void {
    method render (line 73) | public render(): React.ReactElement<IPagingProps> {

FILE: source/react-links/src/webparts/links/ILink.ts
  type ILink (line 1) | interface ILink {
  type IGroupData (line 9) | interface IGroupData {
  type LinkTarget (line 13) | enum LinkTarget {

FILE: source/react-links/src/webparts/links/LinksWebPart.ts
  type ILinksWebPartProps (line 12) | interface ILinksWebPartProps {
  class LinksWebPart (line 18) | class LinksWebPart extends BaseClientSideWebPart<ILinksWebPartProps> {
    method render (line 27) | public render(): void {
    method dataVersion (line 44) | protected get dataVersion(): Version {
    method loadPropertyPaneResources (line 49) | protected async loadPropertyPaneResources(): Promise<void> {
    method getPropertyPaneConfiguration (line 60) | protected getPropertyPaneConfiguration(): IPropertyPaneConfiguration {

FILE: source/react-links/src/webparts/links/components/ILinksProps.ts
  type ILinksProps (line 4) | interface ILinksProps {

FILE: source/react-links/src/webparts/links/components/ILinksState.ts
  type ILinksState (line 3) | interface ILinksState {

FILE: source/react-links/src/webparts/links/components/Links.tsx
  constant NO_GROUP_NAME (line 13) | const NO_GROUP_NAME: string = '..NOGROUPNAME..';
  class Links (line 15) | class Links extends React.Component<ILinksProps, ILinksState> {
    method constructor (line 17) | constructor(props: ILinksProps) {
    method componentWillMount (line 28) | public componentWillMount(): void {
    method componentDidUpdate (line 37) | public componentDidUpdate(prevProps: ILinksProps, prevState: ILinksSta...
    method render (line 46) | public render(): React.ReactElement<ILinksProps> {
    method _processLinks (line 102) | private _processLinks(): void {

FILE: source/react-links/src/webparts/links/loc/mystrings.d.ts
  type ILinksWebPartStrings (line 1) | interface ILinksWebPartStrings {

FILE: source/react-lob-integration/src/webparts/lobIntegration/ICustomer.ts
  type ICustomer (line 1) | interface ICustomer {

FILE: source/react-lob-integration/src/webparts/lobIntegration/ILobIntegrationWebPartProps.ts
  type ILobIntegrationWebPartProps (line 1) | interface ILobIntegrationWebPartProps {

FILE: source/react-lob-integration/src/webparts/lobIntegration/ILobServiceResponse.ts
  type ILobServiceResponse (line 3) | interface ILobServiceResponse {

FILE: source/react-lob-integration/src/webparts/lobIntegration/LobIntegrationWebPart.ts
  class LobIntegrationWebPart (line 12) | class LobIntegrationWebPart extends BaseClientSideWebPart<ILobIntegratio...
    method needsConfiguration (line 15) | private needsConfiguration(): boolean {
    method render (line 20) | public render(): void {
    method onDispose (line 44) | protected onDispose(): void {
    method dataVersion (line 48) | protected get dataVersion(): Version {
    method getPropertyPaneConfiguration (line 52) | protected getPropertyPaneConfiguration(): IPropertyPaneConfiguration {

FILE: source/react-lob-integration/src/webparts/lobIntegration/components/ILobIntegrationProps.ts
  type ILobIntegrationProps (line 3) | interface ILobIntegrationProps {

FILE: source/react-lob-integration/src/webparts/lobIntegration/components/ILobIntegrationState.ts
  type ILobIntegrationState (line 3) | interface ILobIntegrationState {

FILE: source/react-lob-integration/src/webparts/lobIntegration/components/LobIntegration.tsx
  class LobIntegration (line 65) | class LobIntegration extends React.Component<ILobIntegrationProps, ILobI...
    method constructor (line 67) | constructor(props: ILobIntegrationProps) {
    method componentDidMount (line 78) | public componentDidMount(): void {
    method _onSearchForChanged (line 82) | private _onSearchForChanged(newValue: string): void {
    method _callService (line 89) | private async _callService(requestUrl: string): Promise<ILobServiceRes...
    method _listCustomers (line 113) | private async _listCustomers(): Promise<void> {
    method _searchCustomers (line 133) | private async _searchCustomers(): Promise<void> {
    method render (line 153) | public render(): React.ReactElement<ILobIntegrationProps> {

FILE: source/react-lob-integration/src/webparts/lobIntegration/loc/mystrings.d.ts
  type ILobIntegrationWebPartStrings (line 1) | interface ILobIntegrationWebPartStrings {

FILE: source/react-people-directory/src/webparts/peopleDirectory/PeopleDirectoryWebPart.ts
  type IPeopleDirectoryWebPartProps (line 9) | interface IPeopleDirectoryWebPartProps {
  class PeopleDirectoryWebPart (line 13) | class PeopleDirectoryWebPart extends BaseClientSideWebPart<IPeopleDirect...
    method onInit (line 15) | protected onInit(): Promise<void> {
    method onAfterResize (line 20) | protected onAfterResize(newWidth: number) {
    method render (line 25) | public render(): void {
    method onDispose (line 45) | protected onDispose(): void {
    method dataVersion (line 49) | protected get dataVersion(): Version {
    method getLocaleId (line 53) | protected getLocaleId(): string {
    method getPropertyPaneConfiguration (line 57) | protected getPropertyPaneConfiguration(): IPropertyPaneConfiguration {

FILE: source/react-people-directory/src/webparts/peopleDirectory/components/IndexNavigation/IIndexNavigationProps.ts
  type IIndexNavigationProps (line 4) | interface IIndexNavigationProps {

FILE: source/react-people-directory/src/webparts/peopleDirectory/components/IndexNavigation/IndexNavigation.tsx
  class IndexNavigation (line 8) | class IndexNavigation extends React.Component<IIndexNavigationProps, {}> {
    method shouldComponentUpdate (line 16) | public shouldComponentUpdate(nextProps: IIndexNavigationProps, nextSta...
    method render (line 22) | public render(): React.ReactElement<IIndexNavigationProps> {

FILE: source/react-people-directory/src/webparts/peopleDirectory/components/PeopleCallout/IPeopleCalloutProps.ts
  type IPeopleCalloutProps (line 3) | interface IPeopleCalloutProps {

FILE: source/react-people-directory/src/webparts/peopleDirectory/components/PeopleCallout/IPeopleCalloutState.ts
  type IPeopleCalloutState (line 1) | interface IPeopleCalloutState {

FILE: source/react-people-directory/src/webparts/peopleDirectory/components/PeopleCallout/PeopleCallout.tsx
  class PeopleCallout (line 6) | class PeopleCallout extends React.Component<IPeopleCalloutProps, IPeople...
    method constructor (line 7) | constructor(props: IPeopleCalloutProps) {
    method render (line 14) | public render(): React.ReactElement<IPeopleCalloutProps> {

FILE: source/react-people-directory/src/webparts/peopleDirectory/components/PeopleDirectory/IPeopleDirectoryProps.ts
  type IPeopleDirectoryProps (line 7) | interface IPeopleDirectoryProps {

FILE: source/react-people-directory/src/webparts/peopleDirectory/components/PeopleDirectory/IPeopleDirectoryState.ts
  type IPeopleDirectoryState (line 6) | interface IPeopleDirectoryState {

FILE: source/react-people-directory/src/webparts/peopleDirectory/components/PeopleDirectory/IPeopleSearchResults.ts
  type IPeopleSearchResults (line 4) | interface IPeopleSearchResults {
  type ICell (line 22) | interface ICell {

FILE: source/react-people-directory/src/webparts/peopleDirectory/components/PeopleDirectory/IPerson.ts
  type IPerson (line 1) | interface IPerson {

FILE: source/react-people-directory/src/webparts/peopleDirectory/components/PeopleDirectory/PeopleDirectory.tsx
  class PeopleDirectory (line 24) | class PeopleDirectory extends React.Component<IPeopleDirectoryProps, IPe...
    method constructor (line 25) | constructor(props: IPeopleDirectoryProps) {
    method _loadPeopleInfo (line 82) | private _loadPeopleInfo(index: string, searchQuery: string): void {
    method _getValueFromSearchResult (line 200) | private _getValueFromSearchResult(key: string, cells: ICell[]): string {
    method componentDidMount (line 210) | public componentDidMount(): void {
    method render (line 216) | public render(): React.ReactElement<IPeopleDirectoryProps> {

FILE: source/react-people-directory/src/webparts/peopleDirectory/components/PeopleList/IPeopleListProps.ts
  type IPeopleListProps (line 6) | interface IPeopleListProps {

FILE: source/react-people-directory/src/webparts/peopleDirectory/components/PeopleList/IPeopleListState.ts
  type IPeopleListState (line 3) | interface IPeopleListState {

FILE: source/react-people-directory/src/webparts/peopleDirectory/components/PeopleList/PeopleList.tsx
  class PeopleList (line 14) | class PeopleList extends React.Component<IPeopleListProps, IPeopleListSt...
    method constructor (line 15) | constructor(props: IPeopleListProps) {
    method render (line 28) | public render(): React.ReactElement<IPeopleListProps> {

FILE: source/react-people-directory/src/webparts/peopleDirectory/components/Search/ISearchProps.ts
  type ISearchProps (line 4) | interface ISearchProps {

FILE: source/react-people-directory/src/webparts/peopleDirectory/components/Search/Search.tsx
  class Search (line 9) | class Search extends React.Component<ISearchProps, {}> {
    method render (line 18) | public render(): React.ReactElement<ISearchProps> {

FILE: source/react-people-directory/src/webparts/peopleDirectory/loc/mystrings.d.ts
  type IPeopleDirectoryWebPartStrings (line 1) | interface IPeopleDirectoryWebPartStrings {

FILE: source/react-personal-calendar/src/webparts/personalCalendar/PersonalCalendarWebPart.ts
  type IPersonalCalendarWebPartProps (line 21) | interface IPersonalCalendarWebPartProps {
  class PersonalCalendarWebPart (line 29) | class PersonalCalendarWebPart extends BaseClientSideWebPart<IPersonalCal...
    method onInit (line 34) | public onInit(): Promise<void> {
    method render (line 51) | public render(): void {
    method dataVersion (line 75) | protected get dataVersion(): Version {
    method loadPropertyPaneResources (line 80) | protected async loadPropertyPaneResources(): Promise<void> {
    method getPropertyPaneConfiguration (line 91) | protected getPropertyPaneConfiguration(): IPropertyPaneConfiguration {
    method _handleThemeChangedEvent (line 135) | private _handleThemeChangedEvent(args: ThemeChangedEventArgs): void {

FILE: source/react-personal-calendar/src/webparts/personalCalendar/components/IMeeting.ts
  type IMeetings (line 1) | interface IMeetings {
  type IMeeting (line 5) | interface IMeeting {
  type IMeetingTime (line 17) | interface IMeetingTime {

FILE: source/react-personal-calendar/src/webparts/personalCalendar/components/IPersonalCalendarProps.ts
  type IPersonalCalendarProps (line 5) | interface IPersonalCalendarProps extends IPersonalCalendarWebPartProps {

FILE: source/react-personal-calendar/src/webparts/personalCalendar/components/IPersonalCalendarState.ts
  type IPersonalCalendarState (line 3) | interface IPersonalCalendarState {

FILE: source/react-personal-calendar/src/webparts/personalCalendar/components/PersonalCalendar.tsx
  class PersonalCalendar (line 94) | class PersonalCalendar extends React.Component<IPersonalCalendarProps, I...
    method constructor (line 97) | constructor(props: IPersonalCalendarProps) {
    method _getTimeZone (line 114) | private _getTimeZone(): Promise<string> {
    method componentDidMount (line 159) | public componentDidMount(): void {
    method componentWillUnmount (line 172) | public componentWillUnmount(): void {
    method componentDidUpdate (line 177) | public componentDidUpdate(prevProps: IPersonalCalendarProps, prevState...
    method render (line 187) | public render(): React.ReactElement<IPersonalCalendarProps> {

FILE: source/react-personal-calendar/src/webparts/personalCalendar/components/SimpleCalendar.tsx
  function SimpleCalendar (line 12) | function SimpleCalendar () {

FILE: source/react-personal-calendar/src/webparts/personalCalendar/loc/mystrings.d.ts
  type IPersonalCalendarWebPartStrings (line 1) | interface IPersonalCalendarWebPartStrings {

FILE: source/react-personal-contacts/src/webparts/personalContacts/PersonalContactsWebPart.ts
  type IPersonalContactsWebPartProps (line 10) | interface IPersonalContactsWebPartProps {
  class PersonalContactsWebPart (line 15) | class PersonalContactsWebPart extends BaseClientSideWebPart<IPersonalCon...
    method onInit (line 19) | public onInit(): Promise<void> {
    method render (line 30) | public render(): void {
    method dataVersion (line 52) | protected get dataVersion(): Version {
    method loadPropertyPaneResources (line 57) | protected async loadPropertyPaneResources(): Promise<void> {
    method getPropertyPaneConfiguration (line 68) | protected getPropertyPaneConfiguration(): IPropertyPaneConfiguration {

FILE: source/react-personal-contacts/src/webparts/personalContacts/components/IContacts.ts
  type IContacts (line 1) | interface IContacts {
  type IContact (line 5) | interface IContact {

FILE: source/react-personal-contacts/src/webparts/personalContacts/components/Person/IPersonProps.ts
  type IPersonProps (line 4) | interface IPersonProps {

FILE: source/react-personal-contacts/src/webparts/personalContacts/components/Person/IPersonState.ts
  type IPersonState (line 1) | interface IPersonState {

FILE: source/react-personal-contacts/src/webparts/personalContacts/components/Person/Person.tsx
  class Person (line 8) | class Person extends React.Component<IPersonProps, IPersonState> {
    method constructor (line 9) | constructor(props: IPersonProps) {
    method _setPhoto (line 39) | private _setPhoto(rawResponse: any): void {
    method componentDidMount (line 52) | public componentDidMount(): void {
    method render (line 90) | public render(): React.ReactElement<IPersonProps> {

FILE: source/react-personal-contacts/src/webparts/personalContacts/components/PersonalContacts/IPersonalContactsProps.ts
  type IPersonalContactsProps (line 5) | interface IPersonalContactsProps extends IPersonalContactsWebPartProps {

FILE: source/react-personal-contacts/src/webparts/personalContacts/components/PersonalContacts/IPersonalContactsState.ts
  type IPersonalContactsState (line 3) | interface IPersonalContactsState {

FILE: source/react-personal-contacts/src/webparts/personalContacts/components/PersonalContacts/PersonalContacts.tsx
  class PersonalContacts (line 12) | class PersonalContacts extends React.Component<IPersonalContactsProps, I...
    method constructor (line 16) | constructor(props: IPersonalContactsProps) {
    method _loadContacts (line 29) | private _loadContacts(): void {
    method componentDidMount (line 102) | public componentDidMount(): void {
    method componentDidUpdate (line 107) | public componentDidUpdate(prevProps: IPersonalContactsProps, prevState...
    method render (line 115) | public render(): React.ReactElement<IPersonalContactsProps> {

FILE: source/react-personal-contacts/src/webparts/personalContacts/loc/mystrings.d.ts
  type IPersonalContactsWebPartStrings (line 1) | interface IPersonalContactsWebPartStrings {

FILE: source/react-personal-email/src/webparts/personalEmail/PersonalEmailWebPart.ts
  type IPersonalEmailWebPartProps (line 17) | interface IPersonalEmailWebPartProps {
  class PersonalEmailWebPart (line 23) | class PersonalEmailWebPart extends BaseClientSideWebPart<IPersonalEmailW...
    method onInit (line 29) | public onInit(): Promise<void> {
    method render (line 51) | public render(): void {
    method dataVersion (line 75) | protected get dataVersion(): Version {
    method loadPropertyPaneResources (line 80) | protected async loadPropertyPaneResources(): Promise<void> {
    method getPropertyPaneConfiguration (line 91) | protected getPropertyPaneConfiguration(): IPropertyPaneConfiguration {
    method _handleThemeChangedEvent (line 123) | private _handleThemeChangedEvent(args: ThemeChangedEventArgs): void {

FILE: source/react-personal-email/src/webparts/personalEmail/components/IMessage.ts
  type IMessages (line 1) | interface IMessages {
  type IMessage (line 5) | interface IMessage {

FILE: source/react-personal-email/src/webparts/personalEmail/components/IPersonalEmailProps.ts
  type IPersonalEmailProps (line 6) | interface IPersonalEmailProps extends IPersonalEmailWebPartProps {

FILE: source/react-personal-email/src/webparts/personalEmail/components/IPersonalEmailState.ts
  type IPersonalEmailState (line 3) | interface IPersonalEmailState {

FILE: source/react-personal-email/src/webparts/personalEmail/components/PersonalEmail.tsx
  class PersonalEmail (line 12) | class PersonalEmail extends React.Component<IPersonalEmailProps, IPerson...
    method constructor (line 17) | constructor(props: IPersonalEmailProps) {
    method _loadMessages (line 33) | private _loadMessages(): void {
    method componentDidMount (line 100) | public componentDidMount(): void {
    method componentDidUpdate (line 105) | public componentDidUpdate(prevProps: IPersonalEmailProps, prevState: I...
    method render (line 113) | public render(): React.ReactElement<IPersonalEmailProps> {

FILE: source/react-personal-email/src/webparts/personalEmail/loc/mystrings.d.ts
  type IPersonalEmailWebPartStrings (line 1) | interface IPersonalEmailWebPartStrings {

FILE: source/react-personal-tasks/src/webparts/personalTasks/PersonalTasksWebPart.ts
  type IPersonalTasksWebPartProps (line 19) | interface IPersonalTasksWebPartProps {
  class PersonalTasksWebPart (line 56) | class PersonalTasksWebPart extends BaseClientSideWebPart<IPersonalTasksW...
    method onInit (line 63) | public async onInit(): Promise<void> {
    method render (line 79) | public render(): void {
    method onDispose (line 93) | protected onDispose(): void {
    method dataVersion (line 97) | protected get dataVersion(): Version {
    method getPropertyPaneConfiguration (line 101) | protected getPropertyPaneConfiguration(): IPropertyPaneConfiguration {

FILE: source/react-personal-tasks/src/webparts/personalTasks/components/IPersonalTasksProps.ts
  type IPersonalTasksProps (line 5) | interface IPersonalTasksProps {

FILE: source/react-personal-tasks/src/webparts/personalTasks/components/PersonalTasks.tsx
  class PersonalTasks (line 12) | class PersonalTasks extends React.Component<IPersonalTasksProps, {}> {
    method render (line 13) | public render(): React.ReactElement<IPersonalTasksProps> {

FILE: source/react-personal-tasks/src/webparts/personalTasks/loc/mystrings.d.ts
  type IPersonalTasksWebPartStrings (line 1) | interface IPersonalTasksWebPartStrings {

FILE: source/react-recent-contacts/src/webparts/recentContacts/RecentContactsWebPart.ts
  type IRecentContactsWebPartProps (line 10) | interface IRecentContactsWebPartProps {
  class RecentContactsWebPart (line 15) | class RecentContactsWebPart extends BaseClientSideWebPart<IRecentContact...
    method onInit (line 18) | protected onInit(): Promise<void> {
    method render (line 25) | public render(): void {
    method dataVersion (line 41) | protected get dataVersion(): Version {
    method loadPropertyPaneResources (line 46) | protected async loadPropertyPaneResources(): Promise<void> {
    method getPropertyPaneConfiguration (line 57) | protected getPropertyPaneConfiguration(): IPropertyPaneConfiguration {

FILE: source/react-recent-contacts/src/webparts/recentContacts/components/IContacts.ts
  type IContacts (line 1) | interface IContacts {
  type IContact (line 6) | interface IContact {
  type ScoredEmailAddress (line 15) | interface ScoredEmailAddress {
  type Phone (line 21) | interface Phone {
  type PersonType (line 26) | interface PersonType {

FILE: source/react-recent-contacts/src/webparts/recentContacts/components/IRecentContactsProps.ts
  type IRecentContactsProps (line 4) | interface IRecentContactsProps extends IRecentContactsWebPartProps {

FILE: source/react-recent-contacts/src/webparts/recentContacts/components/IRecentContactsState.ts
  type IRecentContactsState (line 3) | interface IRecentContactsState {

FILE: source/react-recent-contacts/src/webparts/recentContacts/components/RecentContacts.tsx
  class RecentContacts (line 11) | class RecentContacts extends React.Component<IRecentContactsProps> {
    method constructor (line 12) | constructor(props: IRecentContactsProps) {
    method PersonComponent (line 16) | private PersonComponent(props: MgtTemplateProps) {
    method LoaderComponent (line 37) | private LoaderComponent(props: MgtTemplateProps) {
    method ErrorComponent (line 41) | private ErrorComponent(props: MgtTemplateProps) {
    method render (line 49) | public render(): React.ReactElement<IRecentContactsProps> {

FILE: source/react-recent-contacts/src/webparts/recentContacts/components/person/IPersonProps.ts
  type IPersonProps (line 4) | interface IPersonProps {

FILE: source/react-recent-contacts/src/webparts/recentContacts/components/person/IPersonState.ts
  type IPersonState (line 1) | interface IPersonState {

FILE: source/react-recent-contacts/src/webparts/recentContacts/components/person/Person.tsx
  class Person (line 6) | class Person extends React.Component<IPersonProps, IPersonState> {
    method constructor (line 7) | constructor(props: IPersonProps) {
    method componentDidMount (line 40) | public componentDidMount(): void {
    method render (line 63) | public render(): React.ReactElement<IPersonProps> {

FILE: source/react-recent-contacts/src/webparts/recentContacts/loc/mystrings.d.ts
  type IRecentContactsWebPartStrings (line 1) | interface IRecentContactsWebPartStrings {

FILE: source/react-recently-used-documents/src/webparts/recentlyUsedDocuments/RecentlyUsedDocumentsWebPart.ts
  type IRecentlyUsedDocumentsWebPartProps (line 12) | interface IRecentlyUsedDocumentsWebPartProps {
  class RecentlyUsedDocumentsWebPart (line 17) | class RecentlyUsedDocumentsWebPart extends BaseClientSideWebPart<IRecent...
    method onInit (line 21) | public onInit(): Promise<void> {
    method render (line 32) | public render(): void {
    method dataVersion (line 50) | protected get dataVersion(): Version {
    method loadPropertyPaneResources (line 55) | protected async loadPropertyPaneResources(): Promise<void> {
    method getPropertyPaneConfiguration (line 66) | protected getPropertyPaneConfiguration(): IPropertyPaneConfiguration {

FILE: source/react-recently-used-documents/src/webparts/recentlyUsedDocuments/components/BrandIcons.ts
  type BrandIcons (line 4) | enum BrandIcons {

FILE: source/react-recently-used-documents/src/webparts/recentlyUsedDocuments/components/IRecentDocuments.ts
  type IRecentDocuments (line 6) | interface IRecentDocuments {
  type IRecentDocument (line 11) | interface IRecentDocument {
  type ResourceReference (line 18) | interface ResourceReference {
  type ResourceVisualization (line 24) | interface ResourceVisualization {
  type LastUsed (line 35) | interface LastUsed {

FILE: source/react-recently-used-documents/src/webparts/recentlyUsedDocuments/components/IRecentlyUsedDocumentsProps.ts
  type IRecentlyUsedDocumentsProps (line 6) | interface IRecentlyUsedDocumentsProps extends IRecentlyUsedDocumentsWebP...

FILE: source/react-recently-used-documents/src/webparts/recentlyUsedDocuments/components/IRecentlyUsedDocumentsState.ts
  type IRecentlyUsedDocumentsState (line 1) | interface IRecentlyUsedDocumentsState {

FILE: source/react-recently-used-documents/src/webparts/recentlyUsedDocuments/components/RecentlyUsedDocuments.tsx
  class RecentlyUsedDocuments (line 12) | class RecentlyUsedDocuments extends React.Component<IRecentlyUsedDocumen...
    method constructor (line 15) | constructor(props: IRecentlyUsedDocumentsProps) {
    method _fetchRecentDocuments (line 28) | private _fetchRecentDocuments() {
    method _processRecentDocuments (line 70) | private _processRecentDocuments(recentDocs: IRecentDocument[]): void {
    method _getTime (line 91) | private _getTime(date?: Date) {
    method _relativeDate (line 139) | private _relativeDate(crntDate: string): string {
    method componentDidMount (line 162) | public componentDidMount(): void {
    method componentDidUpdate (line 169) | public componentDidUpdate(prevProps: IRecentlyUsedDocumentsProps, prev...
    method render (line 178) | public render(): React.ReactElement<IRecentlyUsedDocumentsProps> {

FILE: source/react-recently-used-documents/src/webparts/recentlyUsedDocuments/loc/mystrings.d.ts
  type IRecentlyUsedDocumentsWebPartStrings (line 1) | interface IRecentlyUsedDocumentsWebPartStrings {

FILE: source/react-recently-visited-sites/src/webparts/recentlyVisitedSites/RecentlyVisitedSitesWebPart.ts
  type IRecentlyVisitedSitesWebPartProps (line 11) | interface IRecentlyVisitedSitesWebPartProps {
  class RecentlyVisitedSitesWebPart (line 15) | class RecentlyVisitedSitesWebPart extends BaseClientSideWebPart<IRecentl...
    method onInit (line 22) | public onInit(): Promise<void> {
    method render (line 42) | public render(): void {
    method dataVersion (line 59) | protected get dataVersion(): Version {
    method getPropertyPaneConfiguration (line 63) | protected getPropertyPaneConfiguration(): IPropertyPaneConfiguration {

FILE: source/react-recently-visited-sites/src/webparts/recentlyVisitedSites/components/IRecentWebs.ts
  type IRecentWebs (line 4) | interface IRecentWebs {
  type IRecentWeb (line 9) | interface IRecentWeb {
  type ResourceReference (line 16) | interface ResourceReference {
  type ResourceVisualization (line 19) | interface ResourceVisualization {
  type LastUsed (line 29) | interface LastUsed {

FILE: source/react-recently-visited-sites/src/webparts/recentlyVisitedSites/components/IRecentlyVisitedSitesProps.ts
  type IRecentlyVisitedSitesProps (line 6) | interface IRecentlyVisitedSitesProps extends IRecentlyVisitedSitesWebPar...

FILE: source/react-recently-visited-sites/src/webparts/recentlyVisitedSites/components/IRecentlyVisitedSitesState.ts
  type IRecentlyVisitedSitesState (line 3) | interface IRecentlyVisitedSitesState {

FILE: source/react-recently-visited-sites/src/webparts/recentlyVisitedSites/components/IWebs.ts
  type IWebs (line 1) | interface IWebs {

FILE: source/react-recently-visited-sites/src/webparts/recentlyVisitedSites/components/RecentlyVisitedSites.tsx
  class RecentlyVisitedSites (line 10) | class RecentlyVisitedSites extends React.Component<IRecentlyVisitedSites...
    method constructor (line 15) | constructor(props: IRecentlyVisitedSitesProps) {
    method _fetchRecentSites (line 28) | private _fetchRecentSites() {
    method _processRecentSites (line 67) | private _processRecentSites(recentWebs: IRecentWeb[]): void {
    method _updateSitePath (line 91) | private _updateSitePath(path: string): string {
    method componentDidMount (line 113) | public componentDidMount(): void {
    method render (line 120) | public render(): React.ReactElement<IRecentlyVisitedSitesProps> {

FILE: source/react-recently-visited-sites/src/webparts/recentlyVisitedSites/loc/mystrings.d.ts
  type IRecentlyVisitedSitesWebPartStrings (line 1) | interface IRecentlyVisitedSitesWebPartStrings {

FILE: source/react-site-information/src/webparts/siteInformation/ISiteInformationWebPartProps.ts
  type ISiteInformationWebPartProps (line 4) | interface ISiteInformationWebPartProps {

FILE: source/react-site-information/src/webparts/siteInformation/SiteInformationWebPart.ts
  class SiteInformationWebPart (line 13) | class SiteInformationWebPart extends BaseClientSideWebPart<ISiteInformat...
    method onInit (line 19) | public onInit(): Promise<void> {
    method propertiesMetadata (line 41) | protected get propertiesMetadata(): IWebPartPropertiesMetadata {
    method render (line 50) | public render(): void {
    method dataVersion (line 82) | protected get dataVersion(): Version {
    method loadPropertyPaneResources (line 87) | protected async loadPropertyPaneResources(): Promise<void> {
    method getPropertyPaneConfiguration (line 104) | protected getPropertyPaneConfiguration(): IPropertyPaneConfiguration {
    method onAfterPropertyPaneChangesApplied (line 155) | protected onAfterPropertyPaneChangesApplied(): void {
    method needsConfiguration (line 160) | private needsConfiguration(): boolean {

FILE: source/react-site-information/src/webparts/siteInformation/components/ISiteInformationProps.ts
  type ISiteInformationProps (line 1) | interface ISiteInformationProps {

FILE: source/react-site-information/src/webparts/siteInformation/components/SiteInformation.tsx
  class SiteInformation (line 17) | class SiteInformation extends React.Component<ISiteInformationProps, {}> {
    method constructor (line 19) | constructor(props: ISiteInformationProps) {
    method render (line 23) | public render(): React.ReactElement<ISiteInformationProps> {
    method getInitials (line 63) | private getInitials(fullName: string): string {

FILE: source/react-site-information/src/webparts/siteInformation/loc/mystrings.d.ts
  type ISiteInformationWebPartStrings (line 1) | interface ISiteInformationWebPartStrings {

FILE: source/react-tiles/src/webparts/tiles/ITileInfo.ts
  type ITileInfo (line 1) | interface ITileInfo {
  type LinkTarget (line 9) | enum LinkTarget {

FILE: source/react-tiles/src/webparts/tiles/TilesWebPart.ts
  type ITilesWebPartProps (line 12) | interface ITilesWebPartProps {
  class TilesWebPart (line 18) | class TilesWebPart extends BaseClientSideWebPart<ITilesWebPartProps> {
    method render (line 30) | public render(): void {
    method dataVersion (line 48) | protected get dataVersion(): Version {
    method loadPropertyPaneResources (line 53) | protected async loadPropertyPaneResources(): Promise<void> {
    method getPropertyPaneConfiguration (line 70) | protected getPropertyPaneConfiguration(): IPropertyPaneConfiguration {

FILE: source/react-tiles/src/webparts/tiles/components/ITilesProps.ts
  type ITilesProps (line 4) | interface ITilesProps extends ITilesWebPartProps {

FILE: source/react-tiles/src/webparts/tiles/components/Tile/ITileProps.ts
  type ITileProps (line 3) | interface ITileProps {

FILE: source/react-tiles/src/webparts/tiles/components/Tile/Tile.tsx
  class Tile (line 6) | class Tile extends React.Component<ITileProps, {}> {
    method render (line 7) | public render(): React.ReactElement<ITileProps> {

FILE: source/react-tiles/src/webparts/tiles/components/Tiles.tsx
  class Tiles (line 9) | class Tiles extends React.Component<ITilesProps, {}> {
    method render (line 11) | public render(): React.ReactElement<ITilesProps> {

FILE: source/react-tiles/src/webparts/tiles/loc/mystrings.d.ts
  type ITilesWebPartStrings (line 1) | interface ITilesWebPartStrings {

FILE: source/react-weather/src/webparts/weather/WeatherWebPart.ts
  type IWeatherWebPartProps (line 15) | interface IWeatherWebPartProps {
  class WeatherWebPart (line 21) | class WeatherWebPart extends BaseClientSideWebPart<IWeatherWebPartProps> {
    method render (line 23) | public render(): void {
    method onDispose (line 40) | protected onDispose(): void {
    method dataVersion (line 44) | protected get dataVersion(): Version {
    method getPropertyPaneConfiguration (line 48) | protected getPropertyPaneConfiguration(): IPropertyPaneConfiguration {
    method disableReactivePropertyChanges (line 96) | protected get disableReactivePropertyChanges(): boolean {
    method onAfterPropertyPaneChangesApplied (line 100) | protected onAfterPropertyPaneChangesApplied(): void {
    method _validateLocation (line 126) | private _validateLocation(value: string): string {
    method _needsConfiguration (line 142) | private _needsConfiguration(): boolean {

FILE: source/react-weather/src/webparts/weather/components/IWeatherData.ts
  type IWeatherData (line 1) | interface IWeatherData {
  type IWeatherLocation (line 9) | interface IWeatherLocation {
  type IWeatherDescription (line 14) | interface IWeatherDescription {
  type IWeatherCondition (line 20) | interface IWeatherCondition {

FILE: source/react-weather/src/webparts/weather/components/IWeatherProps.ts
  type IWeatherProps (line 3) | interface IWeatherProps {

FILE: source/react-weather/src/webparts/weather/components/IWeatherState.ts
  type IWeatherState (line 6) | interface IWeatherState {

FILE: source/react-weather/src/webparts/weather/components/Weather.tsx
  class Weather (line 22) | class Weather extends React.Component < IWeatherProps, IWeatherState > {
    method constructor (line 23) | constructor(props: IWeatherProps) {
    method _loadWeatherInfo (line 37) | private _loadWeatherInfo(location: string, unit: string, apikey: strin...
    method componentDidMount (line 117) | public componentDidMount(): void {
    method componentWillReceiveProps (line 125) | public componentWillReceiveProps(nextProps: IWeatherProps): void {
    method render (line 133) | public render(): React.ReactElement<IWeatherProps> {

FILE: source/react-weather/src/webparts/weather/loc/mystrings.d.ts
  type IWeatherWebPartStrings (line 1) | interface IWeatherWebPartStrings {

FILE: source/react-world-clock/src/webparts/worldClock/IWorldClockWebPartProps.ts
  type IWorldClockWebPartProps (line 1) | interface IWorldClockWebPartProps {

FILE: source/react-world-clock/src/webparts/worldClock/WorldClockWebPart.ts
  class WorldClockWebPart (line 14) | class WorldClockWebPart extends BaseClientSideWebPart<IWorldClockWebPart...
    method render (line 16) | public render(): void {
    method dataVersion (line 35) | protected get dataVersion(): Version {
    method getPropertyPaneConfiguration (line 39) | protected getPropertyPaneConfiguration(): IPropertyPaneConfiguration {
    method getTimeZones (line 65) | private getTimeZones(): Array<IPropertyPaneDropdownOption> {

FILE: source/react-world-clock/src/webparts/worldClock/components/Clock.tsx
  type IClockProps (line 5) | interface IClockProps {
  type IClockState (line 10) | interface IClockState {
  class Clock (line 14) | class Clock extends React.Component<IClockProps, IClockState> {
    method constructor (line 18) | constructor(props: IClockProps) {
    method componentDidMount (line 25) | public componentDidMount(): void {
    method componentWillUnmount (line 29) | public componentWillUnmount(): void {
    method render (line 33) | public render(): React.ReactElement<IClockProps> {
    method tick (line 80) | private tick(): void {
    method getDateTimeWithOffset (line 87) | private getDateTimeWithOffset(): Date {

FILE: source/react-world-clock/src/webparts/worldClock/components/IWorldClockProps.ts
  type IWorldClockProps (line 1) | interface IWorldClockProps {

FILE: source/react-world-clock/src/webparts/worldClock/components/Timezones.ts
  type ITimeZone (line 1) | interface ITimeZone {
  class TimeZones (line 8) | class TimeZones {

FILE: source/react-world-clock/src/webparts/worldClock/components/WorldClock.tsx
  class WorldClock (line 12) | class WorldClock extends React.Component < IWorldClockProps, {} > {
    method render (line 14) | public render(): React.ReactElement<IWorldClockProps> {
    method convertTimeZoneIdToOffset (line 26) | private convertTimeZoneIdToOffset(id: number): number {

FILE: source/react-world-clock/src/webparts/worldClock/loc/mystrings.d.ts
  type IWorldClockWebPartStrings (line 1) | interface IWorldClockWebPartStrings {
Condensed preview — 894 files, each showing path, character count, and a content snippet. Download the .json file or copy for the full structured content (4,677K chars).
[
  {
    "path": ".deployment",
    "chars": 35,
    "preview": "[config]\nproject = assets/functions"
  },
  {
    "path": ".github/CONTRIBUTING.md",
    "chars": 3998,
    "preview": "# Contribute to SharePoint Starter Kit  Solution\nBelow instructions explain how you can prepare your environment to cont"
  },
  {
    "path": ".github/ISSUE_TEMPLATE/---bug.md",
    "chars": 3219,
    "preview": "---\nname: \"\\U0001F41E Bug\"\nabout: Report an anomaly or unexpected behavior from this repository.\ntitle: ''\nlabels: ''\nas"
  },
  {
    "path": ".github/ISSUE_TEMPLATE/---enhancement.md",
    "chars": 840,
    "preview": "---\nname: \"\\U0001F4A1 Enhancement\"\nabout: Suggest an enhancement to this repository\ntitle: ''\nlabels: ''\nassignees: ''\n\n"
  },
  {
    "path": ".github/ISSUE_TEMPLATE/--question.md",
    "chars": 1868,
    "preview": "---\nname: \"❓ Question\"\nabout: Ask a question regarding the PnP Starter Kit\ntitle: ''\nlabels: ''\nassignees: ''\n\n---\n\n> Pl"
  },
  {
    "path": ".github/ISSUE_TEMPLATE.md",
    "chars": 2363,
    "preview": "> Thank you for reporting an issue or suggesting an enhancement. We appreciate your feedback - to help the team to under"
  },
  {
    "path": ".github/PULL_REQUEST_TEMPLATE.md",
    "chars": 923,
    "preview": "#### Category\n- [ ] Bug Fix\n- [ ] New Feature\n- Related issues: fixes #X, partially #Y, mentioned in #Z\n\n> For the above"
  },
  {
    "path": ".gitignore",
    "chars": 3375,
    "preview": "# Logs\nlogs\n*.log\nnpm-debug.log*\nyarn-debug.log*\nyarn-error.log*\n\n# Runtime data\npids\n*.pid\n*.seed\n*.pid.lock\n\n# Directo"
  },
  {
    "path": ".tours/spo-solution-overview.tour",
    "chars": 30832,
    "preview": "{\n  \"title\": \"Solution Overview\",\n  \"steps\": [\n    {\n      \"directory\": \".\",\n      \"description\": \"# Welcome to the Shar"
  },
  {
    "path": "LICENSE",
    "chars": 1162,
    "preview": "    MIT License\n\n    Copyright (c) Microsoft Corporation. All rights reserved.\n\n    Permission is hereby granted, free o"
  },
  {
    "path": "README.md",
    "chars": 18698,
    "preview": "# SharePoint Starter Kit v3\r\n\r\nThe SharePoint Starter Kit (starter kit) is a comprehensive solution designed for SharePo"
  },
  {
    "path": "assets/designs/portalsitescript.js",
    "chars": 509,
    "preview": "{\n    \"$schema\": \"schema.json\",\n    \"actions\": [\n        {\n            \"verb\":\"createSPList\",\n            \"listName\":\"As"
  },
  {
    "path": "assets/designs/portaltheme.xml",
    "chars": 2834,
    "preview": "<Objs Version=\"1.1.0.1\" xmlns=\"http://schemas.microsoft.com/powershell/2004/04\">\n  <Obj RefId=\"0\">\n    <TN RefId=\"0\">\n  "
  },
  {
    "path": "assets/functions/applyportaltemplate/function.json",
    "chars": 207,
    "preview": "{\n    \"bindings\": [\n      {\n        \"name\": \"triggerInput\",\n        \"type\": \"queueTrigger\",\n        \"direction\": \"in\",\n "
  },
  {
    "path": "assets/functions/applyportaltemplate/modules/SharePointPnPPowerShellOnline/SharePointPnP.PowerShell.Online.Commands.Format.ps1xml",
    "chars": 54741,
    "preview": "<Configuration>\n  <ViewDefinitions>\n    <View>\n      <Name>Feature</Name>\n      <ViewSelectedBy>\n        <TypeName>Micro"
  },
  {
    "path": "assets/functions/applyportaltemplate/modules/SharePointPnPPowerShellOnline/SharePointPnP.PowerShell.Online.Commands.dll-help.xml",
    "chars": 2852741,
    "preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<helpItems schema=\"maml\" xmlns=\"http://msh\">\n  <command:command xmlns:maml=\"http"
  },
  {
    "path": "assets/functions/applyportaltemplate/modules/SharePointPnPPowerShellOnline/SharePointPnPPowerShellOnline.psd1",
    "chars": 8817,
    "preview": "@{\n    RootModule = 'SharePointPnP.PowerShell.Online.Commands.dll'\n    ModuleVersion = '2.25.1804.0'\n    Description = "
  },
  {
    "path": "assets/functions/applyportaltemplate/modules/SharePointPnPPowerShellOnline/SharePointPnPPowerShellOnlineAliases.psm1",
    "chars": 63,
    "preview": "Set-Alias -Name New-PnPSiteCollection -Value New-PnPTenantSite\n"
  },
  {
    "path": "assets/functions/applyportaltemplate/portal.xml",
    "chars": 11693,
    "preview": "<pnp:Provisioning xmlns:pnp=\"http://schemas.dev.office.com/PnP/2018/01/ProvisioningSchema\">\n  <pnp:Preferences Generator"
  },
  {
    "path": "assets/functions/applyportaltemplate/run.ps1",
    "chars": 278,
    "preview": "$in = Get-Content $triggerInput -Raw\nWrite-Output \"Incoming request for '$in'\"\nConnect-PnPOnline -AppId $env:SPO_AppId -"
  },
  {
    "path": "assets/functions/host.json",
    "chars": 28,
    "preview": "{\"swagger\":{\"enabled\":true}}"
  },
  {
    "path": "assets/readme.md",
    "chars": 28,
    "preview": "SP Starter Kit Assets folder"
  },
  {
    "path": "changelog.md",
    "chars": 463,
    "preview": "# SharePoint Starter Kit Changelog #\n\n**2023-02-22**\n* Release of V3 with all solutions updated to SPFx version 1.16.1\n\n"
  },
  {
    "path": "documentation/README.md",
    "chars": 579,
    "preview": "# SharePoint Starter Kit v3 Additional Documentation\n\n# Table of contents\n\n- [Tenant API Management](./api-management.md"
  },
  {
    "path": "documentation/api-management.md",
    "chars": 3509,
    "preview": "# Tenant API Management\n\nThe SPFx solution included with SP Starter Kit requires access to third party API's. Third part"
  },
  {
    "path": "documentation/common-provision-results.md",
    "chars": 13315,
    "preview": "# Common SP Starter Kit Provisioning results\n\nWhen provisioning SP Starter Kit following the [`deployment process`](../p"
  },
  {
    "path": "documentation/components/ext-alert.md",
    "chars": 311,
    "preview": "# Alert Application Customizer\n\nThis application customizer provides you the ability to show notifications on content pa"
  },
  {
    "path": "documentation/components/ext-classification.md",
    "chars": 2237,
    "preview": "# Site Classification Application Customizer\n\nThis application customizer provides you the ability to add a header with "
  },
  {
    "path": "documentation/components/ext-collab-discussnow.md",
    "chars": 3490,
    "preview": "# Discuss Now List View Command Set\n\nThis List View Command Set provides you the ability to add a custom dialog to start"
  },
  {
    "path": "documentation/components/ext-collab-footer.md",
    "chars": 3515,
    "preview": "# Collaboration Footer Application Customizer\n\nThis application customizer provides you the ability to include a footer "
  },
  {
    "path": "documentation/components/ext-portal-footer.md",
    "chars": 4253,
    "preview": "# Portal Footer Application Customizer\n\nThis application customizer provides you the ability to include a footer designe"
  },
  {
    "path": "documentation/components/ext-redirect.md",
    "chars": 383,
    "preview": "# Redirect Application Customizer\n\nThis application customizer provides you the ability to redirect from URL based on ma"
  },
  {
    "path": "documentation/components/lib-shared.md",
    "chars": 254,
    "preview": "# Starter Kit SPFx Shared Library\n\nA shared library that includes shared locatization strings, consumabled by any other "
  },
  {
    "path": "documentation/components/wp-banner.md",
    "chars": 1978,
    "preview": "# Banner web part\n\nThis web part provides you the ability to add a variable height image banner with a linkable title.\n\n"
  },
  {
    "path": "documentation/components/wp-followed-sites.md",
    "chars": 2254,
    "preview": "# Followed Sites webpart\n\nThis web part provides you the ability to display a list of site administrator defined number "
  },
  {
    "path": "documentation/components/wp-links.md",
    "chars": 2920,
    "preview": "# Links webpart\n\nThis web part provides you the ability to add a per instance listing of links with the ability to group"
  },
  {
    "path": "documentation/components/wp-lob-integration.md",
    "chars": 4810,
    "preview": "# LOB Integration webpart\n\nThis web part allows you to learn how to consume 3rd party APIs, secured with Azure Active Di"
  },
  {
    "path": "documentation/components/wp-people-directory.md",
    "chars": 1901,
    "preview": "# People Directory web part\n\nThis web part provides you the ability to add a searchable people directory. A people searc"
  },
  {
    "path": "documentation/components/wp-personal-calendar.md",
    "chars": 2493,
    "preview": "# Personal Calendar web part\n\nThis web part provides you the ability to add a particular user's personal calendar on a w"
  },
  {
    "path": "documentation/components/wp-personal-contacts.md",
    "chars": 2054,
    "preview": "# Personal Contacts web part\n\nThis web part provides you the ability to add a particular user's personal contacts on a w"
  },
  {
    "path": "documentation/components/wp-personal-email.md",
    "chars": 2072,
    "preview": "# Personal Email web part\n\nThis web part provides you the ability to add a particular user's personal email on a web pag"
  },
  {
    "path": "documentation/components/wp-personal-tasks.md",
    "chars": 2012,
    "preview": "# Personal Tasks web part\n\nThis web part provides you the ability to add a particular user's personal tasks on a web pag"
  },
  {
    "path": "documentation/components/wp-recent-contacts.md",
    "chars": 2052,
    "preview": "# Recent Contacts web part\n\nThis web part provides you the ability to display list of a particular user's recent contact"
  },
  {
    "path": "documentation/components/wp-recently-used-documents.md",
    "chars": 2151,
    "preview": "# Recently Used Documents web part\n\nThis web part provides you the ability to display a list of a particular user's rece"
  },
  {
    "path": "documentation/components/wp-recently-visited-sites.md",
    "chars": 2019,
    "preview": "# Recently Visited Sites web part\n\nThis web part provides you the ability to display a list of a particular user's recen"
  },
  {
    "path": "documentation/components/wp-site-information.md",
    "chars": 2902,
    "preview": "# Site Information web part\n\nThis web part provides you the ability to collect and present additional metadata on a web "
  },
  {
    "path": "documentation/components/wp-stock-information.md",
    "chars": 2864,
    "preview": "# Stock Information web part\n\nThis web part provides you the ability to display basic stock information for one publicly"
  },
  {
    "path": "documentation/components/wp-tiles.md",
    "chars": 2640,
    "preview": "# Tiles web part\n\nThis web part provides you the ability to add a per instance listing of tiled links. Tiles are stored "
  },
  {
    "path": "documentation/components/wp-weather-information.md",
    "chars": 2089,
    "preview": "# Weather Information web part\n\nThis web part provides you the ability to display basic weather information for one loca"
  },
  {
    "path": "documentation/components/wp-world-time.md",
    "chars": 1786,
    "preview": "# World Time web part\n\nThis web part provides you the ability to display basic clock for a given time zone on a web page"
  },
  {
    "path": "documentation/manual-deploy-sppkg-solution.md",
    "chars": 2443,
    "preview": "# Manually deploy the SP Starter Kit .sppkg SPFx solution packages to the tenant App Catalog\n\nThe SP Starter Kit [`deplo"
  },
  {
    "path": "documentation/modifying-spfx-solutions.md",
    "chars": 735,
    "preview": "# Notes and suggestions when modifying included SPFx solutions\n\nThis project includes multiple SPFx solutions including "
  },
  {
    "path": "documentation/tenant-settings.md",
    "chars": 2941,
    "preview": "# Preparing your tenant for the PnP SharePoint Starter Kit\n\nIn this document you can find detailed information about pre"
  },
  {
    "path": "documentation/term-store.md",
    "chars": 1720,
    "preview": "# Term Store Considerations\n\nFor a successful deployment of the SP Starter Kit, certain term store considerations exist."
  },
  {
    "path": "lerna.json",
    "chars": 62,
    "preview": "{\n  \"packages\": [\n    \"source/**\"\n  ],\n  \"version\": \"0.0.0\"\n}\n"
  },
  {
    "path": "package/readme.md",
    "chars": 339,
    "preview": "## SharePoint Framework solution package - SP Starter Kit V1\n\nIt is recommended to package the solution as needed using "
  },
  {
    "path": "package.json",
    "chars": 221,
    "preview": "{\n  \"name\": \"root\",\n  \"private\": true,\n  \"scripts\": {\n    \"initialize\": \"lerna bootstrap\",\n    \"localization\": \"lerna ru"
  },
  {
    "path": "provisioning/.vscode/launch.json",
    "chars": 1500,
    "preview": "{\n    // Use IntelliSense to learn about possible attributes.\n    // Hover to view descriptions of existing attributes.\n"
  },
  {
    "path": "provisioning/readme-sp2019.md",
    "chars": 1999,
    "preview": "# SP Starter Kit Provisioning Guidance - SharePoint 2019 Only - Starter Kit V2 only\n\nProvided documentation for SharePoi"
  },
  {
    "path": "provisioning/readme-spfx-only.md",
    "chars": 3982,
    "preview": "# SP Starter Kit Provisioning Guidance - SharePoint Online - SPFx solution packages only\n\nThe following documentation pr"
  },
  {
    "path": "provisioning/readme.md",
    "chars": 6757,
    "preview": "# SP Starter Kit Provisioning Guidance - SharePoint Online\n\nThe following documentation provides guidance related to the"
  },
  {
    "path": "sample-lob-service/SharePointPnP.LobScenario/.gitignore",
    "chars": 5717,
    "preview": "## Ignore Visual Studio temporary files, build results, and\n## files generated by popular Visual Studio add-ons.\n##\n## G"
  },
  {
    "path": "sample-lob-service/SharePointPnP.LobScenario/Controllers/CustomersController.cs",
    "chars": 2481,
    "preview": "using System;\nusing System.Collections.Generic;\nusing System.Linq;\nusing System.Threading.Tasks;\nusing Microsoft.AspNet"
  },
  {
    "path": "sample-lob-service/SharePointPnP.LobScenario/Models/Customer.cs",
    "chars": 338,
    "preview": "using System;\nusing System.Collections.Generic;\nusing System.Linq;\nusing System.Threading.Tasks;\n\nnamespace SharePointP"
  },
  {
    "path": "sample-lob-service/SharePointPnP.LobScenario/Models/LobResponse.cs",
    "chars": 322,
    "preview": "using System;\nusing System.Collections.Generic;\nusing System.Linq;\nusing System.Threading.Tasks;\n\nnamespace SharePointP"
  },
  {
    "path": "sample-lob-service/SharePointPnP.LobScenario/Program.cs",
    "chars": 430,
    "preview": "using Microsoft.AspNetCore.Hosting;\nusing Microsoft.Extensions.Hosting;\n\nnamespace SharePointPnP.LobScenario\n{\n\tpublic c"
  },
  {
    "path": "sample-lob-service/SharePointPnP.LobScenario/README.md",
    "chars": 362,
    "preview": "\n# PnP SharePoint Starter Kit - LOB Service\n\nThis folder contains an ASP.NET Core 3.1 WebAPI application that emulates a"
  },
  {
    "path": "sample-lob-service/SharePointPnP.LobScenario/SharePointPnP.LobScenario.csproj",
    "chars": 331,
    "preview": "<Project Sdk=\"Microsoft.NET.Sdk.Web\">\n\n  <PropertyGroup>\n    <TargetFramework>netcoreapp3.1</TargetFramework>\n    <Root"
  },
  {
    "path": "sample-lob-service/SharePointPnP.LobScenario/SharePointPnP.LobScenario.sln",
    "chars": 1127,
    "preview": "\nMicrosoft Visual Studio Solution File, Format Version 12.00\n# Visual Studio Version 16\nVisualStudioVersion = 16.0.2951"
  },
  {
    "path": "sample-lob-service/SharePointPnP.LobScenario/Startup.cs",
    "chars": 2562,
    "preview": "using Microsoft.AspNetCore.Authentication;\nusing Microsoft.AspNetCore.Authentication.AzureAD.UI;\nusing Microsoft.AspNetC"
  },
  {
    "path": "sample-lob-service/SharePointPnP.LobScenario/appsettings.json",
    "chars": 343,
    "preview": "{\n\t\"AzureAd\": {\n\t\t\"Instance\": \"https://login.microsoftonline.com/\",\n\t\t\"TenantId\": \"22222222-2222-2222-2222-222222222222\""
  },
  {
    "path": "source/README.md",
    "chars": 5091,
    "preview": "# Individual solutions of the Starter Kit\n\nStarting from SharePoint Starter Kit v2, each web part and be taken into use "
  },
  {
    "path": "source/js-application-redirect/.editorconfig",
    "chars": 475,
    "preview": "# EditorConfig helps developers define and maintain consistent\n# coding styles between different editors and IDEs\n# edit"
  },
  {
    "path": "source/js-application-redirect/.eslintrc.js",
    "chars": 19793,
    "preview": "require('@rushstack/eslint-config/patch/modern-module-resolution');\nmodule.exports = {\n  extends: ['@microsoft/eslint-co"
  },
  {
    "path": "source/js-application-redirect/.gitignore",
    "chars": 374,
    "preview": "# Logs\nlogs\n*.log\nnpm-debug.log*\n\n# Dependency directories\nnode_modules\n\n# Build generated files\ndist\nlib\nrelease\nsoluti"
  },
  {
    "path": "source/js-application-redirect/.npmignore",
    "chars": 98,
    "preview": "!dist\nconfig\n\ngulpfile.js\n\nrelease\nsrc\ntemp\n\ntsconfig.json\ntslint.json\n\n*.log\n\n.yo-rc.json\n.vscode"
  },
  {
    "path": "source/js-application-redirect/.vscode/launch.json",
    "chars": 657,
    "preview": "{\n  \"version\": \"0.2.0\",\n  \"configurations\": [\n    {\n      \"name\": \"Hosted workbench\",\n      \"type\": \"pwa-chrome\",\n      "
  },
  {
    "path": "source/js-application-redirect/.vscode/settings.json",
    "chars": 402,
    "preview": "// Place your settings in this file to overwrite default and user settings.\n{\n  // Configure glob patterns for excluding"
  },
  {
    "path": "source/js-application-redirect/.yo-rc.json",
    "chars": 511,
    "preview": "{\n  \"@microsoft/generator-sharepoint\": {\n    \"plusBeta\": false,\n    \"isCreatingSolution\": true,\n    \"nodeVersion\": \"16.1"
  },
  {
    "path": "source/js-application-redirect/README.md",
    "chars": 5721,
    "preview": "# Redirect Application Customizer\n\nRedirect from URL based on mapping from a list on the site. Can be used to automatica"
  },
  {
    "path": "source/js-application-redirect/config/config.json",
    "chars": 551,
    "preview": "{\n  \"$schema\": \"https://developer.microsoft.com/json-schemas/spfx-build/config.2.0.schema.json\",\n  \"version\": \"2.0\",\n  \""
  },
  {
    "path": "source/js-application-redirect/config/deploy-azure-storage.json",
    "chars": 270,
    "preview": "{\n  \"$schema\": \"https://developer.microsoft.com/json-schemas/spfx-build/deploy-azure-storage.schema.json\",\n  \"workingDir"
  },
  {
    "path": "source/js-application-redirect/config/package-solution.json",
    "chars": 1310,
    "preview": "{\n  \"$schema\": \"https://developer.microsoft.com/json-schemas/spfx-build/package-solution.schema.json\",\n  \"solution\": {\n "
  },
  {
    "path": "source/js-application-redirect/config/sass.json",
    "chars": 93,
    "preview": "{\n    \"$schema\": \"https://developer.microsoft.com/json-schemas/core-build/sass.schema.json\"\n}"
  },
  {
    "path": "source/js-application-redirect/config/serve.json",
    "chars": 903,
    "preview": "{\n  \"$schema\": \"https://developer.microsoft.com/json-schemas/spfx-build/spfx-serve.schema.json\",\n  \"port\": 4321,\n  \"http"
  },
  {
    "path": "source/js-application-redirect/config/write-manifests.json",
    "chars": 143,
    "preview": "{\n  \"$schema\": \"https://developer.microsoft.com/json-schemas/spfx-build/write-manifests.schema.json\",\n  \"cdnBasePath\": \""
  },
  {
    "path": "source/js-application-redirect/gulpfile.js",
    "chars": 406,
    "preview": "'use strict';\n\nconst build = require('@microsoft/sp-build-web');\n\nbuild.addSuppression(`Warning - [sass] The local CSS c"
  },
  {
    "path": "source/js-application-redirect/package.json",
    "chars": 1103,
    "preview": "{\n  \"name\": \"js-application-redirect\",\n  \"version\": \"3.0.0\",\n  \"private\": true,\n  \"main\": \"lib/index.js\",\n  \"engines\": {"
  },
  {
    "path": "source/js-application-redirect/sharepoint/assets/ClientSideInstance.xml",
    "chars": 111,
    "preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<Elements xmlns=\"http://schemas.microsoft.com/sharepoint/\">\n</Elements>\n"
  },
  {
    "path": "source/js-application-redirect/sharepoint/assets/elements.xml",
    "chars": 412,
    "preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<Elements xmlns=\"http://schemas.microsoft.com/sharepoint/\">\n    <CustomAction\n   "
  },
  {
    "path": "source/js-application-redirect/src/extensions/redirect/IRedirectApplicationCustomizerProperties.ts",
    "chars": 166,
    "preview": "export interface IRedirectApplicationCustomizerProperties {\n    // Defines the Title of the list that holds the redirect"
  },
  {
    "path": "source/js-application-redirect/src/extensions/redirect/IRedirection.ts",
    "chars": 368,
    "preview": "// this interface defines a redirection item\nexport interface IRedirection {\n    // defines the relative URL of the sour"
  },
  {
    "path": "source/js-application-redirect/src/extensions/redirect/RedirectApplicationCustomizer.manifest.json",
    "chars": 739,
    "preview": "{\n  \"$schema\": \"https://developer.microsoft.com/json-schemas/spfx/client-side-extension-manifest.schema.json\",\n\n  \"id\": "
  },
  {
    "path": "source/js-application-redirect/src/extensions/redirect/RedirectApplicationCustomizer.ts",
    "chars": 7178,
    "preview": "import { override } from '@microsoft/decorators';\nimport { Log } from '@microsoft/sp-core-library';\nimport {\n  BaseAppli"
  },
  {
    "path": "source/js-application-redirect/src/extensions/redirect/loc/en-us.js",
    "chars": 230,
    "preview": "define([], function() {\n  return {\n    FieldRedirectionEnabledTitle: \"Redirection Enabled\",\n    FieldDestinationUrlTitle"
  },
  {
    "path": "source/js-application-redirect/src/extensions/redirect/loc/fr-fr.js",
    "chars": 235,
    "preview": "define([], function() {\n  return {\n    FieldRedirectionEnabledTitle: \"Redirection activée\",\n    FieldDestinationUrlTitle"
  },
  {
    "path": "source/js-application-redirect/src/extensions/redirect/loc/myStrings.d.ts",
    "chars": 319,
    "preview": "declare interface IRedirectApplicationCustomizerStrings {\n  FieldRedirectionEnabledTitle: string;\n  FieldDestinationUrlT"
  },
  {
    "path": "source/js-application-redirect/src/index.ts",
    "chars": 89,
    "preview": "// A file is required to be in the root of the /src directory by the TypeScript compiler\n"
  },
  {
    "path": "source/js-application-redirect/tsconfig.json",
    "chars": 770,
    "preview": "{\n  \"extends\": \"./node_modules/@microsoft/rush-stack-compiler-4.5/includes/tsconfig-web.json\",\n  \"compilerOptions\": {\n  "
  },
  {
    "path": "source/library-starter-kit-shared/.editorconfig",
    "chars": 475,
    "preview": "# EditorConfig helps developers define and maintain consistent\n# coding styles between different editors and IDEs\n# edit"
  },
  {
    "path": "source/library-starter-kit-shared/.eslintrc.js",
    "chars": 204,
    "preview": "require('@rushstack/eslint-config/patch/modern-module-resolution');\nmodule.exports = {\n  extends: ['@microsoft/eslint-co"
  },
  {
    "path": "source/library-starter-kit-shared/.gitignore",
    "chars": 341,
    "preview": "# Logs\nlogs\n*.log\nnpm-debug.log*\n\n# Dependency directories\nnode_modules\n\n# Build generated files\ndist\nlib\ntemp\n\n# Covera"
  },
  {
    "path": "source/library-starter-kit-shared/.npmignore",
    "chars": 99,
    "preview": "!dist\nconfig\n\ngulpfile.js\n\nrelease\nsrc\ntemp\n\ntsconfig.json\ntslint.json\n\n*.log\n\n.yo-rc.json\n.vscode\n"
  },
  {
    "path": "source/library-starter-kit-shared/.vscode/extensions.json",
    "chars": 65,
    "preview": "{\n  \"recommendations\": [\n    \"msjsdiag.debugger-for-chrome\"\n  ]\n}"
  },
  {
    "path": "source/library-starter-kit-shared/.vscode/launch.json",
    "chars": 862,
    "preview": "{\n  /**\n   * Install Chrome Debugger Extension for Visual Studio Code to debug your components with the\n   * Chrome brow"
  },
  {
    "path": "source/library-starter-kit-shared/.vscode/settings.json",
    "chars": 402,
    "preview": "// Place your settings in this file to overwrite default and user settings.\n{\n  // Configure glob patterns for excluding"
  },
  {
    "path": "source/library-starter-kit-shared/.yo-rc.json",
    "chars": 473,
    "preview": "{\n  \"@microsoft/generator-sharepoint\": {\n    \"isCreatingSolution\": true,\n    \"environment\": \"spo\",\n    \"version\": \"1.16."
  },
  {
    "path": "source/library-starter-kit-shared/README.md",
    "chars": 1980,
    "preview": "# Library for shared features for SharePoint Online\n\n## Summary\n\nA SharePoint Framework shared library that includes an "
  },
  {
    "path": "source/library-starter-kit-shared/config/config.json",
    "chars": 515,
    "preview": "{\n  \"$schema\": \"https://developer.microsoft.com/json-schemas/spfx-build/config.2.0.schema.json\",\n  \"version\": \"2.0\",\n  \""
  },
  {
    "path": "source/library-starter-kit-shared/config/deploy-azure-storage.json",
    "chars": 273,
    "preview": "{\n  \"$schema\": \"https://developer.microsoft.com/json-schemas/spfx-build/deploy-azure-storage.schema.json\",\n  \"workingDir"
  },
  {
    "path": "source/library-starter-kit-shared/config/package-solution.json",
    "chars": 1317,
    "preview": "{\n  \"$schema\": \"https://developer.microsoft.com/json-schemas/spfx-build/package-solution.schema.json\",\n  \"solution\": {\n "
  },
  {
    "path": "source/library-starter-kit-shared/config/sass.json",
    "chars": 93,
    "preview": "{\n    \"$schema\": \"https://developer.microsoft.com/json-schemas/core-build/sass.schema.json\"\n}"
  },
  {
    "path": "source/library-starter-kit-shared/config/serve.json",
    "chars": 211,
    "preview": "{\n  \"$schema\": \"https://developer.microsoft.com/json-schemas/spfx-build/spfx-serve.schema.json\",\n  \"port\": 43211,\n  \"htt"
  },
  {
    "path": "source/library-starter-kit-shared/config/write-manifests.json",
    "chars": 143,
    "preview": "{\n  \"$schema\": \"https://developer.microsoft.com/json-schemas/spfx-build/write-manifests.schema.json\",\n  \"cdnBasePath\": \""
  },
  {
    "path": "source/library-starter-kit-shared/gulpfile.generatelocalkeys.js",
    "chars": 3090,
    "preview": "const gulp = require('gulp');\nconst build = require('@microsoft/sp-build-web');\nconst fs = require('fs');\nconst path = r"
  },
  {
    "path": "source/library-starter-kit-shared/gulpfile.js",
    "chars": 470,
    "preview": "'use strict';\n\nconst gulp = require('gulp');\nconst build = require('@microsoft/sp-build-web');\nbuild.addSuppression(`War"
  },
  {
    "path": "source/library-starter-kit-shared/package.json",
    "chars": 927,
    "preview": "{\n  \"name\": \"@starter-kit/shared-library\",\n  \"version\": \"3.0.0\",\n  \"private\": false,\n  \"main\": \"lib/index.js\",\n  \"engine"
  },
  {
    "path": "source/library-starter-kit-shared/src/index.ts",
    "chars": 165,
    "preview": "export { SpStarterKitSharedLibrary } from './libraries/spStarterKitShared/SpStarterKitSharedLibrary';\nexport * from './l"
  },
  {
    "path": "source/library-starter-kit-shared/src/libraries/spStarterKitShared/SpStarterKitSharedLibrary.manifest.json",
    "chars": 242,
    "preview": "{\n  \"id\": \"849381c3-2209-441c-a559-2dc6a5c0cb63\",\n  \"alias\": \"SpStarterKitSharedLibrary\",\n  \"componentType\": \"Library\",\n"
  },
  {
    "path": "source/library-starter-kit-shared/src/libraries/spStarterKitShared/SpStarterKitSharedLibrary.ts",
    "chars": 568,
    "preview": "import * as strings from 'SpStarterKitSharedLibraryStrings';\nimport { LocaleKeys } from './loc/LocaleKeys';\n\nexport clas"
  },
  {
    "path": "source/library-starter-kit-shared/src/libraries/spStarterKitShared/loc/LocaleKeys.ts",
    "chars": 1570,
    "preview": "export enum LocaleKeys {\n  /**\n   * Label value: \"Web part configuration\"\n   */\n  PropertyPaneDescription = \"PropertyPan"
  },
  {
    "path": "source/library-starter-kit-shared/src/libraries/spStarterKitShared/loc/de-de.js",
    "chars": 939,
    "preview": "define([], function() {\n  return {\n    // general labels\n    \"PropertyPaneDescription\": \"Web Part Konfiguration\",\n\n    /"
  },
  {
    "path": "source/library-starter-kit-shared/src/libraries/spStarterKitShared/loc/en-us.js",
    "chars": 1059,
    "preview": "define([], function() {\n    return {\n        // general labels\n        \"PropertyPaneDescription\": \"Web part configuratio"
  },
  {
    "path": "source/library-starter-kit-shared/src/libraries/spStarterKitShared/loc/es-es.js",
    "chars": 995,
    "preview": "define([], function() {\n  return {\n    // general labels\n    \"PropertyPaneDescription\": \"Configuración del elemento web\""
  },
  {
    "path": "source/library-starter-kit-shared/src/libraries/spStarterKitShared/loc/fr-fr.js",
    "chars": 945,
    "preview": "define([], function() {\n  return {\n    // general labels\n    \"PropertyPaneDescription\": \"Web part configuration\",\n\n    /"
  },
  {
    "path": "source/library-starter-kit-shared/src/libraries/spStarterKitShared/loc/mystrings.d.ts",
    "chars": 182,
    "preview": "declare interface ISpStarterKitSharedLibraryStrings {}\n\ndeclare module 'SpStarterKitSharedLibraryStrings' {\n  const stri"
  },
  {
    "path": "source/library-starter-kit-shared/src/libraries/spStarterKitShared/loc/nb-no.js",
    "chars": 904,
    "preview": "define([], function() {\n  return {\n    // general labels\n    \"PropertyPaneDescription\": \"Webdel konfigurasjon\",\n\n    // "
  },
  {
    "path": "source/library-starter-kit-shared/src/libraries/spStarterKitShared/loc/nl-nl.js",
    "chars": 946,
    "preview": "define([], function() {\n  return {\n    // general labels\n    \"PropertyPaneDescription\": \"Webpart configuratie\",\n\n    // "
  },
  {
    "path": "source/library-starter-kit-shared/src/libraries/spStarterKitShared/loc/sv-se.js",
    "chars": 967,
    "preview": "define([], function() {\n  return {\n    // general labels\n    \"PropertyPaneDescription\": \"Webbdelkonfiguration\",\n\n    // "
  },
  {
    "path": "source/library-starter-kit-shared/src/libraries/spStarterKitShared/loc/tr-tr.js",
    "chars": 947,
    "preview": "define([], function() {\n  return {\n    // general labels\n    \"PropertyPaneDescription\": \"Web bölümü yapılandırması\",\n\n  "
  },
  {
    "path": "source/library-starter-kit-shared/tsconfig.json",
    "chars": 798,
    "preview": "{\n  \"extends\": \"./node_modules/@microsoft/rush-stack-compiler-4.5/includes/tsconfig-web.json\",\n  \"compilerOptions\": {\n  "
  },
  {
    "path": "source/mgt-spfx/README.md",
    "chars": 312,
    "preview": "# Microsoft Graph Toolkit SPFx Package\n\n## Summary\n\nCertain webparts included in the Starter Kit include a dependency on"
  },
  {
    "path": "source/react-application-alerts/.editorconfig",
    "chars": 475,
    "preview": "# EditorConfig helps developers define and maintain consistent\n# coding styles between different editors and IDEs\n# edit"
  },
  {
    "path": "source/react-application-alerts/.eslintrc.js",
    "chars": 19793,
    "preview": "require('@rushstack/eslint-config/patch/modern-module-resolution');\nmodule.exports = {\n  extends: ['@microsoft/eslint-co"
  },
  {
    "path": "source/react-application-alerts/.gitignore",
    "chars": 340,
    "preview": "# Logs\nlogs\n*.log\nnpm-debug.log*\n\n# Dependency directories\nnode_modules\n\n# Build generated files\ndist\nlib\nrelease\nsoluti"
  },
  {
    "path": "source/react-application-alerts/.npmignore",
    "chars": 99,
    "preview": "!dist\nconfig\n\ngulpfile.js\n\nrelease\nsrc\ntemp\n\ntsconfig.json\ntslint.json\n\n*.log\n\n.yo-rc.json\n.vscode\n"
  },
  {
    "path": "source/react-application-alerts/.vscode/launch.json",
    "chars": 657,
    "preview": "{\n  \"version\": \"0.2.0\",\n  \"configurations\": [\n    {\n      \"name\": \"Hosted workbench\",\n      \"type\": \"pwa-chrome\",\n      "
  },
  {
    "path": "source/react-application-alerts/.vscode/settings.json",
    "chars": 402,
    "preview": "// Place your settings in this file to overwrite default and user settings.\n{\n  // Configure glob patterns for excluding"
  },
  {
    "path": "source/react-application-alerts/.yo-rc.json",
    "chars": 543,
    "preview": "{\n  \"@microsoft/generator-sharepoint\": {\n    \"plusBeta\": false,\n    \"isCreatingSolution\": true,\n    \"nodeVersion\": \"16.1"
  },
  {
    "path": "source/react-application-alerts/README.md",
    "chars": 6044,
    "preview": "# Alerts Application Customizers\n\nThis application customizer provides you the ability to show notifications on content "
  },
  {
    "path": "source/react-application-alerts/config/config.json",
    "chars": 603,
    "preview": "{\n  \"$schema\": \"https://developer.microsoft.com/json-schemas/spfx-build/config.2.0.schema.json\",\n  \"version\": \"2.0\",\n  \""
  },
  {
    "path": "source/react-application-alerts/config/deploy-azure-storage.json",
    "chars": 271,
    "preview": "{\n  \"$schema\": \"https://developer.microsoft.com/json-schemas/spfx-build/deploy-azure-storage.schema.json\",\n  \"workingDir"
  },
  {
    "path": "source/react-application-alerts/config/package-solution.json",
    "chars": 1264,
    "preview": "{\n  \"$schema\": \"https://developer.microsoft.com/json-schemas/spfx-build/package-solution.schema.json\",\n  \"solution\": {\n "
  },
  {
    "path": "source/react-application-alerts/config/sass.json",
    "chars": 91,
    "preview": "{\n  \"$schema\": \"https://developer.microsoft.com/json-schemas/core-build/sass.schema.json\"\n}"
  },
  {
    "path": "source/react-application-alerts/config/serve.json",
    "chars": 910,
    "preview": "{\n  \"$schema\": \"https://developer.microsoft.com/json-schemas/spfx-build/spfx-serve.schema.json\",\n  \"port\": 4321,\n  \"http"
  },
  {
    "path": "source/react-application-alerts/config/write-manifests.json",
    "chars": 143,
    "preview": "{\n  \"$schema\": \"https://developer.microsoft.com/json-schemas/spfx-build/write-manifests.schema.json\",\n  \"cdnBasePath\": \""
  },
  {
    "path": "source/react-application-alerts/gulpfile.js",
    "chars": 407,
    "preview": "'use strict';\n\nconst build = require('@microsoft/sp-build-web');\n\nbuild.addSuppression(`Warning - [sass] The local CSS c"
  },
  {
    "path": "source/react-application-alerts/package.json",
    "chars": 1335,
    "preview": "{\n  \"name\": \"react-application-alerts\",\n  \"version\": \"3.0.0\",\n  \"private\": true,\n  \"main\": \"lib/index.js\",\n  \"engines\": "
  },
  {
    "path": "source/react-application-alerts/sharepoint/assets/ClientSideInstance.xml",
    "chars": 111,
    "preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<Elements xmlns=\"http://schemas.microsoft.com/sharepoint/\">\n</Elements>\n"
  },
  {
    "path": "source/react-application-alerts/sharepoint/assets/elements.xml",
    "chars": 355,
    "preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<Elements xmlns=\"http://schemas.microsoft.com/sharepoint/\">\n    <CustomAction\n   "
  },
  {
    "path": "source/react-application-alerts/src/extensions/hubOrSiteAlerts/HubOrSiteAlertsApplicationCustomizer.manifest.json",
    "chars": 746,
    "preview": "{\n  \"$schema\": \"https://developer.microsoft.com/json-schemas/spfx/client-side-extension-manifest.schema.json\",\n\n  \"id\": "
  },
  {
    "path": "source/react-application-alerts/src/extensions/hubOrSiteAlerts/HubOrSiteAlertsApplicationCustomizer.ts",
    "chars": 7847,
    "preview": "import { override } from '@microsoft/decorators';\nimport {\n  BaseApplicationCustomizer, PlaceholderContent, PlaceholderN"
  },
  {
    "path": "source/react-application-alerts/src/extensions/hubOrSiteAlerts/IAlert.ts",
    "chars": 497,
    "preview": "/**\n * Interface that represents an alert item\n */\nexport interface IAlert {\n  message: string;\n  moreInformationUrl: st"
  },
  {
    "path": "source/react-application-alerts/src/extensions/hubOrSiteAlerts/IHubSiteData.ts",
    "chars": 291,
    "preview": "export interface IHubSiteData {\n  logoUrl: string;\n\n  name: string;\n\n  // tslint:disable-next-line: no-any\n  navigation:"
  },
  {
    "path": "source/react-application-alerts/src/extensions/hubOrSiteAlerts/components/AlertNotifications.tsx",
    "chars": 838,
    "preview": "import * as React from 'react';\nimport { IAlertNotificationsProps } from '.';\nimport * as strings from 'HubOrSiteAlertsA"
  },
  {
    "path": "source/react-application-alerts/src/extensions/hubOrSiteAlerts/components/IAlertNotificationsProps.ts",
    "chars": 103,
    "preview": "import { IAlert } from '../IAlert';\n\nexport interface IAlertNotificationsProps {\n  alerts: IAlert[];\n}\n"
  },
  {
    "path": "source/react-application-alerts/src/extensions/hubOrSiteAlerts/components/index.ts",
    "chars": 81,
    "preview": "export * from './IAlertNotificationsProps';\nexport * from './AlertNotifications';"
  },
  {
    "path": "source/react-application-alerts/src/extensions/hubOrSiteAlerts/loc/de-de.js",
    "chars": 86,
    "preview": "define([], function() {\n  return {\n    \"MoreInformation\": \"Mehr Informationen\"\n  }\n});"
  },
  {
    "path": "source/react-application-alerts/src/extensions/hubOrSiteAlerts/loc/en-us.js",
    "chars": 84,
    "preview": "define([], function() {\n  return {\n    \"MoreInformation\": \"More information\"\n  }\n});"
  },
  {
    "path": "source/react-application-alerts/src/extensions/hubOrSiteAlerts/loc/es-es.js",
    "chars": 84,
    "preview": "define([], function() {\n  return {\n    \"MoreInformation\": \"Más información\"\n  }\n});\n"
  },
  {
    "path": "source/react-application-alerts/src/extensions/hubOrSiteAlerts/loc/fr-fr.js",
    "chars": 86,
    "preview": "define([], function() {\n  return {\n    \"MoreInformation\": \"Plus d'information\"\n  }\n});"
  },
  {
    "path": "source/react-application-alerts/src/extensions/hubOrSiteAlerts/loc/myStrings.d.ts",
    "chars": 243,
    "preview": "declare interface IHubOrSiteAlertsApplicationCustomizerStrings {\n  MoreInformation: string;\n}\n\ndeclare module 'HubOrSite"
  },
  {
    "path": "source/react-application-alerts/src/extensions/hubOrSiteAlerts/loc/nb-no.js",
    "chars": 84,
    "preview": "define([], function() {\n  return {\n    \"MoreInformation\": \"Mer informasjon\"\n  }\n});\n"
  },
  {
    "path": "source/react-application-alerts/src/extensions/hubOrSiteAlerts/loc/nl-nl.js",
    "chars": 91,
    "preview": "define([], function() {\n    return {\n      \"MoreInformation\": \"Meer informatie\"\n    }\n  });"
  },
  {
    "path": "source/react-application-alerts/src/extensions/hubOrSiteAlerts/loc/sv-se.js",
    "chars": 83,
    "preview": "define([], function() {\n  return {\n    \"MoreInformation\": \"Mer information\"\n  }\n});"
  },
  {
    "path": "source/react-application-alerts/src/extensions/hubOrSiteAlerts/loc/tr-tr.js",
    "chars": 84,
    "preview": "define([], function() {\n  return {\n    \"MoreInformation\": \"Daha fazla bilgi\"\n  }\n});"
  },
  {
    "path": "source/react-application-alerts/src/index.ts",
    "chars": 89,
    "preview": "// A file is required to be in the root of the /src directory by the TypeScript compiler\n"
  },
  {
    "path": "source/react-application-alerts/tsconfig.json",
    "chars": 772,
    "preview": "{\n  \"extends\": \"./node_modules/@microsoft/rush-stack-compiler-4.5/includes/tsconfig-web.json\",\n  \"compilerOptions\": {\n  "
  },
  {
    "path": "source/react-application-collab-footer/.editorconfig",
    "chars": 475,
    "preview": "# EditorConfig helps developers define and maintain consistent\n# coding styles between different editors and IDEs\n# edit"
  },
  {
    "path": "source/react-application-collab-footer/.eslintrc.js",
    "chars": 20039,
    "preview": "require('@rushstack/eslint-config/patch/modern-module-resolution');\nmodule.exports = {\n  extends: ['@microsoft/eslint-co"
  },
  {
    "path": "source/react-application-collab-footer/.gitignore",
    "chars": 340,
    "preview": "# Logs\nlogs\n*.log\nnpm-debug.log*\n\n# Dependency directories\nnode_modules\n\n# Build generated files\ndist\nlib\nrelease\nsoluti"
  },
  {
    "path": "source/react-application-collab-footer/.npmignore",
    "chars": 99,
    "preview": "!dist\nconfig\n\ngulpfile.js\n\nrelease\nsrc\ntemp\n\ntsconfig.json\ntslint.json\n\n*.log\n\n.yo-rc.json\n.vscode\n"
  },
  {
    "path": "source/react-application-collab-footer/.vscode/launch.json",
    "chars": 657,
    "preview": "{\n  \"version\": \"0.2.0\",\n  \"configurations\": [\n    {\n      \"name\": \"Hosted workbench\",\n      \"type\": \"pwa-chrome\",\n      "
  },
  {
    "path": "source/react-application-collab-footer/.vscode/settings.json",
    "chars": 402,
    "preview": "// Place your settings in this file to overwrite default and user settings.\n{\n  // Configure glob patterns for excluding"
  },
  {
    "path": "source/react-application-collab-footer/.yo-rc.json",
    "chars": 550,
    "preview": "{\n  \"@microsoft/generator-sharepoint\": {\n    \"plusBeta\": false,\n    \"isCreatingSolution\": true,\n    \"nodeVersion\": \"16.1"
  },
  {
    "path": "source/react-application-collab-footer/README.md",
    "chars": 4481,
    "preview": "# Collaboration Footer Application Customizers\n\nThis application customizer provides you the ability to include a footer"
  },
  {
    "path": "source/react-application-collab-footer/config/config.json",
    "chars": 724,
    "preview": "{\n  \"$schema\": \"https://developer.microsoft.com/json-schemas/spfx-build/config.2.0.schema.json\",\n  \"version\": \"2.0\",\n  \""
  },
  {
    "path": "source/react-application-collab-footer/config/deploy-azure-storage.json",
    "chars": 278,
    "preview": "{\n  \"$schema\": \"https://developer.microsoft.com/json-schemas/spfx-build/deploy-azure-storage.schema.json\",\n  \"workingDir"
  },
  {
    "path": "source/react-application-collab-footer/config/package-solution.json",
    "chars": 1325,
    "preview": "{\n  \"$schema\": \"https://developer.microsoft.com/json-schemas/spfx-build/package-solution.schema.json\",\n  \"solution\": {\n "
  },
  {
    "path": "source/react-application-collab-footer/config/sass.json",
    "chars": 91,
    "preview": "{\n  \"$schema\": \"https://developer.microsoft.com/json-schemas/core-build/sass.schema.json\"\n}"
  },
  {
    "path": "source/react-application-collab-footer/config/serve.json",
    "chars": 1053,
    "preview": "{\n  \"$schema\": \"https://developer.microsoft.com/json-schemas/spfx-build/spfx-serve.schema.json\",\n  \"port\": 4321,\n  \"http"
  },
  {
    "path": "source/react-application-collab-footer/config/write-manifests.json",
    "chars": 143,
    "preview": "{\n  \"$schema\": \"https://developer.microsoft.com/json-schemas/spfx-build/write-manifests.schema.json\",\n  \"cdnBasePath\": \""
  },
  {
    "path": "source/react-application-collab-footer/gulpfile.js",
    "chars": 407,
    "preview": "'use strict';\n\nconst build = require('@microsoft/sp-build-web');\n\nbuild.addSuppression(`Warning - [sass] The local CSS c"
  },
  {
    "path": "source/react-application-collab-footer/package.json",
    "chars": 1342,
    "preview": "{\n  \"name\": \"react-application-collab-footer\",\n  \"version\": \"3.0.0\",\n  \"private\": true,\n  \"main\": \"lib/index.js\",\n  \"eng"
  },
  {
    "path": "source/react-application-collab-footer/sharepoint/assets/ClientSideInstance.xml",
    "chars": 111,
    "preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<Elements xmlns=\"http://schemas.microsoft.com/sharepoint/\">\n</Elements>\n"
  },
  {
    "path": "source/react-application-collab-footer/sharepoint/assets/elements.xml",
    "chars": 503,
    "preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<Elements xmlns=\"http://schemas.microsoft.com/sharepoint/\">\n    <CustomAction\n   "
  },
  {
    "path": "source/react-application-collab-footer/src/extensions/collaborationFooter/CollaborationFooterApplicationCustomizer.manifest.json",
    "chars": 750,
    "preview": "{\n  \"$schema\": \"https://developer.microsoft.com/json-schemas/spfx/client-side-extension-manifest.schema.json\",\n\n  \"id\": "
  },
  {
    "path": "source/react-application-collab-footer/src/extensions/collaborationFooter/CollaborationFooterApplicationCustomizer.ts",
    "chars": 7692,
    "preview": "import * as React from 'react';\nimport * as ReactDom from 'react-dom';\n\nimport { override } from '@microsoft/decorators'"
  },
  {
    "path": "source/react-application-collab-footer/src/extensions/collaborationFooter/components/CollabFooter.module.scss",
    "chars": 246,
    "preview": "@import '~@fluentui/react/dist/sass/References.scss';\n\n.collabFooter {\n    .collabFooterContainer {\n        background-c"
  },
  {
    "path": "source/react-application-collab-footer/src/extensions/collaborationFooter/components/CollabFooter.tsx",
    "chars": 3377,
    "preview": "import * as React from 'react';\nimport styles from './CollabFooter.module.scss';\n\nimport { ICollabFooterProps } from './"
  },
  {
    "path": "source/react-application-collab-footer/src/extensions/collaborationFooter/components/ICollabFooterEditResult.ts",
    "chars": 169,
    "preview": "import { IContextualMenuItem } from \"office-ui-fabric-react\";\n\nexport interface ICollabFooterEditResult {\n    editResult"
  },
  {
    "path": "source/react-application-collab-footer/src/extensions/collaborationFooter/components/ICollabFooterProps.ts",
    "chars": 476,
    "preview": "import { IContextualMenuItem } from 'office-ui-fabric-react';\nimport { ICollabFooterEditResult } from './ICollabFooterEd"
  },
  {
    "path": "source/react-application-collab-footer/src/extensions/collaborationFooter/components/ICollabFooterState.ts",
    "chars": 276,
    "preview": "import { IContextualMenuItem } from 'office-ui-fabric-react';\n\nexport interface ICollabFooterState {\n    // state variab"
  },
  {
    "path": "source/react-application-collab-footer/src/extensions/collaborationFooter/components/myLinks/IMyLink.ts",
    "chars": 189,
    "preview": "/**\n * Interface to define a single URL item for My Links\n */\nexport default interface IMyLink {\n    // the Title of the"
  },
  {
    "path": "source/react-application-collab-footer/src/extensions/collaborationFooter/components/myLinks/MyLinks.module.scss",
    "chars": 291,
    "preview": "@import '~@fluentui/react/dist/sass/References.scss';\n\n.myLinksDialogRoot {\n  .myLinksDialogContent {\n      text-align: "
  },
  {
    "path": "source/react-application-collab-footer/src/extensions/collaborationFooter/components/myLinks/MyLinksDialog.tsx",
    "chars": 12331,
    "preview": "import * as React from 'react';\nimport * as ReactDOM from 'react-dom';\n\n// import supporting types\nimport IMyLink from '"
  },
  {
    "path": "source/react-application-collab-footer/src/extensions/collaborationFooter/components/myLinks/loc/de-de.js",
    "chars": 1088,
    "preview": "define([], function() {\n  return {\n    \"DialogSaveButton\": \"Speichern\",\n    \"DialogCancelButton\": \"Abbrechen\",\n    \"Dial"
  },
  {
    "path": "source/react-application-collab-footer/src/extensions/collaborationFooter/components/myLinks/loc/en-us.js",
    "chars": 980,
    "preview": "define([], function() {\n  return {\n    \"DialogSaveButton\": \"Save\",\n    \"DialogCancelButton\": \"Cancel\",\n    \"DialogAddBut"
  },
  {
    "path": "source/react-application-collab-footer/src/extensions/collaborationFooter/components/myLinks/loc/es-es.js",
    "chars": 1116,
    "preview": "define([], function() {\n  return {\n    \"DialogSaveButton\": \"Guardar\",\n    \"DialogCancelButton\": \"Cancelar\",\n    \"DialogA"
  },
  {
    "path": "source/react-application-collab-footer/src/extensions/collaborationFooter/components/myLinks/loc/fr-fr.js",
    "chars": 1083,
    "preview": "define([], function() {\n  return {\n    \"DialogSaveButton\": \"Sauvegarder\",\n    \"DialogCancelButton\": \"Annuler\",\n    \"Dial"
  }
]

// ... and 694 more files (download for full content)

About this extraction

This page contains the full source code of the pnp/sp-starter-kit GitHub repository, extracted and formatted as plain text for AI agents and large language models (LLMs). The extraction includes 894 files (24.8 MB), approximately 1.2M tokens, and a symbol index with 503 extracted functions, classes, methods, constants, and types. Use this with OpenClaw, Claude, ChatGPT, Cursor, Windsurf, or any other AI tool that accepts text input. You can copy the full output to your clipboard or download it as a .txt file.

Extracted by GitExtract — free GitHub repo to text converter for AI. Built by Nikandr Surkov.

Copied to clipboard!