From dd6070d553ddcd56ade060d9e40f4545bf1c61db Mon Sep 17 00:00:00 2001 From: Hugo Bernier Date: Thu, 4 Feb 2021 21:15:17 -0500 Subject: [PATCH 1/4] Create index.md --- samples/react-enhanced-powerapps/sharepoint/solution/index.md | 1 + 1 file changed, 1 insertion(+) create mode 100644 samples/react-enhanced-powerapps/sharepoint/solution/index.md diff --git a/samples/react-enhanced-powerapps/sharepoint/solution/index.md b/samples/react-enhanced-powerapps/sharepoint/solution/index.md new file mode 100644 index 000000000..587f5d501 --- /dev/null +++ b/samples/react-enhanced-powerapps/sharepoint/solution/index.md @@ -0,0 +1 @@ +Temp From 531616f24e5c48c8f6b37e4fea8d556a066b6ce4 Mon Sep 17 00:00:00 2001 From: Hugo Bernier Date: Thu, 4 Feb 2021 21:15:36 -0500 Subject: [PATCH 2/4] Add files via upload Added sppkg --- .../solution/react-enhanced-powerapps.sppkg | Bin 0 -> 141053 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 samples/react-enhanced-powerapps/sharepoint/solution/react-enhanced-powerapps.sppkg diff --git a/samples/react-enhanced-powerapps/sharepoint/solution/react-enhanced-powerapps.sppkg b/samples/react-enhanced-powerapps/sharepoint/solution/react-enhanced-powerapps.sppkg new file mode 100644 index 0000000000000000000000000000000000000000..2ce1726195fb2d125504e2f8b212e1c248f1a3c1 GIT binary patch literal 141053 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 F{{s+4Jh1=( literal 0 HcmV?d00001 From 68ff244569bab99ff7f707f0e4a95619c6bbddad Mon Sep 17 00:00:00 2001 From: Hugo Bernier Date: Thu, 4 Feb 2021 21:15:58 -0500 Subject: [PATCH 3/4] Delete index.md Removed placeholder --- samples/react-enhanced-powerapps/sharepoint/solution/index.md | 1 - 1 file changed, 1 deletion(-) delete mode 100644 samples/react-enhanced-powerapps/sharepoint/solution/index.md diff --git a/samples/react-enhanced-powerapps/sharepoint/solution/index.md b/samples/react-enhanced-powerapps/sharepoint/solution/index.md deleted file mode 100644 index 587f5d501..000000000 --- a/samples/react-enhanced-powerapps/sharepoint/solution/index.md +++ /dev/null @@ -1 +0,0 @@ -Temp From e6cd0b17deda4ddd0c5082229478c53928dae3c5 Mon Sep 17 00:00:00 2001 From: Hugo Bernier Date: Mon, 8 Feb 2021 02:19:31 -0500 Subject: [PATCH 4/4] Added sample metadata --- samples/aad-api-spo-cookie/assets/sample.json | 1 + samples/angular-aad-webapi/assets/sample.json | 1 + samples/angular-greeting/assets/sample.json | 1 + samples/angular-migration/assets/sample.json | 1 + samples/angular-msgraph/assets/sample.json | 44 +++++++++++ samples/angular-multipage/assets/sample.json | 1 + .../assets/sample.json | 1 + .../assets/sample.json | 1 + samples/angular-search/assets/sample.json | 1 + samples/angular-todo/assets/sample.json | 1 + samples/angular2-prototype/assets/sample.json | 1 + .../assets/sample.json | 1 + .../assets/sample.json | 1 + samples/bootstrap-slider/assets/sample.json | 1 + .../assets/sample.json | 1 + samples/jquery-cdn/assets/sample.json | 1 + samples/jquery-photopile/assets/sample.json | 1 + .../js-advanced-commenting/assets/sample.json | 1 + samples/js-display-list/assets/sample.json | 1 + .../assets/sample.json | 1 + .../js-employee-spotlight/assets/sample.json | 1 + samples/js-extend-gulp/assets/sample.json | 1 + samples/js-extend-webpack/assets/sample.json | 1 + samples/js-gitHubBadge/assets/sample.json | 1 + samples/js-modern-calendar/assets/sample.json | 1 + .../js-msgraph-thumbnail/assets/sample.json | 1 + samples/js-myflows/assets/sample.json | 1 + .../js-powerbi-embedded/assets/sample.json | 1 + .../assets/sample.json | 1 + .../assets/sample.json | 1 + samples/js-skype-status/assets/sample.json | 1 + .../js-solution-editions/assets/sample.json | 1 + .../js-theme-manager-2019/assets/sample.json | 1 + samples/js-theme-manager/assets/sample.json | 1 + .../assets/sample.json | 1 + .../assets/sample.json | 1 + samples/knockout-sp-pnp-js/assets/sample.json | 1 + samples/knockout-taxonomy/assets/sample.json | 1 + samples/pnp-controls/assets/sample.json | 1 + .../react-3rd-party-api/assets/sample.json | 1 + .../assets/sample.json | 1 + .../react-aad-implicitflow/assets/sample.json | 1 + samples/react-aad-webapi/assets/sample.json | 1 + .../assets/sample.json | 69 +----------------- .../assets/sample.json | 1 + samples/react-accordion/assets/sample.json | 1 + .../assets/sample.json | 1 + .../assets/sample.json | 1 + .../react-adaptivecards/assets/sample.json | 1 + .../react-add-js-css-ref/assets/sample.json | 1 + .../assets/sample.json | 1 + .../assets/sample.json | 1 + samples/react-app-settings/assets/sample.json | 1 + .../assets/sample.json | 1 + .../assets/sample.json | 1 + samples/react-avatar/assets/sample.json | 1 + samples/react-azfunc-vimeo/assets/sample.json | 1 + samples/react-banner/assets/sample.json | 1 + samples/react-birthdays/assets/sample.json | 1 + .../assets/sample.json | 1 + .../assets/sample.json | 1 + .../react-bot-framework/assets/sample.json | 1 + .../react-calendar-feed/assets/sample.json | 1 + samples/react-calendar/assets/sample.json | 1 + samples/react-carousel/assets/sample.json | 1 + samples/react-chartcontrol/assets/sample.json | 1 + samples/react-check-flows/assets/sample.json | 1 + .../react-check-user-group/assets/sample.json | 1 + samples/react-comparer/assets/sample.json | 1 + .../assets/sample.json | 1 + .../assets/sample.json | 1 + .../assets/sample.json | 1 + samples/react-covid19-info/assets/sample.json | 1 + .../assets/sample.json | 1 + samples/react-custom-links/assets/sample.json | 1 + .../assets/sample.json | 1 + .../react-daterangepicker/assets/sample.json | 1 + .../assets/sample.json | 1 + samples/react-dev-radar/assets/sample.json | 1 + samples/react-directory/assets/sample.json | 1 + .../assets/sample.json | 1 + .../assets/sample.json | 1 + .../react-dynamics-crm-api/assets/sample.json | 1 + .../assets/sample.json | 1 + .../assets/sample.json | 1 + .../assets/sample.json | 1 + .../assets/sample.json | 1 + .../react-facebook-plugin/assets/sample.json | 1 + samples/react-faqapp/assets/sample.json | 1 + .../assets/sample.json | 1 + samples/react-feedback/assets/sample.json | 1 + samples/react-file-upload/assets/sample.json | 1 + .../react-followedsites/assets/sample.json | 1 + .../assets/sample.json | 1 + .../assets/sample.json | 1 + .../assets/sample.json | 1 + .../assets/sample.json | 1 + samples/react-github-badge/assets/sample.json | 1 + samples/react-global-news/assets/sample.json | 1 + samples/react-google-fit/assets/sample.json | 1 + .../react-graph-calendar/assets/sample.json | 1 + .../assets/sample.json | 1 + .../react-graph-evalurl/assets/sample.json | 1 + .../assets/sample.json | 1 + .../assets/sample.json | 1 + samples/react-graph-pnpjs/assets/sample.json | 1 + .../react-graph-reports/assets/sample.json | 1 + .../assets/sample.json | 1 + .../assets/sample.json | 1 + samples/react-hooks/assets/sample.json | 1 + .../react-image-gallery/assets/sample.json | 1 + .../react-image-magnifier/assets/sample.json | 1 + .../assets/sample.json | 1 + .../assets/sample.json | 1 + samples/react-ioc-tests/assets/sample.json | 1 + samples/react-item-History/assets/sample.json | 1 + samples/react-jest-testing/assets/sample.json | 1 + samples/react-kanban-board/assets/sample.json | 1 + samples/react-links/assets/sample.json | 1 + samples/react-list-form/assets/sample.json | 1 + .../react-list-items-menu/assets/sample.json | 1 + .../react-lob-integration/assets/sample.json | 1 + .../assets/sample.json | 1 + .../assets/sample.json | 1 + .../assets/sample.json | 1 + .../assets/sample.json | 1 + samples/react-material-ui/assets/sample.json | 1 + .../assets/sample.json | 1 + samples/react-mgtEvents/assets/sample.json | 1 + samples/react-minesweeper/assets/sample.json | 1 + .../assets/sample.json | 1 + samples/react-mobx/assets/sample.json | 1 + .../react-modern-charts/assets/sample.json | 1 + .../assets/sample.json | 1 + samples/react-msal-msgraph/assets/sample.json | 1 + .../assets/sample.json | 1 + .../assets/sample.json | 1 + .../react-multilist-grid/assets/sample.json | 1 + .../assets/sample.json | 1 + samples/react-multipage/assets/sample.json | 1 + .../assets/sample.json | 1 + samples/react-my-groups/assets/sample.json | 1 + .../react-my-personal-apps/assets/sample.json | 1 + samples/react-my-sites/assets/sample.json | 1 + samples/react-my-teams/assets/sample.json | 1 + samples/react-mytasks/assets/sample.json | 1 + .../src/index.ts | 1 - .../saveEmailToSharePoint/loc/en-us.js | 14 ---- .../saveEmailToSharePoint/loc/mystrings.d.ts | 17 ----- ...3c02-3280-4430-a877-22cbc6251d21_color.png | Bin 3023 -> 0 bytes ...02-3280-4430-a877-22cbc6251d21_outline.png | Bin 1429 -> 0 bytes samples/react-officegraph/assets/sample.json | 1 + .../react-offline-first/assets/sample.json | 1 + .../assets/sample.json | 1 + .../assets/sample.json | 1 + .../assets/sample.json | 1 + .../react-page-navigator/assets/sample.json | 1 + .../assets/sample.json | 1 + .../react-pagecontributors/assets/sample.json | 1 + .../react-pages-hierarchy/assets/sample.json | 1 + .../react-people-directory/assets/sample.json | 1 + samples/react-peoplepicker/assets/sample.json | 1 + .../assets/sample.json | 1 + .../assets/sample.json | 1 + .../react-personal-email/assets/sample.json | 1 + .../assets/sample.json | 1 + .../react-personal-tasks/assets/sample.json | 1 + samples/react-photo-sync/assets/sample.json | 1 + .../assets/sample.json | 1 + .../assets/sample.json | 1 + .../react-pnpjsexplorer/assets/sample.json | 1 + .../react-project-online/assets/sample.json | 1 + .../assets/sample.json | 1 + .../react-provision-assets/assets/sample.json | 1 + .../assets/sample.json | 1 + samples/react-quick-poll/assets/sample.json | 1 + samples/react-quotes/assets/sample.json | 1 + samples/react-real-time/assets/sample.json | 1 + .../assets/sample.json | 1 + samples/react-recaptcha/assets/sample.json | 1 + .../react-recent-contacts/assets/sample.json | 1 + .../assets/sample.json | 1 + .../assets/sample.json | 1 + .../assets/sample.json | 1 + samples/react-redux/assets/sample.json | 1 + samples/react-reduxform/assets/sample.json | 1 + .../react-restaurant-menu/assets/sample.json | 1 + samples/react-rss-reader/assets/sample.json | 1 + .../assets/sample.json | 1 + .../react-save-attachments/assets/sample.json | 1 + .../assets/sample.json | 1 + .../react-script-editor/assets/sample.json | 1 + samples/react-search-refiners/README.md | 5 -- samples/react-search/assets/sample.json | 1 + samples/react-securitygrid/assets/sample.json | 1 + samples/react-side-panel/assets/sample.json | 1 + .../react-site-information/assets/sample.json | 1 + .../assets/sample.json | 1 + .../assets/sample.json | 1 + samples/react-skype-status/assets/sample.json | 1 + samples/react-slide-swiper/assets/sample.json | 1 + .../assets/sample.json | 1 + .../assets/sample.json | 1 + .../assets/sample.json | 1 + .../assets/sample.json | 1 + .../assets/sample.json | 1 + .../assets/sample.json | 1 + .../assets/sample.json | 1 + samples/react-tailwindcss/assets/sample.json | 1 + .../react-target-audience/assets/sample.json | 1 + .../assets/sample.json | 1 + .../react-taxonomypicker/assets/sample.json | 1 + samples/react-team-creator/assets/sample.json | 1 + .../assets/sample.json | 1 + .../react-teams-message/assets/sample.json | 1 + .../assets/sample.json | 1 + .../assets/sample.json | 1 + .../assets/sample.json | 1 + .../assets/sample.json | 1 + .../react-teams-tabs-pnpjs/assets/sample.json | 1 + .../react-teams-tagging/assets/sample.json | 1 + .../assets/sample.json | 1 + samples/react-themes/assets/sample.json | 1 + samples/react-tiles/assets/sample.json | 1 + samples/react-timeline/assets/sample.json | 1 + samples/react-tinymce/assets/sample.json | 1 + samples/react-todo-basic/assets/sample.json | 1 + samples/react-tour-pnpjs/assets/sample.json | 1 + .../react-tree-orgchart/assets/sample.json | 1 + samples/react-twitter/assets/sample.json | 1 + samples/react-upgrade-me/assets/sample.json | 1 + .../react-versiondisplay/assets/sample.json | 1 + samples/react-videolibrary/assets/sample.json | 1 + samples/react-visio/assets/sample.json | 1 + .../assets/sample.json | 1 + samples/react-webcam/assets/sample.json | 1 + .../assets/sample.json | 1 + .../react-webpartdetails/assets/sample.json | 1 + samples/react-word-game/assets/sample.json | 1 + samples/react-world-clocks/assets/sample.json | 1 + samples/react-world-time/assets/sample.json | 1 + samples/react-yammer-api/assets/sample.json | 1 + .../react-yammer-praise/assets/sample.json | 1 + samples/react-youtube/assets/sample.json | 1 + samples/react-zpl-viewer/assets/sample.json | 1 + samples/riot-list/assets/sample.json | 1 + .../section-backgrounds/assets/sample.json | 1 + samples/sharepoint-crud/assets/sample.json | 1 + samples/vue-js-org-chart/assets/sample.json | 1 + .../assets/sample.json | 1 + 250 files changed, 287 insertions(+), 105 deletions(-) create mode 100644 samples/aad-api-spo-cookie/assets/sample.json create mode 100644 samples/angular-aad-webapi/assets/sample.json create mode 100644 samples/angular-greeting/assets/sample.json create mode 100644 samples/angular-migration/assets/sample.json create mode 100644 samples/angular-msgraph/assets/sample.json create mode 100644 samples/angular-multipage/assets/sample.json create mode 100644 samples/angular-ngofficeuifabric-file-upload/assets/sample.json create mode 100644 samples/angular-ngofficeuifabric-todo/assets/sample.json create mode 100644 samples/angular-search/assets/sample.json create mode 100644 samples/angular-todo/assets/sample.json create mode 100644 samples/angular2-prototype/assets/sample.json create mode 100644 samples/angularelements-helloworld/assets/sample.json create mode 100644 samples/angularelements-html-templatefile/assets/sample.json create mode 100644 samples/bootstrap-slider/assets/sample.json create mode 100644 samples/handlebarsjs-webpack-loader/assets/sample.json create mode 100644 samples/jquery-cdn/assets/sample.json create mode 100644 samples/jquery-photopile/assets/sample.json create mode 100644 samples/js-advanced-commenting/assets/sample.json create mode 100644 samples/js-display-list/assets/sample.json create mode 100644 samples/js-dynamic-bundling-libraries/assets/sample.json create mode 100644 samples/js-employee-spotlight/assets/sample.json create mode 100644 samples/js-extend-gulp/assets/sample.json create mode 100644 samples/js-extend-webpack/assets/sample.json create mode 100644 samples/js-gitHubBadge/assets/sample.json create mode 100644 samples/js-modern-calendar/assets/sample.json create mode 100644 samples/js-msgraph-thumbnail/assets/sample.json create mode 100644 samples/js-myflows/assets/sample.json create mode 100644 samples/js-powerbi-embedded/assets/sample.json create mode 100644 samples/js-propertycontrols-svg/assets/sample.json create mode 100644 samples/js-public-unjoined-teams/assets/sample.json create mode 100644 samples/js-skype-status/assets/sample.json create mode 100644 samples/js-solution-editions/assets/sample.json create mode 100644 samples/js-theme-manager-2019/assets/sample.json create mode 100644 samples/js-theme-manager/assets/sample.json create mode 100644 samples/js-workbench-customizer/assets/sample.json create mode 100644 samples/knockout-dependent-properties/assets/sample.json create mode 100644 samples/knockout-sp-pnp-js/assets/sample.json create mode 100644 samples/knockout-taxonomy/assets/sample.json create mode 100644 samples/pnp-controls/assets/sample.json create mode 100644 samples/react-3rd-party-api/assets/sample.json create mode 100644 samples/react-Edit-ApplicationCustomizer/assets/sample.json create mode 100644 samples/react-aad-implicitflow/assets/sample.json create mode 100644 samples/react-aad-webapi/assets/sample.json create mode 100644 samples/react-accordion-section/assets/sample.json create mode 100644 samples/react-accordion/assets/sample.json create mode 100644 samples/react-adaptive-cards-image-gallery/assets/sample.json create mode 100644 samples/react-adaptivecards-hooks/assets/sample.json create mode 100644 samples/react-adaptivecards/assets/sample.json create mode 100644 samples/react-add-js-css-ref/assets/sample.json create mode 100644 samples/react-admin-sc-catalog-pnpjs/assets/sample.json create mode 100644 samples/react-aggregated-calendar/assets/sample.json create mode 100644 samples/react-app-settings/assets/sample.json create mode 100644 samples/react-appinsights-dashboard/assets/sample.json create mode 100644 samples/react-async-await-sp-pnp-js/assets/sample.json create mode 100644 samples/react-avatar/assets/sample.json create mode 100644 samples/react-azfunc-vimeo/assets/sample.json create mode 100644 samples/react-banner/assets/sample.json create mode 100644 samples/react-birthdays/assets/sample.json create mode 100644 samples/react-bot-framework-secure/assets/sample.json create mode 100644 samples/react-bot-framework-sso/assets/sample.json create mode 100644 samples/react-bot-framework/assets/sample.json create mode 100644 samples/react-calendar-feed/assets/sample.json create mode 100644 samples/react-calendar/assets/sample.json create mode 100644 samples/react-carousel/assets/sample.json create mode 100644 samples/react-chartcontrol/assets/sample.json create mode 100644 samples/react-check-flows/assets/sample.json create mode 100644 samples/react-check-user-group/assets/sample.json create mode 100644 samples/react-comparer/assets/sample.json create mode 100644 samples/react-components-dynamicloading/assets/sample.json create mode 100644 samples/react-content-query-online/assets/sample.json create mode 100644 samples/react-content-query-onprem/assets/sample.json create mode 100644 samples/react-covid19-info/assets/sample.json create mode 100644 samples/react-css-in-js-typestyle/assets/sample.json create mode 100644 samples/react-custom-links/assets/sample.json create mode 100644 samples/react-custompropertypanecontrols/assets/sample.json create mode 100644 samples/react-daterangepicker/assets/sample.json create mode 100644 samples/react-designpatterns-typescript/assets/sample.json create mode 100644 samples/react-dev-radar/assets/sample.json create mode 100644 samples/react-directory/assets/sample.json create mode 100644 samples/react-display-hierarchy/assets/sample.json create mode 100644 samples/react-documents-detailslist/assets/sample.json create mode 100644 samples/react-dynamics-crm-api/assets/sample.json create mode 100644 samples/react-enhanced-list-formatting/assets/sample.json create mode 100644 samples/react-enhanced-powerapps/assets/sample.json create mode 100644 samples/react-events-aggregator/assets/sample.json create mode 100644 samples/react-events-dynamicdata/assets/sample.json create mode 100644 samples/react-facebook-plugin/assets/sample.json create mode 100644 samples/react-faqapp/assets/sample.json create mode 100644 samples/react-feature-framework/assets/sample.json create mode 100644 samples/react-feedback/assets/sample.json create mode 100644 samples/react-file-upload/assets/sample.json create mode 100644 samples/react-followedsites/assets/sample.json create mode 100644 samples/react-functional-component-with-data-fetch/assets/sample.json create mode 100644 samples/react-functional-component/assets/sample.json create mode 100644 samples/react-functional-servicescope-hooks/assets/sample.json create mode 100644 samples/react-functional-stateful-component/assets/sample.json create mode 100644 samples/react-github-badge/assets/sample.json create mode 100644 samples/react-global-news/assets/sample.json create mode 100644 samples/react-google-fit/assets/sample.json create mode 100644 samples/react-graph-calendar/assets/sample.json create mode 100644 samples/react-graph-cascading-managed-metadata/assets/sample.json create mode 100644 samples/react-graph-evalurl/assets/sample.json create mode 100644 samples/react-graph-feedback-form/assets/sample.json create mode 100644 samples/react-graph-personalemail/assets/sample.json create mode 100644 samples/react-graph-pnpjs/assets/sample.json create mode 100644 samples/react-graph-reports/assets/sample.json create mode 100644 samples/react-graph-schema-extensions/assets/sample.json create mode 100644 samples/react-graph-telephonedirectory/assets/sample.json create mode 100644 samples/react-hooks/assets/sample.json create mode 100644 samples/react-image-gallery/assets/sample.json create mode 100644 samples/react-image-magnifier/assets/sample.json create mode 100644 samples/react-image-slider-list-taxonomy-filter/assets/sample.json create mode 100644 samples/react-invitation-manager/assets/sample.json create mode 100644 samples/react-ioc-tests/assets/sample.json create mode 100644 samples/react-item-History/assets/sample.json create mode 100644 samples/react-jest-testing/assets/sample.json create mode 100644 samples/react-kanban-board/assets/sample.json create mode 100644 samples/react-links/assets/sample.json create mode 100644 samples/react-list-form/assets/sample.json create mode 100644 samples/react-list-items-menu/assets/sample.json create mode 100644 samples/react-lob-integration/assets/sample.json create mode 100644 samples/react-manage-o365-groups/assets/sample.json create mode 100644 samples/react-manage-profile-card-properties/assets/sample.json create mode 100644 samples/react-manage-sitedesigns/assets/sample.json create mode 100644 samples/react-manage-spfx-solutions-alm/assets/sample.json create mode 100644 samples/react-material-ui/assets/sample.json create mode 100644 samples/react-members-with-presence/assets/sample.json create mode 100644 samples/react-mgtEvents/assets/sample.json create mode 100644 samples/react-minesweeper/assets/sample.json create mode 100644 samples/react-mobx-multiple-stores/assets/sample.json create mode 100644 samples/react-mobx/assets/sample.json create mode 100644 samples/react-modern-charts/assets/sample.json create mode 100644 samples/react-modern-organization-chart/assets/sample.json create mode 100644 samples/react-msal-msgraph/assets/sample.json create mode 100644 samples/react-msgraph-extension/assets/sample.json create mode 100644 samples/react-msgraph-peoplesearch/assets/sample.json create mode 100644 samples/react-multilist-grid/assets/sample.json create mode 100644 samples/react-multimedia-gallery/assets/sample.json create mode 100644 samples/react-multipage/assets/sample.json create mode 100644 samples/react-multiscreen-webpart/assets/sample.json create mode 100644 samples/react-my-groups/assets/sample.json create mode 100644 samples/react-my-personal-apps/assets/sample.json create mode 100644 samples/react-my-sites/assets/sample.json create mode 100644 samples/react-my-teams/assets/sample.json create mode 100644 samples/react-mytasks/assets/sample.json delete mode 100644 samples/react-office-add-in-save-email-to-sharepoint/src/index.ts delete mode 100644 samples/react-office-add-in-save-email-to-sharepoint/src/webparts/saveEmailToSharePoint/loc/en-us.js delete mode 100644 samples/react-office-add-in-save-email-to-sharepoint/src/webparts/saveEmailToSharePoint/loc/mystrings.d.ts delete mode 100644 samples/react-office-add-in-save-email-to-sharepoint/teams/e6083c02-3280-4430-a877-22cbc6251d21_color.png delete mode 100644 samples/react-office-add-in-save-email-to-sharepoint/teams/e6083c02-3280-4430-a877-22cbc6251d21_outline.png create mode 100644 samples/react-officegraph/assets/sample.json create mode 100644 samples/react-offline-first/assets/sample.json create mode 100644 samples/react-organisationchart/assets/sample.json create mode 100644 samples/react-outlook-add-todo-task/assets/sample.json create mode 100644 samples/react-outlook-copy2teams/assets/sample.json create mode 100644 samples/react-page-navigator/assets/sample.json create mode 100644 samples/react-page-sections-navigation/assets/sample.json create mode 100644 samples/react-pagecontributors/assets/sample.json create mode 100644 samples/react-pages-hierarchy/assets/sample.json create mode 100644 samples/react-people-directory/assets/sample.json create mode 100644 samples/react-peoplepicker/assets/sample.json create mode 100644 samples/react-personal-calendar/assets/sample.json create mode 100644 samples/react-personal-contacts/assets/sample.json create mode 100644 samples/react-personal-email/assets/sample.json create mode 100644 samples/react-personal-greeting/assets/sample.json create mode 100644 samples/react-personal-tasks/assets/sample.json create mode 100644 samples/react-photo-sync/assets/sample.json create mode 100644 samples/react-pnp-controls-list-view-fields/assets/sample.json create mode 100644 samples/react-pnpjs-project-online/assets/sample.json create mode 100644 samples/react-pnpjsexplorer/assets/sample.json create mode 100644 samples/react-project-online/assets/sample.json create mode 100644 samples/react-property-bag-editor/assets/sample.json create mode 100644 samples/react-provision-assets/assets/sample.json create mode 100644 samples/react-questions-and-answers/assets/sample.json create mode 100644 samples/react-quick-poll/assets/sample.json create mode 100644 samples/react-quotes/assets/sample.json create mode 100644 samples/react-real-time/assets/sample.json create mode 100644 samples/react-realtime-documents/assets/sample.json create mode 100644 samples/react-recaptcha/assets/sample.json create mode 100644 samples/react-recent-contacts/assets/sample.json create mode 100644 samples/react-recently-used-documents/assets/sample.json create mode 100644 samples/react-recently-visited-sites/assets/sample.json create mode 100644 samples/react-redux-async-immutablejs/assets/sample.json create mode 100644 samples/react-redux/assets/sample.json create mode 100644 samples/react-reduxform/assets/sample.json create mode 100644 samples/react-restaurant-menu/assets/sample.json create mode 100644 samples/react-rss-reader/assets/sample.json create mode 100644 samples/react-rxjs-event-emitter/assets/sample.json create mode 100644 samples/react-save-attachments/assets/sample.json create mode 100644 samples/react-script-editor-onprem/assets/sample.json create mode 100644 samples/react-script-editor/assets/sample.json delete mode 100644 samples/react-search-refiners/README.md create mode 100644 samples/react-search/assets/sample.json create mode 100644 samples/react-securitygrid/assets/sample.json create mode 100644 samples/react-side-panel/assets/sample.json create mode 100644 samples/react-site-information/assets/sample.json create mode 100644 samples/react-site-provisioning-manager/assets/sample.json create mode 100644 samples/react-sitepages-metadata/assets/sample.json create mode 100644 samples/react-skype-status/assets/sample.json create mode 100644 samples/react-slide-swiper/assets/sample.json create mode 100644 samples/react-smart-profile-photo-editor/assets/sample.json create mode 100644 samples/react-soccer-highlights/assets/sample.json create mode 100644 samples/react-sp-elevatedprivileges/assets/sample.json create mode 100644 samples/react-sp-pnp-js-property-decorators/assets/sample.json create mode 100644 samples/react-sp-site-user-groups/assets/sample.json create mode 100644 samples/react-spupsproperty-sync/assets/sample.json create mode 100644 samples/react-stock-information/assets/sample.json create mode 100644 samples/react-tailwindcss/assets/sample.json create mode 100644 samples/react-target-audience/assets/sample.json create mode 100644 samples/react-taxonomypicker-panel/assets/sample.json create mode 100644 samples/react-taxonomypicker/assets/sample.json create mode 100644 samples/react-team-creator/assets/sample.json create mode 100644 samples/react-teams-configure-tab/assets/sample.json create mode 100644 samples/react-teams-message/assets/sample.json create mode 100644 samples/react-teams-personal-app-settings/assets/sample.json create mode 100644 samples/react-teams-send-notification/assets/sample.json create mode 100644 samples/react-teams-tab-field-visit-mashup/assets/sample.json create mode 100644 samples/react-teams-tab-suggested-members/assets/sample.json create mode 100644 samples/react-teams-tabs-pnpjs/assets/sample.json create mode 100644 samples/react-teams-tagging/assets/sample.json create mode 100644 samples/react-tenant-properties/assets/sample.json create mode 100644 samples/react-themes/assets/sample.json create mode 100644 samples/react-tiles/assets/sample.json create mode 100644 samples/react-timeline/assets/sample.json create mode 100644 samples/react-tinymce/assets/sample.json create mode 100644 samples/react-todo-basic/assets/sample.json create mode 100644 samples/react-tour-pnpjs/assets/sample.json create mode 100644 samples/react-tree-orgchart/assets/sample.json create mode 100644 samples/react-twitter/assets/sample.json create mode 100644 samples/react-upgrade-me/assets/sample.json create mode 100644 samples/react-versiondisplay/assets/sample.json create mode 100644 samples/react-videolibrary/assets/sample.json create mode 100644 samples/react-visio/assets/sample.json create mode 100644 samples/react-weather-information/assets/sample.json create mode 100644 samples/react-webcam/assets/sample.json create mode 100644 samples/react-webhooks-realtime/assets/sample.json create mode 100644 samples/react-webpartdetails/assets/sample.json create mode 100644 samples/react-word-game/assets/sample.json create mode 100644 samples/react-world-clocks/assets/sample.json create mode 100644 samples/react-world-time/assets/sample.json create mode 100644 samples/react-yammer-api/assets/sample.json create mode 100644 samples/react-yammer-praise/assets/sample.json create mode 100644 samples/react-youtube/assets/sample.json create mode 100644 samples/react-zpl-viewer/assets/sample.json create mode 100644 samples/riot-list/assets/sample.json create mode 100644 samples/section-backgrounds/assets/sample.json create mode 100644 samples/sharepoint-crud/assets/sample.json create mode 100644 samples/vue-js-org-chart/assets/sample.json create mode 100644 samples/vuejs-todo-single-file-component/assets/sample.json diff --git a/samples/aad-api-spo-cookie/assets/sample.json b/samples/aad-api-spo-cookie/assets/sample.json new file mode 100644 index 000000000..142ccaac6 --- /dev/null +++ b/samples/aad-api-spo-cookie/assets/sample.json @@ -0,0 +1 @@ +{"name":"pnp-sp-dev-spfx-web-parts-aad-api-spo-cookie","version":null,"source":"pnp","title":"Call custom APIs secured with Azure Active Directory without ADAL JS","shortDescription":"Sample SharePoint Framework client-side web part showing how to access a custom API secured with Azure Active Directory (AAD) without using ADAL JS.","longDescription":["Sample SharePoint Framework client-side web part showing how to access a custom API secured with Azure Active Directory (AAD) without using ADAL JS."],"products":["SharePoint","Office"],"categories":[""],"metadata":[{"key":"CLIENT-SIDE-DEV","value":"Angular"},{"key":"SPFX-VERSION","value":"GA"}],"thumbnails":[{"type":"image","order":100,"url":"https://github.com/pnp/sp-dev-fx-webparts/raw/master/samples/aad-api-spo-cookie/assets/preview-orders.png","alt":"Call custom APIs secured with Azure Active Directory without ADAL JS","slides":null}],"authors":[{"gitHubAccount":"waldekmastykarz","company":"","pictureUrl":"https://github.com/waldekmastykarz.png"}],"references":[]} \ No newline at end of file diff --git a/samples/angular-aad-webapi/assets/sample.json b/samples/angular-aad-webapi/assets/sample.json new file mode 100644 index 000000000..108ef2e29 --- /dev/null +++ b/samples/angular-aad-webapi/assets/sample.json @@ -0,0 +1 @@ +{"name":"pnp-sp-dev-spfx-web-parts-angular-aad-webapi","version":null,"source":"pnp","title":"Call custom Web API secured with AAD from SharePoint Framework client-side web part using Angular v1.x","shortDescription":"Sample SharePoint Framework client-side web part illustrating communication with a custom Web API secured with Azue Active Directory using Angular v1.x","longDescription":["Sample SharePoint Framework client-side web part illustrating communication with a custom Web API secured with Azue Active Directory using Angular v1.x"],"products":["SharePoint","Office"],"categories":[""],"metadata":[{"key":"CLIENT-SIDE-DEV","value":"Angular"},{"key":"SPFX-VERSION","value":"GA"}],"thumbnails":[{"type":"image","order":100,"url":"https://github.com/pnp/sp-dev-fx-webparts/raw/master/samples/angular-aad-webapi/assets/preview.jpg","alt":"Call custom Web API secured with AAD from SharePoint Framework client-side web part using Angular v1.x","slides":null}],"authors":[{"gitHubAccount":"davidhartman","company":"","pictureUrl":"https://github.com/davidhartman.png"}],"references":[]} \ No newline at end of file diff --git a/samples/angular-greeting/assets/sample.json b/samples/angular-greeting/assets/sample.json new file mode 100644 index 000000000..f08497d05 --- /dev/null +++ b/samples/angular-greeting/assets/sample.json @@ -0,0 +1 @@ +{"name":"pnp-sp-dev-spfx-web-parts-angular-greeting","version":null,"source":"pnp","title":"Greeting client-side web part","shortDescription":"This is Greeting web part which shows greeting to the current logged in user.","longDescription":["This is Greeting web part which shows greeting to the current logged in user."],"products":["SharePoint","Office"],"categories":[""],"metadata":[{"key":"CLIENT-SIDE-DEV","value":"Angular"},{"key":"SPFX-VERSION","value":"1.10.0"}],"thumbnails":[{"type":"image","order":100,"url":"https://github.com/pnp/sp-dev-fx-webparts/raw/master/samples/angular-greeting/assets/captured.gif","alt":"Greeting client-side web part","slides":null}],"authors":[{"gitHubAccount":"gauravgoyal5","company":"","pictureUrl":"https://github.com/gauravgoyal5.png"}],"references":[]} \ No newline at end of file diff --git a/samples/angular-migration/assets/sample.json b/samples/angular-migration/assets/sample.json new file mode 100644 index 000000000..710b753eb --- /dev/null +++ b/samples/angular-migration/assets/sample.json @@ -0,0 +1 @@ +{"name":"pnp-sp-dev-spfx-web-parts-angular-migration","version":null,"source":"pnp","title":"Migrating existing Angular applications to SharePoint Framework sample","shortDescription":"This is a sample Angular application before and after it has been migrated to a SharePoint Framework client-side web part.","longDescription":["This is a sample Angular application before and after it has been migrated to a SharePoint Framework client-side web part."],"products":["SharePoint","Office"],"categories":[""],"metadata":[{"key":"CLIENT-SIDE-DEV","value":"Angular"},{"key":"SPFX-VERSION","value":"GA"}],"thumbnails":[{"type":"image","order":100,"url":"https://github.com/pnp/sp-dev-fx-webparts/raw/master/samples/angular-migration/assets/angular-todo-spfx-preview.png","alt":"Migrating existing Angular applications to SharePoint Framework sample","slides":null}],"authors":[{"gitHubAccount":"waldekmastykarz","company":"","pictureUrl":"https://github.com/waldekmastykarz.png"}],"references":[]} \ No newline at end of file diff --git a/samples/angular-msgraph/assets/sample.json b/samples/angular-msgraph/assets/sample.json new file mode 100644 index 000000000..acc947208 --- /dev/null +++ b/samples/angular-msgraph/assets/sample.json @@ -0,0 +1,44 @@ +{ + "name": "pnp-sp-dev-spfx-web-parts-angular-msgraph", + "version": null, + "source": "pnp", + "title": "Angular MS Graph Web Part Built with Angular v1.x", + "shortDescription": "This is a sample MS Graph web part that connects to Microsoft Graph and pulls SharePoint information from your tenant. It will first pull the root site collection (currently a limitation by Microsoft Graph), then it will display all the lists associated with the site followed by all the items inside the list.", + "longDescription": [ + "This is a sample MS Graph web part that connects to Microsoft Graph and pulls SharePoint information from your tenant. It will first pull the root site collection (currently a limitation by Microsoft Graph), then it will display all the lists associated with the site followed by all the items inside the list." + ], + "products": [ + "SharePoint", + "Office" + ], + "categories": [ + "" + ], + "metadata": [ + { + "key": "CLIENT-SIDE-DEV", + "value": "Angular" + }, + { + "key": "SPFX-VERSION", + "value": "GA" + } + ], + "thumbnails": [ + { + "type": "image", + "order": 100, + "url": "https://github.com/pnp/sp-dev-fx-webparts/raw/master/samples/angular-msgraph/assets/Connect.png", + "alt": "Angular MS Graph Web Part Built with Angular v1.x", + "slides": null + } + ], + "authors": [ + { + "gitHubAccount": "davidhartman", + "company": "", + "pictureUrl": "https://github.com/davidhartman.png" + } + ], + "references": [] +} diff --git a/samples/angular-multipage/assets/sample.json b/samples/angular-multipage/assets/sample.json new file mode 100644 index 000000000..d68a6a546 --- /dev/null +++ b/samples/angular-multipage/assets/sample.json @@ -0,0 +1 @@ +{"name":"pnp-sp-dev-spfx-web-parts-angular-multipage","version":null,"source":"pnp","title":"Angular multi-page client-side web part","shortDescription":"This is a sample SharePoint Framework client-side web part built using Angular, illustrating building multi-page web parts.","longDescription":["This is a sample SharePoint Framework client-side web part built using Angular, illustrating building multi-page web parts."],"products":["SharePoint","Office"],"categories":[""],"metadata":[{"key":"CLIENT-SIDE-DEV","value":"Angular"},{"key":"SPFX-VERSION","value":"drop5"}],"thumbnails":[{"type":"image","order":100,"url":"https://github.com/pnp/sp-dev-fx-webparts/raw/master/samples/angular-multipage/assets/poll-preview.gif","alt":"Angular multi-page client-side web part","slides":null}],"authors":[{"gitHubAccount":"waldekmastykarz","company":"","pictureUrl":"https://github.com/waldekmastykarz.png"}],"references":[]} \ No newline at end of file diff --git a/samples/angular-ngofficeuifabric-file-upload/assets/sample.json b/samples/angular-ngofficeuifabric-file-upload/assets/sample.json new file mode 100644 index 000000000..ccb65d68d --- /dev/null +++ b/samples/angular-ngofficeuifabric-file-upload/assets/sample.json @@ -0,0 +1 @@ +{"name":"pnp-sp-dev-spfx-web-parts-angular-ngofficeuifabric-file-upload","version":null,"source":"pnp","title":"File Upload using AngularJs","shortDescription":"File Update/Delete web part using AngularJs and ngOfficeUIFabric with the SharePoint Framework.","longDescription":["File Update/Delete web part using AngularJs and ngOfficeUIFabric with the SharePoint Framework."],"products":["SharePoint","Office"],"categories":[""],"metadata":[{"key":"CLIENT-SIDE-DEV","value":"Angular"},{"key":"SPFX-VERSION","value":"GA"}],"thumbnails":[{"type":"image","order":100,"url":"https://camo.githubusercontent.com/674cb6e830d597e1ab9bb89992b6fe7f0359b80f/687474703a2f2f692e696d6775722e636f6d2f553571673449492e706e67","alt":"File Upload using AngularJs","slides":null}],"authors":[{"gitHubAccount":"dipongkor","company":"","pictureUrl":"https://github.com/dipongkor.png"},{"gitHubAccount":"gautamdsheth","company":"","pictureUrl":"https://github.com/gautamdsheth.png"}],"references":[]} \ No newline at end of file diff --git a/samples/angular-ngofficeuifabric-todo/assets/sample.json b/samples/angular-ngofficeuifabric-todo/assets/sample.json new file mode 100644 index 000000000..f8efb00b2 --- /dev/null +++ b/samples/angular-ngofficeuifabric-todo/assets/sample.json @@ -0,0 +1 @@ +{"name":"pnp-sp-dev-spfx-web-parts-angular-ngofficeuifabric-todo","version":null,"source":"pnp","title":"Angular \u0026 ngOfficeUIFabric Client-Side Web Part","shortDescription":"","longDescription":[""],"products":["SharePoint","Office"],"categories":[""],"metadata":[{"key":"CLIENT-SIDE-DEV","value":"Angular"},{"key":"SPFX-VERSION","value":"drop2"}],"thumbnails":[{"type":"image","order":100,"url":"https://avatars2.githubusercontent.com/u/11164679?s=460\u0026v=4","alt":"Angular \u0026 ngOfficeUIFabric Client-Side Web Part","slides":null}],"authors":[{"gitHubAccount":"waldekmastykarz","company":"","pictureUrl":"https://github.com/waldekmastykarz.png"}],"references":[]} \ No newline at end of file diff --git a/samples/angular-search/assets/sample.json b/samples/angular-search/assets/sample.json new file mode 100644 index 000000000..cb3b10019 --- /dev/null +++ b/samples/angular-search/assets/sample.json @@ -0,0 +1 @@ +{"name":"pnp-sp-dev-spfx-web-parts-angular-search","version":null,"source":"pnp","title":"Search Client-Side Web Part Built with Angular v1.x","shortDescription":"This is a sample search web part that illustrates how you can use Angular within the new SharePoint Framework","longDescription":["This is a sample search web part that illustrates how you can use Angular within the new SharePoint Framework"],"products":["SharePoint","Office"],"categories":[""],"metadata":[{"key":"CLIENT-SIDE-DEV","value":"Angular"},{"key":"SPFX-VERSION","value":"rc0"}],"thumbnails":[{"type":"image","order":100,"url":"https://github.com/pnp/sp-dev-fx-webparts/raw/master/samples/angular-search/assets/angularSearch.png","alt":"Search Client-Side Web Part Built with Angular v1.x","slides":null}],"authors":[{"gitHubAccount":"davidhartman","company":"","pictureUrl":"https://github.com/davidhartman.png"}],"references":[]} \ No newline at end of file diff --git a/samples/angular-todo/assets/sample.json b/samples/angular-todo/assets/sample.json new file mode 100644 index 000000000..e192df7be --- /dev/null +++ b/samples/angular-todo/assets/sample.json @@ -0,0 +1 @@ +{"name":"pnp-sp-dev-spfx-web-parts-angular-todo","version":null,"source":"pnp","title":"Angular client-side web part","shortDescription":"Sample Web Part illustrating using Angular with the SharePoint Framework.","longDescription":["Sample Web Part illustrating using Angular with the SharePoint Framework."],"products":["SharePoint","Office"],"categories":[""],"metadata":[{"key":"CLIENT-SIDE-DEV","value":"Angular"},{"key":"SPFX-VERSION","value":"GA"}],"thumbnails":[{"type":"image","order":100,"url":"https://github.com/pnp/sp-dev-fx-webparts/raw/master/samples/angular-todo/assets/preview.png","alt":"Angular client-side web part","slides":null}],"authors":[{"gitHubAccount":"waldekmastykarz","company":"","pictureUrl":"https://github.com/waldekmastykarz.png"}],"references":[]} \ No newline at end of file diff --git a/samples/angular2-prototype/assets/sample.json b/samples/angular2-prototype/assets/sample.json new file mode 100644 index 000000000..367ca0992 --- /dev/null +++ b/samples/angular2-prototype/assets/sample.json @@ -0,0 +1 @@ +{"name":"pnp-sp-dev-spfx-web-parts-angular2-prototype","version":null,"source":"pnp","title":"Angular2 Web Part Prototype","shortDescription":"Sample To Do Web Part built with Angular2. This sample illustrates how you can use Angular2 with the SharePoint Framework.","longDescription":["Sample To Do Web Part built with Angular2. This sample illustrates how you can use Angular2 with the SharePoint Framework."],"products":["SharePoint","Office"],"categories":[""],"metadata":[{"key":"CLIENT-SIDE-DEV","value":"Angular"},{"key":"SPFX-VERSION","value":"rc0"}],"thumbnails":[{"type":"image","order":100,"url":"https://github.com/pnp/sp-dev-fx-webparts/raw/master/samples/angular2-prototype/assets/preview.png","alt":"Angular2 Web Part Prototype","slides":null}],"authors":[{"gitHubAccount":null,"company":"","pictureUrl":"https://github.com/.png"},{"gitHubAccount":"dgaeta","company":"","pictureUrl":"https://github.com/dgaeta.png"}],"references":[]} \ No newline at end of file diff --git a/samples/angularelements-helloworld/assets/sample.json b/samples/angularelements-helloworld/assets/sample.json new file mode 100644 index 000000000..1d75d68d8 --- /dev/null +++ b/samples/angularelements-helloworld/assets/sample.json @@ -0,0 +1 @@ +{"name":"pnp-sp-dev-spfx-web-parts-angularelements-helloworld","version":null,"source":"pnp","title":"Angular Elements in SharePoint Framework","shortDescription":"Set of sample web parts illustrating how to use Angular Elements in the SharePoint Framework.","longDescription":["Set of sample web parts illustrating how to use Angular Elements in the SharePoint Framework."],"products":["SharePoint","Office"],"categories":[""],"metadata":[{"key":"CLIENT-SIDE-DEV","value":"Angular"},{"key":"SPFX-VERSION","value":"1.4.1"}],"thumbnails":[{"type":"image","order":100,"url":"https://github.com/pnp/media/raw/master/parker/pnp/300w/parker.png","alt":"Angular Elements in SharePoint Framework","slides":null}],"authors":[{"gitHubAccount":"waldekmastykarz","company":"","pictureUrl":"https://github.com/waldekmastykarz.png"},{"gitHubAccount":"sebastienlevert","company":"","pictureUrl":"https://github.com/sebastienlevert.png"}],"references":[]} \ No newline at end of file diff --git a/samples/angularelements-html-templatefile/assets/sample.json b/samples/angularelements-html-templatefile/assets/sample.json new file mode 100644 index 000000000..63d654a9a --- /dev/null +++ b/samples/angularelements-html-templatefile/assets/sample.json @@ -0,0 +1 @@ +{"name":"pnp-sp-dev-spfx-web-parts-angularelements-html-templatefile","version":null,"source":"pnp","title":"Angular Elements with HTML Template File in SharePoint Framework","shortDescription":"A sample web part illustrating how to use Angular Elements in the SharePoint Framework with the help of separate template HTML File.","longDescription":["A sample web part illustrating how to use Angular Elements in the SharePoint Framework with the help of separate template HTML File."],"products":["SharePoint","Office"],"categories":[""],"metadata":[{"key":"CLIENT-SIDE-DEV","value":"Angular"},{"key":"SPFX-VERSION","value":"1.4.1"}],"thumbnails":[{"type":"image","order":100,"url":"https://github.com/pnp/media/raw/master/parker/pnp/300w/parker.png","alt":"Angular Elements with HTML Template File in SharePoint Framework","slides":null}],"authors":[{"gitHubAccount":"JayakumarB","company":"","pictureUrl":"https://github.com/JayakumarB.png"}],"references":[]} \ No newline at end of file diff --git a/samples/bootstrap-slider/assets/sample.json b/samples/bootstrap-slider/assets/sample.json new file mode 100644 index 000000000..4cc547f80 --- /dev/null +++ b/samples/bootstrap-slider/assets/sample.json @@ -0,0 +1 @@ +{"name":"pnp-sp-dev-spfx-web-parts-bootstrap-slider","version":null,"source":"pnp","title":"Bootstrap Slider Built with jQuery v1.x and Boostrap v3.x","shortDescription":"Sample bootstrap slider which pulls the slides from a list inside the SharePoint site. The list is automatically deployed once the app is installed in the SharePoint site.","longDescription":["Sample bootstrap slider which pulls the slides from a list inside the SharePoint site. The list is automatically deployed once the app is installed in the SharePoint site."],"products":["SharePoint","Office"],"categories":[""],"metadata":[{"key":"CLIENT-SIDE-DEV","value":"Other"},{"key":"SPFX-VERSION","value":"GA"}],"thumbnails":[{"type":"image","order":100,"url":"https://github.com/pnp/sp-dev-fx-webparts/raw/master/samples/bootstrap-slider/assets/slider_image_1.png","alt":"Bootstrap Slider Built with jQuery v1.x and Boostrap v3.x","slides":null}],"authors":[{"gitHubAccount":"davidhartman","company":"","pictureUrl":"https://github.com/davidhartman.png"}],"references":[]} \ No newline at end of file diff --git a/samples/handlebarsjs-webpack-loader/assets/sample.json b/samples/handlebarsjs-webpack-loader/assets/sample.json new file mode 100644 index 000000000..0497ac19d --- /dev/null +++ b/samples/handlebarsjs-webpack-loader/assets/sample.json @@ -0,0 +1 @@ +{"name":"pnp-sp-dev-spfx-web-parts-handlebarsjs-webpack-loader","version":null,"source":"pnp","title":"Sample with Handlebars.js","shortDescription":"This sample demonstrate how to set up SPFX to use Handlebars through webpack loader.","longDescription":["This sample demonstrate how to set up SPFX to use Handlebars through webpack loader."],"products":["SharePoint","Office"],"categories":[""],"metadata":[{"key":"CLIENT-SIDE-DEV","value":"Handlebars"},{"key":"SPFX-VERSION","value":"1.4.1"}],"thumbnails":[{"type":"image","order":100,"url":"https://avatars2.githubusercontent.com/u/5503835?s=460\u0026v=4","alt":"Sample with Handlebars.js","slides":null}],"authors":[{"gitHubAccount":"StfBauer","company":"","pictureUrl":"https://github.com/StfBauer.png"}],"references":[]} \ No newline at end of file diff --git a/samples/jquery-cdn/assets/sample.json b/samples/jquery-cdn/assets/sample.json new file mode 100644 index 000000000..81b526dea --- /dev/null +++ b/samples/jquery-cdn/assets/sample.json @@ -0,0 +1 @@ +{"name":"pnp-sp-dev-spfx-web-parts-jquery-cdn","version":null,"source":"pnp","title":"Using jQuery loaded from CDN","shortDescription":"This is a sample web Part that illustrates the use of jQuery and its plugins loaded from CDN for building SharePoint Framework client-side web parts.","longDescription":["This is a sample web Part that illustrates the use of jQuery and its plugins loaded from CDN for building SharePoint Framework client-side web parts."],"products":["SharePoint","Office"],"categories":[""],"metadata":[{"key":"CLIENT-SIDE-DEV","value":"jQuery"},{"key":"SPFX-VERSION","value":"drop2"}],"thumbnails":[{"type":"image","order":100,"url":"https://github.com/pnp/sp-dev-fx-webparts/raw/master/samples/jquery-cdn/assets/preview_weather.png","alt":"Using jQuery loaded from CDN","slides":null}],"authors":[{"gitHubAccount":"waldekmastykarz","company":"","pictureUrl":"https://github.com/waldekmastykarz.png"}],"references":[]} \ No newline at end of file diff --git a/samples/jquery-photopile/assets/sample.json b/samples/jquery-photopile/assets/sample.json new file mode 100644 index 000000000..51baa921a --- /dev/null +++ b/samples/jquery-photopile/assets/sample.json @@ -0,0 +1 @@ +{"name":"pnp-sp-dev-spfx-web-parts-jquery-photopile","version":null,"source":"pnp","title":"JQuery, Photopile.JS \u0026 Office UI Fabric Client-Side Web Part","shortDescription":"This is a sample web part that illustrated the use of JQuery and Photopile.Js with the SharePoint Framework.","longDescription":["This is a sample web part that illustrated the use of JQuery and Photopile.Js with the SharePoint Framework."],"products":["SharePoint","Office"],"categories":[""],"metadata":[{"key":"CLIENT-SIDE-DEV","value":"jQuery"},{"key":"SPFX-VERSION","value":"drop1"}],"thumbnails":[{"type":"image","order":100,"url":"https://github.com/pnp/sp-dev-fx-webparts/raw/master/samples/jquery-photopile/assets/photopileoverview.gif","alt":"JQuery, Photopile.JS \u0026 Office UI Fabric Client-Side Web Part","slides":null}],"authors":[{"gitHubAccount":"OlivierCC","company":"","pictureUrl":"https://github.com/OlivierCC.png"}],"references":[]} \ No newline at end of file diff --git a/samples/js-advanced-commenting/assets/sample.json b/samples/js-advanced-commenting/assets/sample.json new file mode 100644 index 000000000..b848653b1 --- /dev/null +++ b/samples/js-advanced-commenting/assets/sample.json @@ -0,0 +1 @@ +{"name":"pnp-sp-dev-spfx-web-parts-js-advanced-commenting","version":null,"source":"pnp","title":"Advanced Comments Box","shortDescription":"This component is developed for the advanced usage of commenting the page or article etc. Page Comments lists will be created to store the comments.","longDescription":["This component is developed for the advanced usage of commenting the page or article etc. Page Comments lists will be created to store the comments."],"products":["SharePoint","Office"],"categories":[""],"metadata":[{"key":"CLIENT-SIDE-DEV","value":"jQuery"},{"key":"SPFX-VERSION","value":"1.9.1"}],"thumbnails":[{"type":"image","order":100,"url":"https://github.com/pnp/sp-dev-fx-webparts/raw/master/samples/js-advanced-commenting/assets/Advanced-Comments-Box.gif","alt":"Advanced Comments Box","slides":null}],"authors":[{"gitHubAccount":"sudharsank","company":"","pictureUrl":"https://github.com/sudharsank.png"}],"references":[]} \ No newline at end of file diff --git a/samples/js-display-list/assets/sample.json b/samples/js-display-list/assets/sample.json new file mode 100644 index 000000000..cd4e21e16 --- /dev/null +++ b/samples/js-display-list/assets/sample.json @@ -0,0 +1 @@ +{"name":"pnp-sp-dev-spfx-web-parts-js-display-list","version":null,"source":"pnp","title":"Display List JavaScript Client-Side Web Part","shortDescription":"This simplistic sample Web Part demonstrates the use of JavaScript in a SharePoint Framework web part. The properties pane for this web part display a drop down list of lists in the current web. Once the user selects one of the lists, the web part display the contents of the list.","longDescription":["This simplistic sample Web Part demonstrates the use of JavaScript in a SharePoint Framework web part. The properties pane for this web part display a drop down list of lists in the current web. Once the user selects one of the lists, the web part display the contents of the list."],"products":["SharePoint","Office"],"categories":[""],"metadata":[{"key":"CLIENT-SIDE-DEV","value":"Javascript"},{"key":"SPFX-VERSION","value":"1.11.0"}],"thumbnails":[{"type":"image","order":100,"url":"https://github.com/pnp/sp-dev-fx-webparts/raw/master/samples/js-display-list/assets/display-list-preview.png","alt":"Display List JavaScript Client-Side Web Part","slides":null}],"authors":[{"gitHubAccount":"VelinGeorgiev","company":"","pictureUrl":"https://github.com/VelinGeorgiev.png"},{"gitHubAccount":"sharepointknight","company":"","pictureUrl":"https://github.com/sharepointknight.png"}],"references":[]} \ No newline at end of file diff --git a/samples/js-dynamic-bundling-libraries/assets/sample.json b/samples/js-dynamic-bundling-libraries/assets/sample.json new file mode 100644 index 000000000..3f493bf79 --- /dev/null +++ b/samples/js-dynamic-bundling-libraries/assets/sample.json @@ -0,0 +1 @@ +{"name":"pnp-sp-dev-spfx-web-parts-js-dynamic-bundling-libraries","version":null,"source":"pnp","title":"Dynamic Bundling \u0026 Loading of SPFx Packages","shortDescription":"This sample illustrates how SPFx functionality and packages can be bundled in multiple \u0027.js\u0027 files then be dynamically \u0026 asynchronously loaded into the page at execution time, such as with a button click.","longDescription":["This sample illustrates how SPFx functionality and packages can be bundled in multiple \u0027.js\u0027 files then be dynamically \u0026 asynchronously loaded into the page at execution time, such as with a button click."],"products":["SharePoint","Office"],"categories":[""],"metadata":[{"key":"CLIENT-SIDE-DEV","value":"Javascript"},{"key":"SPFX-VERSION","value":"1.7.0"}],"thumbnails":[{"type":"image","order":100,"url":"https://github.com/pnp/sp-dev-fx-webparts/raw/master/samples/js-dynamic-bundling-libraries/assets/WebPart-Preview-PostjQueryClick.jpg","alt":"Dynamic Bundling \u0026 Loading of SPFx Packages","slides":null}],"authors":[{"gitHubAccount":"PopWarner","company":"","pictureUrl":"https://github.com/PopWarner.png"}],"references":[]} \ No newline at end of file diff --git a/samples/js-employee-spotlight/assets/sample.json b/samples/js-employee-spotlight/assets/sample.json new file mode 100644 index 000000000..ffb9cd522 --- /dev/null +++ b/samples/js-employee-spotlight/assets/sample.json @@ -0,0 +1 @@ +{"name":"pnp-sp-dev-spfx-web-parts-js-employee-spotlight","version":null,"source":"pnp","title":"Display Employee Spotlight JavaScript Client-Side Web Part","shortDescription":"Simple Web Part that demonstrates the use of SharePoint Framework for showcasing Employee Spotlight. The web part pulls data from a configured list and User Profile service. The properties pane for this web part has 5 cascading dropdowns.","longDescription":["Simple Web Part that demonstrates the use of SharePoint Framework for showcasing Employee Spotlight. The web part pulls data from a configured list and User Profile service. The properties pane for this web part has 5 cascading dropdowns."],"products":["SharePoint","Office"],"categories":[""],"metadata":[{"key":"CLIENT-SIDE-DEV","value":"Javascript"},{"key":"SPFX-VERSION","value":"GA"}],"thumbnails":[{"type":"image","order":100,"url":"https://github.com/pnp/sp-dev-fx-webparts/raw/master/samples/js-employee-spotlight/assets/Employee-spotlight-priview.png","alt":"Display Employee Spotlight JavaScript Client-Side Web Part","slides":null}],"authors":[{"gitHubAccount":"brk114","company":"","pictureUrl":"https://github.com/brk114.png"}],"references":[]} \ No newline at end of file diff --git a/samples/js-extend-gulp/assets/sample.json b/samples/js-extend-gulp/assets/sample.json new file mode 100644 index 000000000..92c29bdaf --- /dev/null +++ b/samples/js-extend-gulp/assets/sample.json @@ -0,0 +1 @@ +{"name":"pnp-sp-dev-spfx-web-parts-js-extend-gulp","version":null,"source":"pnp","title":"Integrating custom gulp tasks to SharePoint Framwork toolchain","shortDescription":"SharePoint client-side development tools use gulp as the build process task runner to...","longDescription":["SharePoint client-side development tools use gulp as the build process task runner to..."],"products":["SharePoint","Office"],"categories":[""],"metadata":[{"key":"CLIENT-SIDE-DEV","value":"Javascript"},{"key":"SPFX-VERSION","value":"rc0"}],"thumbnails":[{"type":"image","order":100,"url":"https://avatars3.githubusercontent.com/u/7882052?s=460\u0026v=4","alt":"Integrating custom gulp tasks to SharePoint Framwork toolchain","slides":null}],"authors":[{"gitHubAccount":"chakkaradeep","company":"","pictureUrl":"https://github.com/chakkaradeep.png"}],"references":[]} \ No newline at end of file diff --git a/samples/js-extend-webpack/assets/sample.json b/samples/js-extend-webpack/assets/sample.json new file mode 100644 index 000000000..4edc153c5 --- /dev/null +++ b/samples/js-extend-webpack/assets/sample.json @@ -0,0 +1 @@ +{"name":"pnp-sp-dev-spfx-web-parts-js-extend-webpack","version":null,"source":"pnp","title":"Extending webpack in the SharePoint Framework toolchain","shortDescription":"This sample shows how to use the webpack markdown-loader to preprocess markdown files to HTML string.","longDescription":["This sample shows how to use the webpack markdown-loader to preprocess markdown files to HTML string."],"products":["SharePoint","Office"],"categories":[""],"metadata":[{"key":"CLIENT-SIDE-DEV","value":"Javascript"},{"key":"SPFX-VERSION","value":"GA"}],"thumbnails":[{"type":"image","order":100,"url":"https://github.com/pnp/media/raw/master/parker/pnp/300w/parker.png","alt":"Extending webpack in the SharePoint Framework toolchain","slides":null}],"authors":[{"gitHubAccount":"VelinGeorgiev","company":"","pictureUrl":"https://github.com/VelinGeorgiev.png"},{"gitHubAccount":"chakkaradeep","company":"","pictureUrl":"https://github.com/chakkaradeep.png"}],"references":[]} \ No newline at end of file diff --git a/samples/js-gitHubBadge/assets/sample.json b/samples/js-gitHubBadge/assets/sample.json new file mode 100644 index 000000000..043f96e42 --- /dev/null +++ b/samples/js-gitHubBadge/assets/sample.json @@ -0,0 +1 @@ +{"name":"pnp-sp-dev-spfx-web-parts-js-gitHubBadge","version":null,"source":"pnp","title":"GitHub Badge","shortDescription":"","longDescription":[""],"products":["SharePoint","Office"],"categories":[""],"metadata":[{"key":"CLIENT-SIDE-DEV","value":"Javascript"},{"key":"SPFX-VERSION","value":"1.8.0"}],"thumbnails":[{"type":"image","order":100,"url":"https://github.com/pnp/sp-dev-fx-webparts/raw/master/samples/js-gitHubBadge/assets/1.png","alt":"GitHub Badge","slides":null}],"authors":[{"gitHubAccount":"skaggej","company":"","pictureUrl":"https://github.com/skaggej.png"}],"references":[]} \ No newline at end of file diff --git a/samples/js-modern-calendar/assets/sample.json b/samples/js-modern-calendar/assets/sample.json new file mode 100644 index 000000000..ab408232b --- /dev/null +++ b/samples/js-modern-calendar/assets/sample.json @@ -0,0 +1 @@ +{"name":"pnp-sp-dev-spfx-web-parts-js-modern-calendar","version":null,"source":"pnp","title":"Modern Calendar","shortDescription":"This is a modern web part built on the GA version of the SharePoint Framework demonstrating how to build a custom web part with a calendar capabilities in it.","longDescription":["This is a modern web part built on the GA version of the SharePoint Framework demonstrating how to build a custom web part with a calendar capabilities in it."],"products":["SharePoint","Office"],"categories":[""],"metadata":[{"key":"CLIENT-SIDE-DEV","value":"Javascript"},{"key":"SPFX-VERSION","value":"1.6.0"}],"thumbnails":[{"type":"image","order":100,"url":"https://cloud.githubusercontent.com/assets/13068139/23584808/14c3ec26-0121-11e7-8be8-65fbcca32b62.png","alt":"Modern Calendar","slides":null}],"authors":[{"gitHubAccount":"jcoleman-pcprofessional","company":"","pictureUrl":"https://github.com/jcoleman-pcprofessional.png"},{"gitHubAccount":"nanddeepn","company":"","pictureUrl":"https://github.com/nanddeepn.png"}],"references":[]} \ No newline at end of file diff --git a/samples/js-msgraph-thumbnail/assets/sample.json b/samples/js-msgraph-thumbnail/assets/sample.json new file mode 100644 index 000000000..3e743750d --- /dev/null +++ b/samples/js-msgraph-thumbnail/assets/sample.json @@ -0,0 +1 @@ +{"name":"pnp-sp-dev-spfx-web-parts-js-msgraph-thumbnail","version":null,"source":"pnp","title":"Thumbnail/preview of pages and files","shortDescription":"A web part showcasing how to call the Microsoft Graph Thumbnails API to generate a preview image for files and pages in SharePoint. The sample illustrates how to craft the preview URL both from a search result as well as from a SharePoint item object.","longDescription":["A web part showcasing how to call the Microsoft Graph Thumbnails API to generate a preview image for files and pages in SharePoint. The sample illustrates how to craft the preview URL both from a search result as well as from a SharePoint item object."],"products":["SharePoint","Office"],"categories":[""],"metadata":[{"key":"CLIENT-SIDE-DEV","value":"React"},{"key":"SPFX-VERSION","value":"1.10.0"}],"thumbnails":[{"type":"image","order":100,"url":"https://github.com/pnp/sp-dev-fx-webparts/raw/master/samples/js-msgraph-thumbnail/preview.gif","alt":"Thumbnail/preview of pages and files","slides":null}],"authors":[{"gitHubAccount":"wobba","company":"","pictureUrl":"https://github.com/wobba.png"}],"references":[]} \ No newline at end of file diff --git a/samples/js-myflows/assets/sample.json b/samples/js-myflows/assets/sample.json new file mode 100644 index 000000000..569b6c3cc --- /dev/null +++ b/samples/js-myflows/assets/sample.json @@ -0,0 +1 @@ +{"name":"pnp-sp-dev-spfx-web-parts-js-myflows","version":null,"source":"pnp","title":"My Flows Web Part","shortDescription":"Manage current user flows in SharePoint or Teams Tab, this web part use the msflowsdk-1.1.js","longDescription":["Manage current user flows in SharePoint or Teams Tab, this web part use the msflowsdk-1.1.js"],"products":["SharePoint","Office"],"categories":[""],"metadata":[{"key":"CLIENT-SIDE-DEV","value":"Javascript"},{"key":"SPFX-VERSION","value":"1.8.2"}],"thumbnails":[{"type":"image","order":100,"url":"https://github.com/pnp/sp-dev-fx-webparts/raw/master/samples/js-myflows/assets/Screenshot4.png","alt":"My Flows Web Part","slides":null}],"authors":[{"gitHubAccount":"joaojmendes","company":"","pictureUrl":"https://github.com/joaojmendes.png"}],"references":[]} \ No newline at end of file diff --git a/samples/js-powerbi-embedded/assets/sample.json b/samples/js-powerbi-embedded/assets/sample.json new file mode 100644 index 000000000..b632da694 --- /dev/null +++ b/samples/js-powerbi-embedded/assets/sample.json @@ -0,0 +1 @@ +{"name":"pnp-sp-dev-spfx-web-parts-js-powerbi-embedded","version":null,"source":"pnp","title":"Embed a PowerBI report in a Client-Side Web Part","shortDescription":"This sample SharePoint Framework client-side web part embedding a PowerBI report using PowerBI Embedded without any server-side code.","longDescription":["This sample SharePoint Framework client-side web part embedding a PowerBI report using PowerBI Embedded without any server-side code."],"products":["SharePoint","Office"],"categories":[""],"metadata":[{"key":"CLIENT-SIDE-DEV","value":"Javascript"},{"key":"SPFX-VERSION","value":"drop2"}],"thumbnails":[{"type":"image","order":100,"url":"https://github.com/pnp/sp-dev-fx-webparts/raw/master/samples/js-powerbi-embedded/assets/screenshot_powerbi_embedded_spfx.png","alt":"Embed a PowerBI report in a Client-Side Web Part","slides":null}],"authors":[{"gitHubAccount":"roldengarm","company":"","pictureUrl":"https://github.com/roldengarm.png"}],"references":[]} \ No newline at end of file diff --git a/samples/js-propertycontrols-svg/assets/sample.json b/samples/js-propertycontrols-svg/assets/sample.json new file mode 100644 index 000000000..18168e789 --- /dev/null +++ b/samples/js-propertycontrols-svg/assets/sample.json @@ -0,0 +1 @@ +{"name":"pnp-sp-dev-spfx-web-parts-js-propertycontrols-svg","version":null,"source":"pnp","title":"JS Property Controls SVG","shortDescription":"An SPFx web part that displays a Scalable Vector Graphics (SVG) image using properties to customize how it is rendered. The web part utilizes the PnP SPFx Property Controls package (specifially the SpinButton and ColorPicker) to set these properties.","longDescription":["An SPFx web part that displays a Scalable Vector Graphics (SVG) image using properties to customize how it is rendered. The web part utilizes the PnP SPFx Property Controls package (specifially the SpinButton and ColorPicker) to set these properties."],"products":["SharePoint","Office"],"categories":[""],"metadata":[{"key":"CLIENT-SIDE-DEV","value":"Javascript"},{"key":"SPFX-VERSION","value":"1.3.4"}],"thumbnails":[{"type":"image","order":100,"url":"https://github.com/pnp/sp-dev-fx-webparts/raw/master/samples/js-propertycontrols-svg/assets/js-propertycontrols-svg.gif","alt":"JS Property Controls SVG","slides":null}],"authors":[{"gitHubAccount":"thechriskent","company":"","pictureUrl":"https://github.com/thechriskent.png"}],"references":[]} \ No newline at end of file diff --git a/samples/js-public-unjoined-teams/assets/sample.json b/samples/js-public-unjoined-teams/assets/sample.json new file mode 100644 index 000000000..30e6c5f3d --- /dev/null +++ b/samples/js-public-unjoined-teams/assets/sample.json @@ -0,0 +1 @@ +{"name":"pnp-sp-dev-spfx-web-parts-js-public-unjoined-teams","version":null,"source":"pnp","title":"Public teams I\u0027m not a member of","shortDescription":"This web part lists all the public teams the current user is not yet a member of. They can then join any of those teams by clicking the button right next to the team name. This web part can also be added to Teams as a tab (built with the 1.7.1 plusbeta/preview version).","longDescription":["This web part lists all the public teams the current user is not yet a member of. They can then join any of those teams by clicking the button right next to the team name. This web part can also be added to Teams as a tab (built with the 1.7.1 plusbeta/preview version)."],"products":["SharePoint","Office"],"categories":[""],"metadata":[{"key":"CLIENT-SIDE-DEV","value":"Javascript"},{"key":"SPFX-VERSION","value":"1.7.1"}],"thumbnails":[{"type":"image","order":100,"url":"https://github.com/pnp/sp-dev-fx-webparts/raw/master/samples/js-public-unjoined-teams/assets/js-public-unjoined-teams.gif","alt":"Public teams I\u0027m not a member of","slides":null}],"authors":[{"gitHubAccount":"LauraKokkarinen","company":"","pictureUrl":"https://github.com/LauraKokkarinen.png"}],"references":[]} \ No newline at end of file diff --git a/samples/js-skype-status/assets/sample.json b/samples/js-skype-status/assets/sample.json new file mode 100644 index 000000000..e4b701a52 --- /dev/null +++ b/samples/js-skype-status/assets/sample.json @@ -0,0 +1 @@ +{"name":"pnp-sp-dev-spfx-web-parts-js-skype-status","version":null,"source":"pnp","title":"JavaScript Skype Status Web Part","shortDescription":"This sample demonstrates how to use the UCWA JS Sdk for skype in the SharePoint Framework. It shows how to subscribe to status change of the different people of the organization but you can get much more information, checkout the documentation","longDescription":["This sample demonstrates how to use the UCWA JS Sdk for skype in the SharePoint Framework. It shows how to subscribe to status change of the different people of the organization but you can get much more information, checkout the documentation"],"products":["SharePoint","Office"],"categories":[""],"metadata":[{"key":"CLIENT-SIDE-DEV","value":"Javascript"},{"key":"SPFX-VERSION","value":"1.8.0"}],"thumbnails":[{"type":"image","order":100,"url":"https://github.com/pnp/sp-dev-fx-webparts/raw/master/samples/js-skype-status/images/demo.gif","alt":"JavaScript Skype Status Web Part","slides":null}],"authors":[{"gitHubAccount":"baywet","company":"","pictureUrl":"https://github.com/baywet.png"}],"references":[]} \ No newline at end of file diff --git a/samples/js-solution-editions/assets/sample.json b/samples/js-solution-editions/assets/sample.json new file mode 100644 index 000000000..2b286389f --- /dev/null +++ b/samples/js-solution-editions/assets/sample.json @@ -0,0 +1 @@ +{"name":"pnp-sp-dev-spfx-web-parts-js-solution-editions","version":null,"source":"pnp","title":"Handling Multiple Editions of SPFx Solution","shortDescription":"This sample shows possible approach of handling multiple editions (e.g. trial, lite, full) of SharePoint Framework solution.","longDescription":["This sample shows possible approach of handling multiple editions (e.g. trial, lite, full) of SharePoint Framework solution."],"products":["SharePoint","Office"],"categories":[""],"metadata":[{"key":"CLIENT-SIDE-DEV","value":"Javascript"},{"key":"SPFX-VERSION","value":"GA"}],"thumbnails":[{"type":"image","order":100,"url":"https://avatars3.githubusercontent.com/u/17036219?s=460\u0026v=4","alt":"Handling Multiple Editions of SPFx Solution","slides":null}],"authors":[{"gitHubAccount":"AJIXuMuK","company":"","pictureUrl":"https://github.com/AJIXuMuK.png"}],"references":[]} \ No newline at end of file diff --git a/samples/js-theme-manager-2019/assets/sample.json b/samples/js-theme-manager-2019/assets/sample.json new file mode 100644 index 000000000..7461bdd5c --- /dev/null +++ b/samples/js-theme-manager-2019/assets/sample.json @@ -0,0 +1 @@ +{"name":"pnp-sp-dev-spfx-web-parts-js-theme-manager-2019","version":null,"source":"pnp","title":"Modern Experience Theme Manager 2019","shortDescription":"This sample web part provides a user interface for applying a Modern Experience theme in SharePoint 2019 on-premises.","longDescription":["This sample web part provides a user interface for applying a Modern Experience theme in SharePoint 2019 on-premises."],"products":["SharePoint","Office"],"categories":[""],"metadata":[{"key":"CLIENT-SIDE-DEV","value":"Javascript"},{"key":"SPFX-VERSION","value":"1.8.2"}],"thumbnails":[{"type":"image","order":100,"url":"https://github.com/pnp/sp-dev-fx-webparts/raw/master/samples/js-theme-manager-2019/assets/apply-a-theme.png","alt":"Modern Experience Theme Manager 2019","slides":null}],"authors":[{"gitHubAccount":"PopWarner","company":"","pictureUrl":"https://github.com/PopWarner.png"},{"gitHubAccount":"bcameron1231","company":"","pictureUrl":"https://github.com/bcameron1231.png"},{"gitHubAccount":null,"company":"","pictureUrl":"https://github.com/.png"},{"gitHubAccount":"skaggej","company":"","pictureUrl":"https://github.com/skaggej.png"}],"references":[]} \ No newline at end of file diff --git a/samples/js-theme-manager/assets/sample.json b/samples/js-theme-manager/assets/sample.json new file mode 100644 index 000000000..a86a168b8 --- /dev/null +++ b/samples/js-theme-manager/assets/sample.json @@ -0,0 +1 @@ +{"name":"pnp-sp-dev-spfx-web-parts-js-theme-manager","version":null,"source":"pnp","title":"Modern Experience Theme Manager","shortDescription":"This sample web part provides a user interface for creating, updating, deleting and applying a Modern Experience SharePoint theme in SharePoint Online.","longDescription":["This sample web part provides a user interface for creating, updating, deleting and applying a Modern Experience SharePoint theme in SharePoint Online."],"products":["SharePoint","Office"],"categories":[""],"metadata":[{"key":"CLIENT-SIDE-DEV","value":"Javascript"},{"key":"SPFX-VERSION","value":"1.10.0"}],"thumbnails":[{"type":"image","order":100,"url":"https://github.com/pnp/sp-dev-fx-webparts/raw/master/samples/js-theme-manager/assets/create-a-theme.png","alt":"Modern Experience Theme Manager","slides":null}],"authors":[{"gitHubAccount":"PopWarner","company":"","pictureUrl":"https://github.com/PopWarner.png"},{"gitHubAccount":"bcameron1231","company":"","pictureUrl":"https://github.com/bcameron1231.png"},{"gitHubAccount":"hugoabernier","company":"","pictureUrl":"https://github.com/hugoabernier.png"}],"references":[]} \ No newline at end of file diff --git a/samples/js-workbench-customizer/assets/sample.json b/samples/js-workbench-customizer/assets/sample.json new file mode 100644 index 000000000..0452d608a --- /dev/null +++ b/samples/js-workbench-customizer/assets/sample.json @@ -0,0 +1 @@ +{"name":"pnp-sp-dev-spfx-web-parts-js-workbench-customizer","version":null,"source":"pnp","title":"Workbench customizer","shortDescription":"This sample shows how the Workbench page can be customized to display in a way that better mimics a modern SharePoint page.","longDescription":["This sample shows how the Workbench page can be customized to display in a way that better mimics a modern SharePoint page."],"products":["SharePoint","Office"],"categories":[""],"metadata":[{"key":"CLIENT-SIDE-DEV","value":"Javascript"},{"key":"SPFX-VERSION","value":"1.11.0"}],"thumbnails":[{"type":"image","order":100,"url":"https://github.com/pnp/sp-dev-fx-webparts/raw/master/samples/js-workbench-customizer/assets/Preview.png","alt":"Workbench customizer","slides":null}],"authors":[{"gitHubAccount":"joelfmrodrigues","company":"","pictureUrl":"https://github.com/joelfmrodrigues.png"}],"references":[]} \ No newline at end of file diff --git a/samples/knockout-dependent-properties/assets/sample.json b/samples/knockout-dependent-properties/assets/sample.json new file mode 100644 index 000000000..d538590b0 --- /dev/null +++ b/samples/knockout-dependent-properties/assets/sample.json @@ -0,0 +1 @@ +{"name":"pnp-sp-dev-spfx-web-parts-knockout-dependent-properties","version":null,"source":"pnp","title":"Knockout Dependent Properties","shortDescription":"Sample Web Part illustrating...","longDescription":["Sample Web Part illustrating..."],"products":["SharePoint","Office"],"categories":[""],"metadata":[{"key":"CLIENT-SIDE-DEV","value":"Knockout"},{"key":"SPFX-VERSION","value":"GA"}],"thumbnails":[{"type":"image","order":100,"url":"https://github.com/pnp/sp-dev-fx-webparts/raw/master/samples/knockout-dependent-properties/assets/dep-props.png","alt":"Knockout Dependent Properties","slides":null}],"authors":[{"gitHubAccount":"AJIXuMuK","company":"","pictureUrl":"https://github.com/AJIXuMuK.png"}],"references":[]} \ No newline at end of file diff --git a/samples/knockout-sp-pnp-js/assets/sample.json b/samples/knockout-sp-pnp-js/assets/sample.json new file mode 100644 index 000000000..e54210052 --- /dev/null +++ b/samples/knockout-sp-pnp-js/assets/sample.json @@ -0,0 +1 @@ +{"name":"pnp-sp-dev-spfx-web-parts-knockout-sp-pnp-js","version":null,"source":"pnp","title":"Sample showing the use of @pnp/sp library with Knockoutjs","shortDescription":"This web part demonstrates how to integrate the @pnp/sp library into the SharePoint Framework as well as including mock data and simple list I/O.","longDescription":["This web part demonstrates how to integrate the @pnp/sp library into the SharePoint Framework as well as including mock data and simple list I/O."],"products":["SharePoint","Office"],"categories":[""],"metadata":[{"key":"CLIENT-SIDE-DEV","value":"Knockout"},{"key":"SPFX-VERSION","value":"1.7.0"}],"thumbnails":[{"type":"image","order":100,"url":"https://github.com/pnp/sp-dev-fx-webparts/raw/master/samples/knockout-sp-pnp-js/assets/screenshot.png","alt":"Sample showing the use of @pnp/sp library with Knockoutjs","slides":null}],"authors":[{"gitHubAccount":"patrick-rodgers","company":"","pictureUrl":"https://github.com/patrick-rodgers.png"}],"references":[]} \ No newline at end of file diff --git a/samples/knockout-taxonomy/assets/sample.json b/samples/knockout-taxonomy/assets/sample.json new file mode 100644 index 000000000..e26182651 --- /dev/null +++ b/samples/knockout-taxonomy/assets/sample.json @@ -0,0 +1 @@ +{"name":"pnp-sp-dev-spfx-web-parts-knockout-taxonomy","version":null,"source":"pnp","title":"Taxonomy Web Part","shortDescription":"Sample Web Part illustrating Reading taxonomy term stores\u0027 hierarchy from SharePoint, Loading JavaScript Object Model scripts, creating Knockout components","longDescription":["Sample Web Part illustrating Reading taxonomy term stores\u0027 hierarchy from SharePoint, Loading JavaScript Object Model scripts, creating Knockout components"],"products":["SharePoint","Office"],"categories":[""],"metadata":[{"key":"CLIENT-SIDE-DEV","value":"Knockout"},{"key":"SPFX-VERSION","value":"GA"}],"thumbnails":[{"type":"image","order":100,"url":"https://github.com/pnp/sp-dev-fx-webparts/raw/master/samples/knockout-taxonomy/assets/Taxonomy.png","alt":"Taxonomy Web Part","slides":null}],"authors":[{"gitHubAccount":"AJIXuMuK","company":"","pictureUrl":"https://github.com/AJIXuMuK.png"}],"references":[]} \ No newline at end of file diff --git a/samples/pnp-controls/assets/sample.json b/samples/pnp-controls/assets/sample.json new file mode 100644 index 000000000..ca7c91a2d --- /dev/null +++ b/samples/pnp-controls/assets/sample.json @@ -0,0 +1 @@ +{"name":"pnp-sp-dev-spfx-web-parts-pnp-controls","version":null,"source":"pnp","title":"SharePoint Framework PnP Controls Sample","shortDescription":"This is a sample project that contains a web part which makes use of the PnP SPFx Controls","longDescription":["This is a sample project that contains a web part which makes use of the PnP SPFx Controls"],"products":["SharePoint","Office"],"categories":[""],"metadata":[{"key":"CLIENT-SIDE-DEV","value":"React"},{"key":"SPFX-VERSION","value":"1.11.0"}],"thumbnails":[{"type":"image","order":100,"url":"https://github.com/pnp/sp-dev-fx-webparts/raw/master/samples/pnp-controls/assets/webpart-outcome.gif","alt":"SharePoint Framework PnP Controls Sample","slides":null}],"authors":[{"gitHubAccount":"estruyf","company":"","pictureUrl":"https://github.com/estruyf.png"},{"gitHubAccount":"Swaminathan-Sriram","company":"","pictureUrl":"https://github.com/Swaminathan-Sriram.png"}],"references":[]} \ No newline at end of file diff --git a/samples/react-3rd-party-api/assets/sample.json b/samples/react-3rd-party-api/assets/sample.json new file mode 100644 index 000000000..de519b945 --- /dev/null +++ b/samples/react-3rd-party-api/assets/sample.json @@ -0,0 +1 @@ +{"name":"pnp-sp-dev-spfx-web-parts-react-3rd-party-api","version":null,"source":"pnp","title":"Consuming Third Party APIs secured with Azure Active Directory within SharePoint Framework","shortDescription":"This sub folders contains a client-side project that shows how to consume a 3rd party API within SharePoint Framework.","longDescription":["This sub folders contains a client-side project that shows how to consume a 3rd party API within SharePoint Framework."],"products":["SharePoint","Office"],"categories":[""],"metadata":[{"key":"CLIENT-SIDE-DEV","value":"React"},{"key":"SPFX-VERSION","value":"1.4.1"}],"thumbnails":[{"type":"image","order":100,"url":"https://github.com/pnp/sp-dev-fx-webparts/raw/master/samples/react-3rd-party-api/images/react-3rd-party-api-ui-sample.gif","alt":"Consuming Third Party APIs secured with Azure Active Directory within SharePoint Framework","slides":null}],"authors":[{"gitHubAccount":"PaoloPia","company":"","pictureUrl":"https://github.com/PaoloPia.png"}],"references":[]} \ No newline at end of file diff --git a/samples/react-Edit-ApplicationCustomizer/assets/sample.json b/samples/react-Edit-ApplicationCustomizer/assets/sample.json new file mode 100644 index 000000000..27c8e9668 --- /dev/null +++ b/samples/react-Edit-ApplicationCustomizer/assets/sample.json @@ -0,0 +1 @@ +{"name":"pnp-sp-dev-spfx-web-parts-react-edit-applicationcustomizer","version":null,"source":"pnp","title":"Edit Application Customizers","shortDescription":"This web part will allow users to view/update application customizers properties across any web where the current user has access to.","longDescription":["This web part will allow users to view/update application customizers properties across any web where the current user has access to."],"products":["SharePoint","Office"],"categories":[""],"metadata":[{"key":"CLIENT-SIDE-DEV","value":"React"},{"key":"SPFX-VERSION","value":"1.11.0"}],"thumbnails":[{"type":"image","order":100,"url":"https://github.com/pnp/sp-dev-fx-webparts/raw/master/samples/react-Edit-ApplicationCustomizer/assets/react-all-applicationcustomizers.gif?raw=true","alt":"Edit Application Customizers","slides":null}],"authors":[{"gitHubAccount":null,"company":"","pictureUrl":"https://github.com/.png"},{"gitHubAccount":"siddharth-vaghasia","company":"","pictureUrl":"https://github.com/siddharth-vaghasia.png"}],"references":[]} \ No newline at end of file diff --git a/samples/react-aad-implicitflow/assets/sample.json b/samples/react-aad-implicitflow/assets/sample.json new file mode 100644 index 000000000..d272b4a06 --- /dev/null +++ b/samples/react-aad-implicitflow/assets/sample.json @@ -0,0 +1 @@ +{"name":"pnp-sp-dev-spfx-web-parts-react-aad-implicitflow","version":null,"source":"pnp","title":"Azure Active Directory implicit flow authentication samples","shortDescription":"Sample SharePoint Framework web parts built using React illustrating different scenarios using implicit OAuth flow with Azure Active Directory.","longDescription":["Sample SharePoint Framework web parts built using React illustrating different scenarios using implicit OAuth flow with Azure Active Directory."],"products":["SharePoint","Office"],"categories":[""],"metadata":[{"key":"CLIENT-SIDE-DEV","value":"React"},{"key":"SPFX-VERSION","value":"GA"}],"thumbnails":[{"type":"image","order":100,"url":"https://github.com/pnp/sp-dev-fx-webparts/raw/master/samples/react-aad-implicitflow/assets/upcoming-meetings-preview.png","alt":"Azure Active Directory implicit flow authentication samples","slides":null}],"authors":[{"gitHubAccount":"waldekmastykarz","company":"","pictureUrl":"https://github.com/waldekmastykarz.png"}],"references":[]} \ No newline at end of file diff --git a/samples/react-aad-webapi/assets/sample.json b/samples/react-aad-webapi/assets/sample.json new file mode 100644 index 000000000..908a6dfa6 --- /dev/null +++ b/samples/react-aad-webapi/assets/sample.json @@ -0,0 +1 @@ +{"name":"pnp-sp-dev-spfx-web-parts-react-aad-webapi","version":null,"source":"pnp","title":"Call custom Web API secured with AAD from SharePoint Framework client-side web part","shortDescription":"Sample SharePoint Framework client-side web part illustrating communication with a custom Web API secured with Azure Active Directory.","longDescription":["Sample SharePoint Framework client-side web part illustrating communication with a custom Web API secured with Azure Active Directory."],"products":["SharePoint","Office"],"categories":[""],"metadata":[{"key":"CLIENT-SIDE-DEV","value":"React"},{"key":"SPFX-VERSION","value":"drop4"}],"thumbnails":[{"type":"image","order":100,"url":"https://github.com/pnp/sp-dev-fx-webparts/raw/master/samples/react-aad-webapi/assets/preview.png","alt":"Call custom Web API secured with AAD from SharePoint Framework client-side web part","slides":null}],"authors":[{"gitHubAccount":"waldekmastykarz","company":"","pictureUrl":"https://github.com/waldekmastykarz.png"}],"references":[]} \ No newline at end of file diff --git a/samples/react-accordion-dynamic-section/assets/sample.json b/samples/react-accordion-dynamic-section/assets/sample.json index 7e93d36cb..f84b6913a 100644 --- a/samples/react-accordion-dynamic-section/assets/sample.json +++ b/samples/react-accordion-dynamic-section/assets/sample.json @@ -1,68 +1 @@ -{ - "$schema": "https://developer.microsoft.com/en-us/json-schemas/pnp/samples/v1.0/metadata-schema.json", - "name": "pnp-sp-dev-spfx-web-parts-react-accordion-dynamic-section", - "version": "1.4.2.0", - "source": "pnp", - "title": "Dynamic Accordion - FAQ Builder", - "shortDescription": "This sample is based on Erik Benke and Mike Zimmerman Accordion Section FAQ Builder web part. It was extended support single FAQs list based on Category and dynamic properties selection.", - "longDescription": - [ - "This sample is based on Erik Benke and Mike Zimmerman's Accordion Section FAQ Builder web part. It was extended support single FAQs list based on Category and dynamic properties selection.", - "Adds a collapsible accordion section to an Office 365 SharePoint page or Teams Tab.", - "Ideal for displaying FAQs.", - "When adding the web part, you'll be prompted to select a list from a property panel dropdown (target list must be created with FAQ type Question and Answer.).", - "The web part expects a column called Category of type choice that will be used as the category.", - "The web part will automatically load all the properties in two dropdowns. One for Accordion Title and One for Accordion Content that must be html type.", - "This will generate an accordion with one section for each item in the list.", - "Modifications/deletions/additions to the list items in the target list of an added web part are automatically reflected on the page." - ], - "products": [ - "Microsoft Teams", "SharePoint", "Office" - ], - "categories": [ - ], - "metadata": [ - { - "key": "CLIENT-SIDE-DEV", - "value":"React" - }, - { - "key": "SPFX-VERSION", - "value":"1.10" - } - ], - "thumbnails": [ - { - "type": "image", - "order": 100, - "url": "https://github.com/pnp/sp-dev-fx-webparts/raw/master/samples/react-accordion-dynamic-section/assets/react-accordion-section.gif", - "alt": "Alt text for the image" - }, - { - "type": "slideshow", - "order": 102, - "alt": "Alt text for the image", - "slides": [ - { "url": "https://github.com/pnp/sp-dev-fx-webparts/raw/master/samples/react-accordion-dynamic-section/assets/FAQsList.png","order": 10, "alt": "The FAQ list, showing the category column"}, - { "url": "https://github.com/pnp/sp-dev-fx-webparts/raw/master/samples/react-accordion-dynamic-section/assets/AccordionSettings1.png","order": 20, "alt": "The web part before being configured"}, - { "url": "https://github.com/pnp/sp-dev-fx-webparts/raw/master/samples/react-accordion-dynamic-section/assets/AccordionSettings2.png","order": 30, "alt": "An illustration showing the relation between the configuration settings and the web part results"} - ] - } - ], - "authors": [ - { - "gitHubAccount": "ejbenke", - "company": "Clackamas County", - "pictureUrl": "https://avatars.githubusercontent.com/u/5017358?s=460&u=789d537eb1e89ce82b36604fa7ff48cc40fcd5a2&v=4" - }, - { - "gitHubAccount": "mikezimm", - "pictureUrl": "https://avatars.githubusercontent.com/u/49648086?s=460&v=4" - }, - { - "gitHubAccount": "jyasir", - "company": "DXC Technology", - "pictureUrl": "https://pbs.twimg.com/profile_images/1145701162190082050/pbgFe-BJ_400x400.png" - } - ] -} \ No newline at end of file +{"name":"pnp-sp-dev-spfx-web-parts-react-accordion-dynamic-section","version":null,"source":"pnp","title":"Dynamic Accordion - FAQ Builder web part","shortDescription":"This sample is based on Erik Benke and Mike Zimmerman Accordion Section FAQ Builder web part. It was extended support single FAQs list based on Category and dynamic properties selection.","longDescription":["This sample is based on Erik Benke and Mike Zimmerman Accordion Section FAQ Builder web part. It was extended support single FAQs list based on Category and dynamic properties selection."],"products":["SharePoint","Office"],"categories":[""],"metadata":[{"key":"CLIENT-SIDE-DEV","value":"React"},{"key":"SPFX-VERSION","value":"1.10.0"}],"thumbnails":[{"type":"image","order":100,"url":"https://github.com/pnp/sp-dev-fx-webparts/raw/master/samples/react-accordion-dynamic-section/assets/react-accordion-section.gif","alt":"Dynamic Accordion - FAQ Builder web part","slides":null}],"authors":[{"gitHubAccount":"jerryyasir","company":"","pictureUrl":"https://github.com/jerryyasir.png"},{"gitHubAccount":"jack-vinitsky","company":"","pictureUrl":"https://github.com/jack-vinitsky.png"},{"gitHubAccount":"Ravikadri","company":"","pictureUrl":"https://github.com/Ravikadri.png"}],"references":[]} \ No newline at end of file diff --git a/samples/react-accordion-section/assets/sample.json b/samples/react-accordion-section/assets/sample.json new file mode 100644 index 000000000..f276e5e81 --- /dev/null +++ b/samples/react-accordion-section/assets/sample.json @@ -0,0 +1 @@ +{"name":"pnp-sp-dev-spfx-web-parts-react-accordion-section","version":null,"source":"pnp","title":"Accordion Section FAQ Builder","shortDescription":"Adds a collapsible accordion section to an Office 365 SharePoint page or Teams Tab. Ideal for creating FAQs.","longDescription":["Adds a collapsible accordion section to an Office 365 SharePoint page or Teams Tab. Ideal for creating FAQs."],"products":["SharePoint","Office"],"categories":[""],"metadata":[{"key":"CLIENT-SIDE-DEV","value":"React"},{"key":"SPFX-VERSION","value":"1.10.0"}],"thumbnails":[{"type":"image","order":100,"url":"https://github.com/pnp/sp-dev-fx-webparts/raw/master/samples/react-accordion-section/assets/react-accordion-section.gif","alt":"Accordion Section FAQ Builder","slides":null}],"authors":[{"gitHubAccount":"ejbenke","company":"","pictureUrl":"https://github.com/ejbenke.png"},{"gitHubAccount":"mikezimm","company":"","pictureUrl":"https://github.com/mikezimm.png"}],"references":[]} \ No newline at end of file diff --git a/samples/react-accordion/assets/sample.json b/samples/react-accordion/assets/sample.json new file mode 100644 index 000000000..660be89ff --- /dev/null +++ b/samples/react-accordion/assets/sample.json @@ -0,0 +1 @@ +{"name":"pnp-sp-dev-spfx-web-parts-react-accordion","version":null,"source":"pnp","title":"Accordion Web Part","shortDescription":"This is a sample web Part that illustrates the use of React Accessible Accordion plugin for building SharePoint Framework client-side web parts to show SharePoint list data in Accordion format.","longDescription":["This is a sample web Part that illustrates the use of React Accessible Accordion plugin for building SharePoint Framework client-side web parts to show SharePoint list data in Accordion format."],"products":["SharePoint","Office"],"categories":[""],"metadata":[{"key":"CLIENT-SIDE-DEV","value":"React"},{"key":"SPFX-VERSION","value":"1.10.0"}],"thumbnails":[{"type":"image","order":100,"url":"https://github.com/pnp/sp-dev-fx-webparts/raw/master/samples/react-accordion/assets/previewAccordion.PNG","alt":"Accordion Web Part","slides":null}],"authors":[{"gitHubAccount":"gautamdsheth","company":"","pictureUrl":"https://github.com/gautamdsheth.png"},{"gitHubAccount":"AbhishekGarg","company":"","pictureUrl":"https://github.com/AbhishekGarg.png"}],"references":[]} \ No newline at end of file diff --git a/samples/react-adaptive-cards-image-gallery/assets/sample.json b/samples/react-adaptive-cards-image-gallery/assets/sample.json new file mode 100644 index 000000000..e696f041f --- /dev/null +++ b/samples/react-adaptive-cards-image-gallery/assets/sample.json @@ -0,0 +1 @@ +{"name":"pnp-sp-dev-spfx-web-parts-react-adaptive-cards-image-gallery","version":null,"source":"pnp","title":"Image Gallery Web Part Built with Adaptive Cards","shortDescription":"This sample demonstrates the capability of using Adaptive Cards with SharePoint Framework. Adaptive cards are great fit for Bot, however they can be effectively used with SPFx to render the content. This web part helps to display the image gallery from SharePoint list.","longDescription":["This sample demonstrates the capability of using Adaptive Cards with SharePoint Framework. Adaptive cards are great fit for Bot, however they can be effectively used with SPFx to render the content. This web part helps to display the image gallery from SharePoint list."],"products":["SharePoint","Office"],"categories":[""],"metadata":[{"key":"CLIENT-SIDE-DEV","value":"React"},{"key":"SPFX-VERSION","value":"1.10.0"}],"thumbnails":[{"type":"image","order":100,"url":"https://github.com/pnp/sp-dev-fx-webparts/raw/master/samples/react-adaptive-cards-image-gallery/assets/sharepoint-run.gif","alt":"Image Gallery Web Part Built with Adaptive Cards","slides":null}],"authors":[{"gitHubAccount":"nanddeepn","company":"","pictureUrl":"https://github.com/nanddeepn.png"},{"gitHubAccount":"ravi16a87","company":"","pictureUrl":"https://github.com/ravi16a87.png"}],"references":[]} \ No newline at end of file diff --git a/samples/react-adaptivecards-hooks/assets/sample.json b/samples/react-adaptivecards-hooks/assets/sample.json new file mode 100644 index 000000000..6c325365a --- /dev/null +++ b/samples/react-adaptivecards-hooks/assets/sample.json @@ -0,0 +1 @@ +{"name":"pnp-sp-dev-spfx-web-parts-react-adaptivecards-hooks","version":null,"source":"pnp","title":"Adaptive Cards Viewer using Hooks","shortDescription":"A version of react-adaptivecards using React Hooks.","longDescription":["A version of react-adaptivecards using React Hooks."],"products":["SharePoint","Office"],"categories":[""],"metadata":[{"key":"CLIENT-SIDE-DEV","value":"React"},{"key":"SPFX-VERSION","value":"1.11.0"}],"thumbnails":[{"type":"image","order":100,"url":"https://github.com/pnp/sp-dev-fx-webparts/raw/master/samples/react-adaptivecards-hooks/assets/preview.png","alt":"Adaptive Cards Viewer using Hooks","slides":null}],"authors":[{"gitHubAccount":"pschaeflein","company":"","pictureUrl":"https://github.com/pschaeflein.png"}],"references":[]} \ No newline at end of file diff --git a/samples/react-adaptivecards/assets/sample.json b/samples/react-adaptivecards/assets/sample.json new file mode 100644 index 000000000..8bba59676 --- /dev/null +++ b/samples/react-adaptivecards/assets/sample.json @@ -0,0 +1 @@ +{"name":"pnp-sp-dev-spfx-web-parts-react-adaptivecards","version":null,"source":"pnp","title":"Adaptive Cards Host","shortDescription":"This sample creates an Adaptive Cards Host web part that you can use to display Adaptive Cards in your SharePoint applications.","longDescription":["This sample creates an Adaptive Cards Host web part that you can use to display Adaptive Cards in your SharePoint applications."],"products":["SharePoint","Office"],"categories":[""],"metadata":[{"key":"CLIENT-SIDE-DEV","value":"React"},{"key":"SPFX-VERSION","value":"1.11.0"}],"thumbnails":[{"type":"image","order":100,"url":"https://github.com/pnp/sp-dev-fx-webparts/raw/master/samples/react-adaptivecards/assets/AdaptiveCardsHostAllSamples.gif","alt":"Adaptive Cards Host","slides":null}],"authors":[{"gitHubAccount":"hugoabernier","company":"","pictureUrl":"https://github.com/hugoabernier.png"}],"references":[]} \ No newline at end of file diff --git a/samples/react-add-js-css-ref/assets/sample.json b/samples/react-add-js-css-ref/assets/sample.json new file mode 100644 index 000000000..6c5ed8675 --- /dev/null +++ b/samples/react-add-js-css-ref/assets/sample.json @@ -0,0 +1 @@ +{"name":"pnp-sp-dev-spfx-web-parts-react-add-js-css-ref","version":null,"source":"pnp","title":"Add JS and CSS reference on Modern Pages","shortDescription":"React-based SPFx web part and extension that allows users to add/modify/delete custom js and css file references using SPFx application customizer extension all modern pages within SP online site.","longDescription":["React-based SPFx web part and extension that allows users to add/modify/delete custom js and css file references using SPFx application customizer extension all modern pages within SP online site."],"products":["SharePoint","Office"],"categories":[""],"metadata":[{"key":"CLIENT-SIDE-DEV","value":"React"},{"key":"SPFX-VERSION","value":"1.9.1"}],"thumbnails":[{"type":"image","order":100,"url":"https://github.com/pnp/sp-dev-fx-webparts/raw/master/samples/react-add-js-css-ref/assets/webpartinaction.gif","alt":"Add JS and CSS reference on Modern Pages","slides":null}],"authors":[{"gitHubAccount":"siddharth-vaghasia","company":"","pictureUrl":"https://github.com/siddharth-vaghasia.png"}],"references":[]} \ No newline at end of file diff --git a/samples/react-admin-sc-catalog-pnpjs/assets/sample.json b/samples/react-admin-sc-catalog-pnpjs/assets/sample.json new file mode 100644 index 000000000..c76b662ec --- /dev/null +++ b/samples/react-admin-sc-catalog-pnpjs/assets/sample.json @@ -0,0 +1 @@ +{"name":"pnp-sp-dev-spfx-web-parts-react-admin-sc-catalog-pnpjs","version":null,"source":"pnp","title":"Site Collection App Catalogs","shortDescription":"A SPFx Web Part using @pnp/sp/appcatalog and @pnp/spfx-controls-react. It allows to see in a single view all the SiteCollection catalogs and the Apps installed with some useful metadata. It needs Globlal Administrator or SharePoint Online Administrator permissions in order to access Site collection App Catalogs hidden list and each Site Collection App Catalog.","longDescription":["A SPFx Web Part using @pnp/sp/appcatalog and @pnp/spfx-controls-react. It allows to see in a single view all the SiteCollection catalogs and the Apps installed with some useful metadata. It needs Globlal Administrator or SharePoint Online Administrator permissions in order to access Site collection App Catalogs hidden list and each Site Collection App Catalog."],"products":["SharePoint","Office"],"categories":[""],"metadata":[{"key":"CLIENT-SIDE-DEV","value":"React"},{"key":"SPFX-VERSION","value":"1.9.1"}],"thumbnails":[{"type":"image","order":100,"url":"https://github.com/pnp/sp-dev-fx-webparts/raw/master/samples/react-admin-sc-catalog-pnpjs/assets/react-admin-sc-catalog-pnpjs-webpart-animated.gif","alt":"Site Collection App Catalogs","slides":null}],"authors":[{"gitHubAccount":"fredupstair","company":"","pictureUrl":"https://github.com/fredupstair.png"}],"references":[]} \ No newline at end of file diff --git a/samples/react-aggregated-calendar/assets/sample.json b/samples/react-aggregated-calendar/assets/sample.json new file mode 100644 index 000000000..d682b198b --- /dev/null +++ b/samples/react-aggregated-calendar/assets/sample.json @@ -0,0 +1 @@ +{"name":"pnp-sp-dev-spfx-web-parts-react-aggregated-calendar","version":null,"source":"pnp","title":"Aggregated Calendar Web part","shortDescription":"This is a sample web part developed using React Framework to gather the aggregated events from the multiple calendars from multiple sites using Full Calendar from fullcalendar.io","longDescription":["This is a sample web part developed using React Framework to gather the aggregated events from the multiple calendars from multiple sites using Full Calendar from fullcalendar.io"],"products":["SharePoint","Office"],"categories":[""],"metadata":[{"key":"CLIENT-SIDE-DEV","value":"React"},{"key":"SPFX-VERSION","value":"1.4.1"}],"thumbnails":[{"type":"image","order":100,"url":"https://github.com/pnp/sp-dev-fx-webparts/raw/master/samples/react-aggregated-calendar/assets/react-aggregated-calendar.gif","alt":"Aggregated Calendar Web part","slides":null}],"authors":[{"gitHubAccount":"dhavalshah01","company":"","pictureUrl":"https://github.com/dhavalshah01.png"}],"references":[]} \ No newline at end of file diff --git a/samples/react-app-settings/assets/sample.json b/samples/react-app-settings/assets/sample.json new file mode 100644 index 000000000..fd024e9aa --- /dev/null +++ b/samples/react-app-settings/assets/sample.json @@ -0,0 +1 @@ +{"name":"pnp-sp-dev-spfx-web-parts-react-app-settings","version":null,"source":"pnp","title":"App settings web part","shortDescription":"This sample shows how AppSettings.ts file can be added and used within SharePoint Framewrok webparts similar to the Web.config / App.config key value app settings in .NET Framework projects. That allows better DevOps and continuous integration (CI/CD) automation. The AppSettings.ts is transpiled/compiled with your SPFx solution which differs from the way the web.config. With .Net web.config file we would be able to update independently without the need of compiling DLLs. If that behavior is required, you can store your app settings in a SharePoint list and change them from there. However, that will have performance degradation over if the setting was part of the SPFx code where the logic can get a setting value in milliseconds.","longDescription":["This sample shows how AppSettings.ts file can be added and used within SharePoint Framewrok webparts similar to the Web.config / App.config key value app settings in .NET Framework projects. That allows better DevOps and continuous integration (CI/CD) automation. The AppSettings.ts is transpiled/compiled with your SPFx solution which differs from the way the web.config. With .Net web.config file we would be able to update independently without the need of compiling DLLs. If that behavior is required, you can store your app settings in a SharePoint list and change them from there. However, that will have performance degradation over if the setting was part of the SPFx code where the logic can get a setting value in milliseconds."],"products":["SharePoint","Office"],"categories":[""],"metadata":[{"key":"CLIENT-SIDE-DEV","value":"React"},{"key":"SPFX-VERSION","value":"1.7.1"}],"thumbnails":[{"type":"image","order":100,"url":"https://github.com/pnp/sp-dev-fx-webparts/raw/master/samples/react-app-settings/assets/app-settings-class.PNG","alt":"App settings web part","slides":null}],"authors":[{"gitHubAccount":"VelinGeorgiev","company":"","pictureUrl":"https://github.com/VelinGeorgiev.png"}],"references":[]} \ No newline at end of file diff --git a/samples/react-appinsights-dashboard/assets/sample.json b/samples/react-appinsights-dashboard/assets/sample.json new file mode 100644 index 000000000..d87683c94 --- /dev/null +++ b/samples/react-appinsights-dashboard/assets/sample.json @@ -0,0 +1 @@ +{"name":"pnp-sp-dev-spfx-web-parts-react-appinsights-dashboard","version":null,"source":"pnp","title":"React AppInsights Dashboard","shortDescription":"This web part displays different statistics data captured in the Azure Application Insights in a graphical representation.","longDescription":["This web part displays different statistics data captured in the Azure Application Insights in a graphical representation."],"products":["SharePoint","Office"],"categories":[""],"metadata":[{"key":"CLIENT-SIDE-DEV","value":"React"},{"key":"SPFX-VERSION","value":"1.10.0"}],"thumbnails":[{"type":"image","order":100,"url":"https://github.com/pnp/sp-dev-fx-webparts/raw/master/samples/react-appinsights-dashboard/assets/AppInsights_Dashboard.gif","alt":"React AppInsights Dashboard","slides":null}],"authors":[{"gitHubAccount":"sudharsank","company":"","pictureUrl":"https://github.com/sudharsank.png"}],"references":[]} \ No newline at end of file diff --git a/samples/react-async-await-sp-pnp-js/assets/sample.json b/samples/react-async-await-sp-pnp-js/assets/sample.json new file mode 100644 index 000000000..58d3297e3 --- /dev/null +++ b/samples/react-async-await-sp-pnp-js/assets/sample.json @@ -0,0 +1 @@ +{"name":"pnp-sp-dev-spfx-web-parts-react-async-await-sp-pnp-js","version":null,"source":"pnp","title":"Using @pnp/js with Async / Await","shortDescription":"This web part demonstrates how to use PnPJS with Async functions into the SharePoint Framework as well as integrating PnP JS and SPFx Logging systems. Real example querying SharePoint library to show document sizes.","longDescription":["This web part demonstrates how to use PnPJS with Async functions into the SharePoint Framework as well as integrating PnP JS and SPFx Logging systems. Real example querying SharePoint library to show document sizes."],"products":["SharePoint","Office"],"categories":[""],"metadata":[{"key":"CLIENT-SIDE-DEV","value":"React"},{"key":"SPFX-VERSION","value":"1.4.1"}],"thumbnails":[{"type":"image","order":100,"url":"https://github.com/pnp/sp-dev-fx-webparts/raw/master/samples/react-async-await-sp-pnp-js/assets/async-await-sp-pnp-js.png","alt":"Using @pnp/js with Async / Await","slides":null}],"authors":[{"gitHubAccount":"jquinzamora","company":"","pictureUrl":"https://github.com/jquinzamora.png"}],"references":[]} \ No newline at end of file diff --git a/samples/react-avatar/assets/sample.json b/samples/react-avatar/assets/sample.json new file mode 100644 index 000000000..cdea4718e --- /dev/null +++ b/samples/react-avatar/assets/sample.json @@ -0,0 +1 @@ +{"name":"pnp-sp-dev-spfx-web-parts-react-avatar","version":null,"source":"pnp","title":"SPFx Avatar","shortDescription":"This is a sample web part that helps user create their avatar and save as profile picture. User can even download their avatar as PNG file. This web part can be useful in Intranet to help user create their avatar and save it as profile picture.","longDescription":["This is a sample web part that helps user create their avatar and save as profile picture. User can even download their avatar as PNG file. This web part can be useful in Intranet to help user create their avatar and save it as profile picture."],"products":["SharePoint","Office"],"categories":[""],"metadata":[{"key":"CLIENT-SIDE-DEV","value":"React"},{"key":"SPFX-VERSION","value":"1.11.0"}],"thumbnails":[{"type":"image","order":100,"url":"https://github.com/pnp/sp-dev-fx-webparts/raw/master/samples/react-avatar/assets/reactAvatarOutcome.gif","alt":"SPFx Avatar","slides":null}],"authors":[{"gitHubAccount":null,"company":"","pictureUrl":"https://github.com/.png"},{"gitHubAccount":"joelfmrodrigues","company":"","pictureUrl":"https://github.com/joelfmrodrigues.png"}],"references":[]} \ No newline at end of file diff --git a/samples/react-azfunc-vimeo/assets/sample.json b/samples/react-azfunc-vimeo/assets/sample.json new file mode 100644 index 000000000..b4ff1bea3 --- /dev/null +++ b/samples/react-azfunc-vimeo/assets/sample.json @@ -0,0 +1 @@ +{"name":"pnp-sp-dev-spfx-web-parts-react-azfunc-vimeo","version":null,"source":"pnp","title":"Local Azure Function and SPFx Web Part Development to consume third party APIs","shortDescription":"This sample shows how to consume third-party APIs through an Azure Functions by a Web Part.","longDescription":["This sample shows how to consume third-party APIs through an Azure Functions by a Web Part."],"products":["SharePoint","Office"],"categories":[""],"metadata":[{"key":"CLIENT-SIDE-DEV","value":"React"},{"key":"SPFX-VERSION","value":"1.4.1"}],"thumbnails":[{"type":"image","order":100,"url":"https://avatars2.githubusercontent.com/u/5503835?s=460\u0026v=4","alt":"Local Azure Function and SPFx Web Part Development to consume third party APIs","slides":null}],"authors":[{"gitHubAccount":"StfBauer","company":"","pictureUrl":"https://github.com/StfBauer.png"}],"references":[]} \ No newline at end of file diff --git a/samples/react-banner/assets/sample.json b/samples/react-banner/assets/sample.json new file mode 100644 index 000000000..14d3bb727 --- /dev/null +++ b/samples/react-banner/assets/sample.json @@ -0,0 +1 @@ +{"name":"pnp-sp-dev-spfx-web-parts-react-banner","version":null,"source":"pnp","title":"Banner Web Part","shortDescription":"This web part provides you the ability to add a variable height image banner with a linkable title.","longDescription":["This web part provides you the ability to add a variable height image banner with a linkable title."],"products":["SharePoint","Office"],"categories":[""],"metadata":[{"key":"CLIENT-SIDE-DEV","value":"React"},{"key":"SPFX-VERSION","value":"1.10"}],"thumbnails":[{"type":"image","order":100,"url":"https://github.com/pnp/sp-starter-kit/raw/master/assets/images/components/part-banner.gif","alt":"Banner Web Part","slides":null}],"authors":[{"gitHubAccount":null,"company":"","pictureUrl":"https://github.com/.png"}],"references":[]} \ No newline at end of file diff --git a/samples/react-birthdays/assets/sample.json b/samples/react-birthdays/assets/sample.json new file mode 100644 index 000000000..b26df57cd --- /dev/null +++ b/samples/react-birthdays/assets/sample.json @@ -0,0 +1 @@ +{"name":"pnp-sp-dev-spfx-web-parts-react-birthdays","version":null,"source":"pnp","title":"Birthdays Web Part","shortDescription":"The Web Part Birthdays shows the upcoming birthdays in the company, the web part reads birthdays from a list located on the tenant\u0027s root site with title \u0022Birthdays.\u0022","longDescription":["The Web Part Birthdays shows the upcoming birthdays in the company, the web part reads birthdays from a list located on the tenant\u0027s root site with title \u0022Birthdays.\u0022"],"products":["SharePoint","Office"],"categories":[""],"metadata":[{"key":"CLIENT-SIDE-DEV","value":"React"},{"key":"SPFX-VERSION","value":"1.8.2"}],"thumbnails":[{"type":"image","order":100,"url":"https://github.com/pnp/sp-dev-fx-webparts/raw/master/samples/react-birthdays/assets/birthdays.gif","alt":"Birthdays Web Part","slides":null}],"authors":[{"gitHubAccount":"joaojmendes","company":"","pictureUrl":"https://github.com/joaojmendes.png"}],"references":[]} \ No newline at end of file diff --git a/samples/react-bot-framework-secure/assets/sample.json b/samples/react-bot-framework-secure/assets/sample.json new file mode 100644 index 000000000..1256b3f5f --- /dev/null +++ b/samples/react-bot-framework-secure/assets/sample.json @@ -0,0 +1 @@ +{"name":"pnp-sp-dev-spfx-web-parts-react-bot-framework-secure","version":null,"source":"pnp","title":"Secure Bot Framework","shortDescription":"This sample shows how to secure your conversation including the use of a Direct Line token instead of secret, for user id, generate it inside client side and detect if the client has changed the user ID and reject the change.","longDescription":["This sample shows how to secure your conversation including the use of a Direct Line token instead of secret, for user id, generate it inside client side and detect if the client has changed the user ID and reject the change."],"products":["SharePoint","Office"],"categories":[""],"metadata":[{"key":"CLIENT-SIDE-DEV","value":"React"},{"key":"SPFX-VERSION","value":"1.10.0"}],"thumbnails":[{"type":"image","order":100,"url":"https://github.com/pnp/sp-dev-fx-webparts/raw/master/samples/react-bot-framework-secure/assets/sp-wp-secure.gif","alt":"Secure Bot Framework","slides":null}],"authors":[{"gitHubAccount":"DingmaomaoBJTU","company":"","pictureUrl":"https://github.com/DingmaomaoBJTU.png"}],"references":[]} \ No newline at end of file diff --git a/samples/react-bot-framework-sso/assets/sample.json b/samples/react-bot-framework-sso/assets/sample.json new file mode 100644 index 000000000..d5405c67b --- /dev/null +++ b/samples/react-bot-framework-sso/assets/sample.json @@ -0,0 +1 @@ +{"name":"pnp-sp-dev-spfx-web-parts-react-bot-framework-sso","version":null,"source":"pnp","title":"Single-Sign On Bot Framework","shortDescription":"The web parts embeds the login bot by using a webchat. As the user has already login in the SharePoint website, we could use SSO to authorize the bot.","longDescription":["The web parts embeds the login bot by using a webchat. As the user has already login in the SharePoint website, we could use SSO to authorize the bot."],"products":["SharePoint","Office"],"categories":[""],"metadata":[{"key":"CLIENT-SIDE-DEV","value":"React"},{"key":"SPFX-VERSION","value":"1.10.0"}],"thumbnails":[{"type":"image","order":100,"url":"https://github.com/pnp/sp-dev-fx-webparts/raw/master/samples/react-bot-framework-secure/assets/sp-wp-secure.gif","alt":"Single-Sign On Bot Framework","slides":null}],"authors":[{"gitHubAccount":"DingmaomaoBJTU","company":"","pictureUrl":"https://github.com/DingmaomaoBJTU.png"}],"references":[]} \ No newline at end of file diff --git a/samples/react-bot-framework/assets/sample.json b/samples/react-bot-framework/assets/sample.json new file mode 100644 index 000000000..13dd71658 --- /dev/null +++ b/samples/react-bot-framework/assets/sample.json @@ -0,0 +1 @@ +{"name":"pnp-sp-dev-spfx-web-parts-react-bot-framework","version":null,"source":"pnp","title":"Microsoft Bot Framework Web Chat","shortDescription":"A web part that uses the botframework-webchat module to create implement a React component to render the Bot Framework v4 webchat component. This web part is able to render Text and richt attachments (Images, Cards, Adaptive Cards, ...) and has settings for branding purposes.","longDescription":["A web part that uses the botframework-webchat module to create implement a React component to render the Bot Framework v4 webchat component. This web part is able to render Text and richt attachments (Images, Cards, Adaptive Cards, ...) and has settings for branding purposes."],"products":["SharePoint","Office"],"categories":[""],"metadata":[{"key":"CLIENT-SIDE-DEV","value":"React"},{"key":"SPFX-VERSION","value":"1.10.0"}],"thumbnails":[{"type":"image","order":100,"url":"https://github.com/pnp/sp-dev-fx-webparts/raw/master/samples/react-bot-framework/assets/bot-frameworkv4-webpart-preview.png","alt":"Microsoft Bot Framework Web Chat","slides":null}],"authors":[{"gitHubAccount":"garypretty","company":"","pictureUrl":"https://github.com/garypretty.png"},{"gitHubAccount":"stephanbisser","company":"","pictureUrl":"https://github.com/stephanbisser.png"},{"gitHubAccount":"Harshagracy","company":"","pictureUrl":"https://github.com/Harshagracy.png"}],"references":[]} \ No newline at end of file diff --git a/samples/react-calendar-feed/assets/sample.json b/samples/react-calendar-feed/assets/sample.json new file mode 100644 index 000000000..e95f7eaad --- /dev/null +++ b/samples/react-calendar-feed/assets/sample.json @@ -0,0 +1 @@ +{"name":"pnp-sp-dev-spfx-web-parts-react-calendar-feed","version":null,"source":"pnp","title":"Calendar Feed Web Part","shortDescription":"This web part uses event feeds from various sources and renders events using a look and feel that is consistent with the SharePoint out-of-the-box Group calendar/events web part.","longDescription":["This web part uses event feeds from various sources and renders events using a look and feel that is consistent with the SharePoint out-of-the-box Group calendar/events web part."],"products":["SharePoint","Office"],"categories":[""],"metadata":[{"key":"CLIENT-SIDE-DEV","value":"React"},{"key":"SPFX-VERSION","value":"1.10.0"}],"thumbnails":[{"type":"image","order":100,"url":"https://github.com/pnp/sp-dev-fx-webparts/raw/master/samples/react-calendar-feed/assets/react-calendar-feed-demo.gif","alt":"Calendar Feed Web Part","slides":null}],"authors":[{"gitHubAccount":"hugoabernier","company":"","pictureUrl":"https://github.com/hugoabernier.png"},{"gitHubAccount":"petkir","company":"","pictureUrl":"https://github.com/petkir.png"}],"references":[]} \ No newline at end of file diff --git a/samples/react-calendar/assets/sample.json b/samples/react-calendar/assets/sample.json new file mode 100644 index 000000000..432e7e244 --- /dev/null +++ b/samples/react-calendar/assets/sample.json @@ -0,0 +1 @@ +{"name":"pnp-sp-dev-spfx-web-parts-react-calendar","version":null,"source":"pnp","title":"Calendar","shortDescription":"This Web Part allows you to manage events in a calendar. Uses a list of existing calendars on any website. The location and name of the list and the dates of the events to be displayed are defined in the properties of the web part.","longDescription":["This Web Part allows you to manage events in a calendar. Uses a list of existing calendars on any website. The location and name of the list and the dates of the events to be displayed are defined in the properties of the web part."],"products":["SharePoint","Office"],"categories":[""],"metadata":[{"key":"CLIENT-SIDE-DEV","value":"React"},{"key":"SPFX-VERSION","value":"1.10.0"}],"thumbnails":[{"type":"image","order":100,"url":"https://github.com/pnp/sp-dev-fx-webparts/raw/master/samples/react-calendar/assets/animatevideo.gif","alt":"Calendar","slides":null}],"authors":[{"gitHubAccount":"joaojmendes","company":"","pictureUrl":"https://github.com/joaojmendes.png"},{"gitHubAccount":"derhallim","company":"","pictureUrl":"https://github.com/derhallim.png"},{"gitHubAccount":"hugoabernier","company":"","pictureUrl":"https://github.com/hugoabernier.png"},{"gitHubAccount":"nanddeepn","company":"","pictureUrl":"https://github.com/nanddeepn.png"},{"gitHubAccount":"Abderahman88","company":"","pictureUrl":"https://github.com/Abderahman88.png"}],"references":[]} \ No newline at end of file diff --git a/samples/react-carousel/assets/sample.json b/samples/react-carousel/assets/sample.json new file mode 100644 index 000000000..ecce19cf4 --- /dev/null +++ b/samples/react-carousel/assets/sample.json @@ -0,0 +1 @@ +{"name":"pnp-sp-dev-spfx-web-parts-react-carousel","version":null,"source":"pnp","title":"Carousel Web Part","shortDescription":"This web part show images and videos in carousel","longDescription":["This web part show images and videos in carousel"],"products":["SharePoint","Office"],"categories":[""],"metadata":[{"key":"CLIENT-SIDE-DEV","value":"React"},{"key":"SPFX-VERSION","value":"1.10.0"}],"thumbnails":[{"type":"image","order":100,"url":"https://github.com/pnp/sp-dev-fx-webparts/raw/master/samples/react-carousel/assets/carousel.gif","alt":"Carousel Web Part","slides":null}],"authors":[{"gitHubAccount":"joaojmendes","company":"","pictureUrl":"https://github.com/joaojmendes.png"},{"gitHubAccount":"rahulsuryawanshi","company":"","pictureUrl":"https://github.com/rahulsuryawanshi.png"},{"gitHubAccount":"Harshagracy","company":"","pictureUrl":"https://github.com/Harshagracy.png"},{"gitHubAccount":"DonKirkham","company":"","pictureUrl":"https://github.com/DonKirkham.png"}],"references":[]} \ No newline at end of file diff --git a/samples/react-chartcontrol/assets/sample.json b/samples/react-chartcontrol/assets/sample.json new file mode 100644 index 000000000..a26e33864 --- /dev/null +++ b/samples/react-chartcontrol/assets/sample.json @@ -0,0 +1 @@ +{"name":"pnp-sp-dev-spfx-web-parts-react-chartcontrol","version":null,"source":"pnp","title":"Chart Control Samples","shortDescription":"This sample contains several web parts that demonstrate how to use the ChartControl from @pnp/spfx-controls-react.","longDescription":["This sample contains several web parts that demonstrate how to use the ChartControl from @pnp/spfx-controls-react."],"products":["SharePoint","Office"],"categories":[""],"metadata":[{"key":"CLIENT-SIDE-DEV","value":"React"},{"key":"SPFX-VERSION","value":"1.11.0"}],"thumbnails":[{"type":"image","order":100,"url":"https://github.com/pnp/sp-dev-fx-webparts/raw/master/samples/react-chartcontrol/assets/WebPartList.png","alt":"Chart Control Samples","slides":null}],"authors":[{"gitHubAccount":"hugoabernier","company":"","pictureUrl":"https://github.com/hugoabernier.png"}],"references":[]} \ No newline at end of file diff --git a/samples/react-check-flows/assets/sample.json b/samples/react-check-flows/assets/sample.json new file mode 100644 index 000000000..4b38b6c17 --- /dev/null +++ b/samples/react-check-flows/assets/sample.json @@ -0,0 +1 @@ +{"name":"pnp-sp-dev-spfx-web-parts-react-check-flows","version":null,"source":"pnp","title":"Check Flows","shortDescription":"This web part lists all the automated Flows associated with a SharePoint List/ Library. Basic flow information like Flow Name, Flow Trigger, Flow shared Type and Flow URL are displayed.","longDescription":["This web part lists all the automated Flows associated with a SharePoint List/ Library. Basic flow information like Flow Name, Flow Trigger, Flow shared Type and Flow URL are displayed."],"products":["SharePoint","Office"],"categories":[""],"metadata":[{"key":"CLIENT-SIDE-DEV","value":"React"},{"key":"SPFX-VERSION","value":"1.9.1"}],"thumbnails":[{"type":"image","order":100,"url":"https://github.com/pnp/sp-dev-fx-webparts/raw/master/samples/react-check-flows/assets/CheckFlows.gif","alt":"Check Flows","slides":null}],"authors":[{"gitHubAccount":"aakashbhardwaj619","company":"","pictureUrl":"https://github.com/aakashbhardwaj619.png"}],"references":[]} \ No newline at end of file diff --git a/samples/react-check-user-group/assets/sample.json b/samples/react-check-user-group/assets/sample.json new file mode 100644 index 000000000..dcde21a2e --- /dev/null +++ b/samples/react-check-user-group/assets/sample.json @@ -0,0 +1 @@ +{"name":"pnp-sp-dev-spfx-web-parts-react-check-user-group","version":null,"source":"pnp","title":"Check User Group","shortDescription":"This web part finds all the Office 365 or AAD Security groups a user is a member of or all the members present in such a group. It can be used as an admin utility to quickly check the membership of any user or group from within a SharePoint page itself. The retrieved results can also be exported to a CSV file.","longDescription":["This web part finds all the Office 365 or AAD Security groups a user is a member of or all the members present in such a group. It can be used as an admin utility to quickly check the membership of any user or group from within a SharePoint page itself. The retrieved results can also be exported to a CSV file."],"products":["SharePoint","Office"],"categories":[""],"metadata":[{"key":"CLIENT-SIDE-DEV","value":"React"},{"key":"SPFX-VERSION","value":"1.10.0"}],"thumbnails":[{"type":"image","order":100,"url":"https://github.com/pnp/sp-dev-fx-webparts/raw/master/samples/react-check-user-group/assets/CheckUserGroup.gif","alt":"Check User Group","slides":null}],"authors":[{"gitHubAccount":"aakashbhardwaj619","company":"","pictureUrl":"https://github.com/aakashbhardwaj619.png"}],"references":[]} \ No newline at end of file diff --git a/samples/react-comparer/assets/sample.json b/samples/react-comparer/assets/sample.json new file mode 100644 index 000000000..f43ce0191 --- /dev/null +++ b/samples/react-comparer/assets/sample.json @@ -0,0 +1 @@ +{"name":"pnp-sp-dev-spfx-web-parts-react-comparer","version":null,"source":"pnp","title":"Comparer with File Picker","shortDescription":"Allows users to compare Before and After pictures, with a draggable slider. Implements a custom file picker.","longDescription":["Allows users to compare Before and After pictures, with a draggable slider. Implements a custom file picker."],"products":["SharePoint","Office"],"categories":[""],"metadata":[{"key":"CLIENT-SIDE-DEV","value":"React"},{"key":"SPFX-VERSION","value":"1.7.1"}],"thumbnails":[{"type":"image","order":100,"url":"https://github.com/pnp/sp-dev-fx-webparts/raw/master/samples/react-comparer/assets/ComparerWebPart.gif","alt":"Comparer with File Picker","slides":null}],"authors":[{"gitHubAccount":"hugoabernier","company":"","pictureUrl":"https://github.com/hugoabernier.png"}],"references":[]} \ No newline at end of file diff --git a/samples/react-components-dynamicloading/assets/sample.json b/samples/react-components-dynamicloading/assets/sample.json new file mode 100644 index 000000000..3c55288c4 --- /dev/null +++ b/samples/react-components-dynamicloading/assets/sample.json @@ -0,0 +1 @@ +{"name":"pnp-sp-dev-spfx-web-parts-react-components-dynamicloading","version":null,"source":"pnp","title":"Code Splitting in SharePoint Framework","shortDescription":"Load React components and third party packages on demand in SPFx","longDescription":["Load React components and third party packages on demand in SPFx"],"products":["SharePoint","Office"],"categories":[""],"metadata":[{"key":"CLIENT-SIDE-DEV","value":"React"},{"key":"SPFX-VERSION","value":"1.6.0"}],"thumbnails":[{"type":"image","order":100,"url":"https://github.com/pnp/sp-dev-fx-webparts/raw/master/samples/react-components-dynamicloading/assets/cs3.gif","alt":"Code Splitting in SharePoint Framework","slides":null}],"authors":[{"gitHubAccount":"vman","company":"","pictureUrl":"https://github.com/vman.png"}],"references":[]} \ No newline at end of file diff --git a/samples/react-content-query-online/assets/sample.json b/samples/react-content-query-online/assets/sample.json new file mode 100644 index 000000000..b50a8657f --- /dev/null +++ b/samples/react-content-query-online/assets/sample.json @@ -0,0 +1 @@ +{"name":"pnp-sp-dev-spfx-web-parts-react-content-query-online","version":null,"source":"pnp","title":"Content Query Web Part (SharePoint Online)","shortDescription":"The React Content Query Web Part is a modern version of the good old Content by Query Web Part that was introduced in SharePoint 2007. Built for SharePoint Online, this modern version is built against the new SharePoint Framework (SPFx) and uses the latest Web Stack practices. While the original Web Part was based on a XSLT templating engine, this React Web Part is based on the well known Handlebars templating engine, which empowers users to create simple, yet powerfull HTML templates for rendering the queried content. This new version also lets the user query any site collections which resides on the same domain url, add unlimited filters, query DateTime fields to the nearest minute rather than being limited to a day, and much more.","longDescription":["The React Content Query Web Part is a modern version of the good old Content by Query Web Part that was introduced in SharePoint 2007. Built for SharePoint Online, this modern version is built against the new SharePoint Framework (SPFx) and uses the latest Web Stack practices. While the original Web Part was based on a XSLT templating engine, this React Web Part is based on the well known Handlebars templating engine, which empowers users to create simple, yet powerfull HTML templates for rendering the queried content. This new version also lets the user query any site collections which resides on the same domain url, add unlimited filters, query DateTime fields to the nearest minute rather than being limited to a day, and much more."],"products":["SharePoint","Office"],"categories":[""],"metadata":[{"key":"CLIENT-SIDE-DEV","value":"React"},{"key":"SPFX-VERSION","value":"1.10.0"}],"thumbnails":[{"type":"image","order":100,"url":"https://github.com/pnp/sp-dev-fx-webparts/raw/master/samples/react-content-query-online/assets/toolpart.gif","alt":"Content Query Web Part (SharePoint Online)","slides":null}],"authors":[{"gitHubAccount":"PopWarner","company":"","pictureUrl":"https://github.com/PopWarner.png"},{"gitHubAccount":"hugoabernier","company":"","pictureUrl":"https://github.com/hugoabernier.png"},{"gitHubAccount":"PaoloPia","company":"","pictureUrl":"https://github.com/PaoloPia.png"},{"gitHubAccount":"Abderahman88","company":"","pictureUrl":"https://github.com/Abderahman88.png"}],"references":[]} \ No newline at end of file diff --git a/samples/react-content-query-onprem/assets/sample.json b/samples/react-content-query-onprem/assets/sample.json new file mode 100644 index 000000000..fa0ab707d --- /dev/null +++ b/samples/react-content-query-onprem/assets/sample.json @@ -0,0 +1 @@ +{"name":"pnp-sp-dev-spfx-web-parts-react-content-query-onprem","version":null,"source":"pnp","title":"Content Query Web Part (On-Premises SharePoint)","shortDescription":"The React Content Query Web Part is a modern version of the good old Content by Query Web Part that was introduced in SharePoint 2007. Built for SharePoint 2016 and Office 365, this modern version is built against the new SharePoint Framework (SPFx) and uses the latest Web Stack practices. While the original Web Part was based on a XSLT templating engine, this React Web Part is based on the well known Handlebars templating engine, which empowers users to create simple, yet powerfull HTML templates for rendering the queried content. This new version also lets the user query any site collections which resides on the same domain url, add unlimited filters, query DateTime fields to the nearest minute rather than being limited to a day, and much more.","longDescription":["The React Content Query Web Part is a modern version of the good old Content by Query Web Part that was introduced in SharePoint 2007. Built for SharePoint 2016 and Office 365, this modern version is built against the new SharePoint Framework (SPFx) and uses the latest Web Stack practices. While the original Web Part was based on a XSLT templating engine, this React Web Part is based on the well known Handlebars templating engine, which empowers users to create simple, yet powerfull HTML templates for rendering the queried content. This new version also lets the user query any site collections which resides on the same domain url, add unlimited filters, query DateTime fields to the nearest minute rather than being limited to a day, and much more."],"products":["SharePoint","Office"],"categories":[""],"metadata":[{"key":"CLIENT-SIDE-DEV","value":"React"},{"key":"SPFX-VERSION","value":"GA"}],"thumbnails":[{"type":"image","order":100,"url":"https://github.com/pnp/sp-dev-fx-webparts/raw/master/samples/react-content-query-onprem/Misc/toolpart.gif","alt":"Content Query Web Part (On-Premises SharePoint)","slides":null}],"authors":[{"gitHubAccount":"spplante","company":"","pictureUrl":"https://github.com/spplante.png"}],"references":[]} \ No newline at end of file diff --git a/samples/react-covid19-info/assets/sample.json b/samples/react-covid19-info/assets/sample.json new file mode 100644 index 000000000..b29c9c8f5 --- /dev/null +++ b/samples/react-covid19-info/assets/sample.json @@ -0,0 +1 @@ +{"name":"pnp-sp-dev-spfx-web-parts-react-covid19-info","version":null,"source":"pnp","title":"COVID 19 information web part","shortDescription":"This web part displays info about the COVID-19 virus for a given country.","longDescription":["This web part displays info about the COVID-19 virus for a given country."],"products":["SharePoint","Office"],"categories":[""],"metadata":[{"key":"CLIENT-SIDE-DEV","value":"React"},{"key":"SPFX-VERSION","value":"1.10.0"}],"thumbnails":[{"type":"image","order":100,"url":"https://github.com/pnp/sp-dev-fx-webparts/raw/master/samples/react-covid19-info/assets/covid-counter.gif","alt":"COVID 19 information web part","slides":null}],"authors":[{"gitHubAccount":null,"company":"","pictureUrl":"https://github.com/.png"}],"references":[]} \ No newline at end of file diff --git a/samples/react-css-in-js-typestyle/assets/sample.json b/samples/react-css-in-js-typestyle/assets/sample.json new file mode 100644 index 000000000..591185248 --- /dev/null +++ b/samples/react-css-in-js-typestyle/assets/sample.json @@ -0,0 +1 @@ +{"name":"pnp-sp-dev-spfx-web-parts-react-css-in-js-typestyle","version":null,"source":"pnp","title":"CSS in JS with SharePoint Framework and TypeStyle","shortDescription":"The web part demonstrates the usage of \u0022CSS in JS\u0022 pattern with SharePoint Framework. \u0022CSS in JS\u0022 is implemented using TypeStyle library.","longDescription":["The web part demonstrates the usage of \u0022CSS in JS\u0022 pattern with SharePoint Framework. \u0022CSS in JS\u0022 is implemented using TypeStyle library."],"products":["SharePoint","Office"],"categories":[""],"metadata":[{"key":"CLIENT-SIDE-DEV","value":"React"},{"key":"SPFX-VERSION","value":"1.10.0"}],"thumbnails":[{"type":"image","order":100,"url":"https://github.com/pnp/sp-dev-fx-webparts/raw/master/samples/react-css-in-js-typestyle/assets/dynamic-styles.gif","alt":"CSS in JS with SharePoint Framework and TypeStyle","slides":null}],"authors":[{"gitHubAccount":"s-KaiNet","company":"","pictureUrl":"https://github.com/s-KaiNet.png"}],"references":[]} \ No newline at end of file diff --git a/samples/react-custom-links/assets/sample.json b/samples/react-custom-links/assets/sample.json new file mode 100644 index 000000000..4ee28e529 --- /dev/null +++ b/samples/react-custom-links/assets/sample.json @@ -0,0 +1 @@ +{"name":"pnp-sp-dev-spfx-web-parts-react-custom-links","version":null,"source":"pnp","title":"Custom Links","shortDescription":"In this web part you can full customize the background and foreground color, font size, width and height of links.","longDescription":["In this web part you can full customize the background and foreground color, font size, width and height of links."],"products":["SharePoint","Office"],"categories":[""],"metadata":[{"key":"CLIENT-SIDE-DEV","value":"React"},{"key":"SPFX-VERSION","value":"1.11.0"}],"thumbnails":[{"type":"image","order":100,"url":"https://github.com/pnp/sp-dev-fx-webparts/raw/master/samples/react-custom-links/assets/customlinks.gif","alt":"Custom Links","slides":null}],"authors":[{"gitHubAccount":"joaojmendes","company":"","pictureUrl":"https://github.com/joaojmendes.png"}],"references":[]} \ No newline at end of file diff --git a/samples/react-custompropertypanecontrols/assets/sample.json b/samples/react-custompropertypanecontrols/assets/sample.json new file mode 100644 index 000000000..ea8a07b11 --- /dev/null +++ b/samples/react-custompropertypanecontrols/assets/sample.json @@ -0,0 +1 @@ +{"name":"pnp-sp-dev-spfx-web-parts-react-custompropertypanecontrols","version":null,"source":"pnp","title":"Custom property pane controls","shortDescription":"Sample custom property pane controls built in React for use with SharePoint Framework client-side web parts.","longDescription":["Sample custom property pane controls built in React for use with SharePoint Framework client-side web parts."],"products":["SharePoint","Office"],"categories":[""],"metadata":[{"key":"CLIENT-SIDE-DEV","value":"React"},{"key":"SPFX-VERSION","value":"drop4"}],"thumbnails":[{"type":"image","order":100,"url":"https://github.com/pnp/sp-dev-fx-webparts/raw/master/samples/react-custompropertypanecontrols/assets/async-dropdown-preview.gif","alt":"Custom property pane controls","slides":null}],"authors":[{"gitHubAccount":"waldekmastykarz","company":"","pictureUrl":"https://github.com/waldekmastykarz.png"}],"references":[]} \ No newline at end of file diff --git a/samples/react-daterangepicker/assets/sample.json b/samples/react-daterangepicker/assets/sample.json new file mode 100644 index 000000000..9875a956b --- /dev/null +++ b/samples/react-daterangepicker/assets/sample.json @@ -0,0 +1 @@ +{"name":"pnp-sp-dev-spfx-web-parts-react-daterangepicker","version":null,"source":"pnp","title":"Date range picker in SPFx","shortDescription":"This web part used the date range picker in the SharePoint Framework (SPFx) web part","longDescription":["This web part used the date range picker in the SharePoint Framework (SPFx) web part"],"products":["SharePoint","Office"],"categories":[""],"metadata":[{"key":"CLIENT-SIDE-DEV","value":"React"},{"key":"SPFX-VERSION","value":"1.10.0"}],"thumbnails":[{"type":"image","order":100,"url":"https://github.com/pnp/sp-dev-fx-webparts/raw/master/samples/react-daterangepicker/assets/daterange1.png","alt":"Date range picker in SPFx","slides":null}],"authors":[{"gitHubAccount":"ravichandran-blog","company":"","pictureUrl":"https://github.com/ravichandran-blog.png"}],"references":[]} \ No newline at end of file diff --git a/samples/react-designpatterns-typescript/assets/sample.json b/samples/react-designpatterns-typescript/assets/sample.json new file mode 100644 index 000000000..6316291f4 --- /dev/null +++ b/samples/react-designpatterns-typescript/assets/sample.json @@ -0,0 +1 @@ +{"name":"pnp-sp-dev-spfx-web-parts-react-designpatterns-typescript","version":null,"source":"pnp","title":"Design Patterns applied to Sharepoint Framework","shortDescription":"In software engineering, a design pattern is a general repeatable solution to a commonly occurring problem in software design. A design pattern isn\u0027t a finished design that can be transformed directly into code. It is a description or template for how to solve a problem that can be used in many different situations.","longDescription":["In software engineering, a design pattern is a general repeatable solution to a commonly occurring problem in software design. A design pattern isn\u0027t a finished design that can be transformed directly into code. It is a description or template for how to solve a problem that can be used in many different situations."],"products":["SharePoint","Office"],"categories":[""],"metadata":[{"key":"CLIENT-SIDE-DEV","value":"React"},{"key":"SPFX-VERSION","value":"GA"}],"thumbnails":[{"type":"image","order":100,"url":"https://avatars3.githubusercontent.com/u/6962857?s=460\u0026v=4","alt":"Design Patterns applied to Sharepoint Framework","slides":null}],"authors":[{"gitHubAccount":"levalencia","company":"","pictureUrl":"https://github.com/levalencia.png"}],"references":[]} \ No newline at end of file diff --git a/samples/react-dev-radar/assets/sample.json b/samples/react-dev-radar/assets/sample.json new file mode 100644 index 000000000..9350f259e --- /dev/null +++ b/samples/react-dev-radar/assets/sample.json @@ -0,0 +1 @@ +{"name":"pnp-sp-dev-spfx-web-parts-react-dev-radar","version":null,"source":"pnp","title":"Dev-Radar for SharePoint Online","shortDescription":"The web part Use PnPjs library and Axios","longDescription":["The web part Use PnPjs library and Axios"],"products":["SharePoint","Office"],"categories":[""],"metadata":[{"key":"CLIENT-SIDE-DEV","value":"React"},{"key":"SPFX-VERSION","value":"1.10.0"}],"thumbnails":[{"type":"image","order":100,"url":"https://github.com/pnp/sp-dev-fx-webparts/raw/master/samples/react-dev-radar/dev-radar.png","alt":"Dev-Radar for SharePoint Online","slides":null}],"authors":[{"gitHubAccount":"sauslash","company":"","pictureUrl":"https://github.com/sauslash.png"}],"references":[]} \ No newline at end of file diff --git a/samples/react-directory/assets/sample.json b/samples/react-directory/assets/sample.json new file mode 100644 index 000000000..e7d0ce9c4 --- /dev/null +++ b/samples/react-directory/assets/sample.json @@ -0,0 +1 @@ +{"name":"pnp-sp-dev-spfx-web-parts-react-directory","version":null,"source":"pnp","title":"Organization Directory Web Part","shortDescription":"Search People from Organization Directory and show live persona card on hover.","longDescription":["Search People from Organization Directory and show live persona card on hover."],"products":["SharePoint","Office"],"categories":[""],"metadata":[{"key":"CLIENT-SIDE-DEV","value":"React"},{"key":"SPFX-VERSION","value":"1.11.0"}],"thumbnails":[{"type":"image","order":100,"url":"https://github.com/pnp/sp-dev-fx-webparts/raw/master/samples/react-directory/assets/react-directory7.png","alt":"Organization Directory Web Part","slides":null}],"authors":[{"gitHubAccount":"joaojmendes","company":"","pictureUrl":"https://github.com/joaojmendes.png"},{"gitHubAccount":"petkir","company":"","pictureUrl":"https://github.com/petkir.png"},{"gitHubAccount":"sudharsank","company":"","pictureUrl":"https://github.com/sudharsank.png"}],"references":[]} \ No newline at end of file diff --git a/samples/react-display-hierarchy/assets/sample.json b/samples/react-display-hierarchy/assets/sample.json new file mode 100644 index 000000000..e4c66a912 --- /dev/null +++ b/samples/react-display-hierarchy/assets/sample.json @@ -0,0 +1 @@ +{"name":"pnp-sp-dev-spfx-web-parts-react-display-hierarchy","version":null,"source":"pnp","title":"Web part displaying hierarchical information from SharePoint list","shortDescription":"At the time of developing this sample, the Office 365 UI fabric does not have any control for displaying hierarchical information. This web part helps to display the hierarchical information from SharePoint list.","longDescription":["At the time of developing this sample, the Office 365 UI fabric does not have any control for displaying hierarchical information. This web part helps to display the hierarchical information from SharePoint list."],"products":["SharePoint","Office"],"categories":[""],"metadata":[{"key":"CLIENT-SIDE-DEV","value":"React"},{"key":"SPFX-VERSION","value":"1.11.0"}],"thumbnails":[{"type":"image","order":100,"url":"https://github.com/pnp/sp-dev-fx-webparts/raw/master/samples/react-display-hierarchy/assets/local-sharepoint-workbench-run.png","alt":"Web part displaying hierarchical information from SharePoint list","slides":null}],"authors":[{"gitHubAccount":"nanddeepn","company":"","pictureUrl":"https://github.com/nanddeepn.png"},{"gitHubAccount":"ravi16a87","company":"","pictureUrl":"https://github.com/ravi16a87.png"}],"references":[]} \ No newline at end of file diff --git a/samples/react-documents-detailslist/assets/sample.json b/samples/react-documents-detailslist/assets/sample.json new file mode 100644 index 000000000..aa1022310 --- /dev/null +++ b/samples/react-documents-detailslist/assets/sample.json @@ -0,0 +1 @@ +{"name":"pnp-sp-dev-spfx-web-parts-react-documents-detailslist","version":null,"source":"pnp","title":"Documents Web Part","shortDescription":"This sample shows how to build web parts that display documents in accordance with the SharePoint Online modern experience. The code uses Office UI Fabric components on the top of SharePoint framework. The web parts implement filtering and sorting. Two data source approaches are demonstrated items retrieved from the search index and real-time query to a document library.","longDescription":["This sample shows how to build web parts that display documents in accordance with the SharePoint Online modern experience. The code uses Office UI Fabric components on the top of SharePoint framework. The web parts implement filtering and sorting. Two data source approaches are demonstrated items retrieved from the search index and real-time query to a document library."],"products":["SharePoint","Office"],"categories":[""],"metadata":[{"key":"CLIENT-SIDE-DEV","value":"React"},{"key":"SPFX-VERSION","value":"1.10.0"}],"thumbnails":[{"type":"image","order":100,"url":"https://github.com/pnp/sp-dev-fx-webparts/raw/master/samples/react-documents-detailslist/assets/Preview.gif","alt":"Documents Web Part","slides":null}],"authors":[{"gitHubAccount":"DimchoTsanov","company":"","pictureUrl":"https://github.com/DimchoTsanov.png"},{"gitHubAccount":"Harshagracy","company":"","pictureUrl":"https://github.com/Harshagracy.png"}],"references":[]} \ No newline at end of file diff --git a/samples/react-dynamics-crm-api/assets/sample.json b/samples/react-dynamics-crm-api/assets/sample.json new file mode 100644 index 000000000..9be91dc81 --- /dev/null +++ b/samples/react-dynamics-crm-api/assets/sample.json @@ -0,0 +1 @@ +{"name":"pnp-sp-dev-spfx-web-parts-react-dynamics-crm-api","version":null,"source":"pnp","title":"Using Dynamics CRM API","shortDescription":"This sample shows how to consume Dynamics CRM API using AadTokenProvider class.","longDescription":["This sample shows how to consume Dynamics CRM API using AadTokenProvider class."],"products":["SharePoint","Office"],"categories":[""],"metadata":[{"key":"CLIENT-SIDE-DEV","value":"React"},{"key":"SPFX-VERSION","value":"1.10.0"}],"thumbnails":[{"type":"image","order":100,"url":"https://github.com/pnp/sp-dev-fx-webparts/raw/master/samples/react-dynamics-crm-api/assets/screenshot.gif","alt":"Using Dynamics CRM API","slides":null}],"authors":[{"gitHubAccount":"AhmadiRamin","company":"","pictureUrl":"https://github.com/AhmadiRamin.png"}],"references":[]} \ No newline at end of file diff --git a/samples/react-enhanced-list-formatting/assets/sample.json b/samples/react-enhanced-list-formatting/assets/sample.json new file mode 100644 index 000000000..b018fda23 --- /dev/null +++ b/samples/react-enhanced-list-formatting/assets/sample.json @@ -0,0 +1 @@ +{"name":"pnp-sp-dev-spfx-web-parts-react-enhanced-list-formatting","version":null,"source":"pnp","title":"Enhanced List Formatting","shortDescription":"This web part allows you to add custom CSS on a page to enhance list formatting.","longDescription":["This web part allows you to add custom CSS on a page to enhance list formatting."],"products":["SharePoint","Office"],"categories":[""],"metadata":[{"key":"CLIENT-SIDE-DEV","value":"React"},{"key":"SPFX-VERSION","value":"1.10.0"}],"thumbnails":[{"type":"image","order":100,"url":"https://github.com/pnp/sp-dev-fx-webparts/raw/master/samples/react-enhanced-list-formatting/assets/EnhancedListFormatting.gif","alt":"Enhanced List Formatting","slides":null}],"authors":[{"gitHubAccount":"hugoabernier","company":"","pictureUrl":"https://github.com/hugoabernier.png"},{"gitHubAccount":"PopWarner","company":"","pictureUrl":"https://github.com/PopWarner.png"}],"references":[]} \ No newline at end of file diff --git a/samples/react-enhanced-powerapps/assets/sample.json b/samples/react-enhanced-powerapps/assets/sample.json new file mode 100644 index 000000000..03ddbcc5a --- /dev/null +++ b/samples/react-enhanced-powerapps/assets/sample.json @@ -0,0 +1 @@ +{"name":"pnp-sp-dev-spfx-web-parts-react-enhanced-powerapps","version":null,"source":"pnp","title":"Enhanced Power Apps","shortDescription":"Adds dynamic resizing, theme awareness, and dynamic data to embedded Power Apps","longDescription":["Adds dynamic resizing, theme awareness, and dynamic data to embedded Power Apps"],"products":["SharePoint","Office"],"categories":[""],"metadata":[{"key":"CLIENT-SIDE-DEV","value":"React"},{"key":"SPFX-VERSION","value":"1.11.0"}],"thumbnails":[{"type":"image","order":100,"url":"https://github.com/pnp/sp-dev-fx-webparts/raw/master/samples/react-enhanced-powerapps/assets/enhanced-power-apps.gif","alt":"Enhanced Power Apps","slides":null}],"authors":[{"gitHubAccount":"hugoabernier","company":"","pictureUrl":"https://github.com/hugoabernier.png"}],"references":[]} \ No newline at end of file diff --git a/samples/react-events-aggregator/assets/sample.json b/samples/react-events-aggregator/assets/sample.json new file mode 100644 index 000000000..a81635e8f --- /dev/null +++ b/samples/react-events-aggregator/assets/sample.json @@ -0,0 +1 @@ +{"name":"pnp-sp-dev-spfx-web-parts-react-events-aggregator","version":null,"source":"pnp","title":"Event Aggregator Sample (DEPRECATED)","shortDescription":"This sample shows how we can use the SPFx Event Aggregator to communicate between web parts through broadcasting events utilizing the Publish\u2013subscribe pattern. It enables a web part or component to raise event (broadcast message) through the SPFx event aggregator and that event is received by other web parts or components that have been subscribed to receive it.","longDescription":["This sample shows how we can use the SPFx Event Aggregator to communicate between web parts through broadcasting events utilizing the Publish\u2013subscribe pattern. It enables a web part or component to raise event (broadcast message) through the SPFx event aggregator and that event is received by other web parts or components that have been subscribed to receive it."],"products":["SharePoint","Office"],"categories":[""],"metadata":[{"key":"CLIENT-SIDE-DEV","value":"React"},{"key":"SPFX-VERSION","value":"1.4.1"}],"thumbnails":[{"type":"image","order":100,"url":"https://github.com/pnp/sp-dev-fx-webparts/raw/master/samples/react-events-aggregator/assets/spfx-event-aggregator.gif","alt":"Event Aggregator Sample (DEPRECATED)","slides":null}],"authors":[{"gitHubAccount":null,"company":"","pictureUrl":"https://github.com/.png"},{"gitHubAccount":"VelinGeorgiev","company":"","pictureUrl":"https://github.com/VelinGeorgiev.png"},{"gitHubAccount":"AustinBreslinDev","company":"","pictureUrl":"https://github.com/AustinBreslinDev.png"}],"references":[]} \ No newline at end of file diff --git a/samples/react-events-dynamicdata/assets/sample.json b/samples/react-events-dynamicdata/assets/sample.json new file mode 100644 index 000000000..f168f68b8 --- /dev/null +++ b/samples/react-events-dynamicdata/assets/sample.json @@ -0,0 +1 @@ +{"name":"pnp-sp-dev-spfx-web-parts-react-events-dynamicdata","version":null,"source":"pnp","title":"Dynamic data","shortDescription":"Sample web parts illustrating using the SharePoint Framework Dynamic data capability.","longDescription":["Sample web parts illustrating using the SharePoint Framework Dynamic data capability."],"products":["SharePoint","Office"],"categories":[""],"metadata":[{"key":"CLIENT-SIDE-DEV","value":"React"},{"key":"SPFX-VERSION","value":"1.10.0"}],"thumbnails":[{"type":"image","order":100,"url":"https://github.com/pnp/sp-dev-fx-webparts/raw/master/samples/react-events-dynamicdata/assets/dynamic-data-webparts.png","alt":"Dynamic data","slides":null}],"authors":[{"gitHubAccount":"waldekmastykarz","company":"","pictureUrl":"https://github.com/waldekmastykarz.png"},{"gitHubAccount":"hugoabernier","company":"","pictureUrl":"https://github.com/hugoabernier.png"}],"references":[]} \ No newline at end of file diff --git a/samples/react-facebook-plugin/assets/sample.json b/samples/react-facebook-plugin/assets/sample.json new file mode 100644 index 000000000..4f57e08c5 --- /dev/null +++ b/samples/react-facebook-plugin/assets/sample.json @@ -0,0 +1 @@ +{"name":"pnp-sp-dev-spfx-web-parts-react-facebook-plugin","version":null,"source":"pnp","title":"SharePoint Framework Facebook Page Social Plugin web part sample","shortDescription":"This sample shows how to implement iFrame-based web parts with a dynamic responsive behavior on the example of Facebook Page Social Plugin.","longDescription":["This sample shows how to implement iFrame-based web parts with a dynamic responsive behavior on the example of Facebook Page Social Plugin."],"products":["SharePoint","Office"],"categories":[""],"metadata":[{"key":"CLIENT-SIDE-DEV","value":"React"},{"key":"SPFX-VERSION","value":"1.5.1"}],"thumbnails":[{"type":"image","order":100,"url":"https://github.com/pnp/sp-dev-fx-webparts/raw/master/samples/react-facebook-plugin/assets/preview.png","alt":"SharePoint Framework Facebook Page Social Plugin web part sample","slides":null}],"authors":[{"gitHubAccount":"koltyakov","company":"","pictureUrl":"https://github.com/koltyakov.png"}],"references":[]} \ No newline at end of file diff --git a/samples/react-faqapp/assets/sample.json b/samples/react-faqapp/assets/sample.json new file mode 100644 index 000000000..cae3dabad --- /dev/null +++ b/samples/react-faqapp/assets/sample.json @@ -0,0 +1 @@ +{"name":"pnp-sp-dev-spfx-web-parts-react-faqapp","version":null,"source":"pnp","title":"Frequently Asked Questions","shortDescription":"Allows users to create Frequently Asked Questions(Faq App) in modern and classic SharePoint pages.","longDescription":["Allows users to create Frequently Asked Questions(Faq App) in modern and classic SharePoint pages."],"products":["SharePoint","Office"],"categories":[""],"metadata":[{"key":"CLIENT-SIDE-DEV","value":"React"},{"key":"SPFX-VERSION","value":"1.8.2"}],"thumbnails":[{"type":"image","order":100,"url":"https://github.com/pnp/sp-dev-fx-webparts/raw/master/samples/react-faqapp/assets/FAQWebpart.png","alt":"Frequently Asked Questions","slides":null}],"authors":[{"gitHubAccount":"ashokswain7","company":"","pictureUrl":"https://github.com/ashokswain7.png"},{"gitHubAccount":"Abderahman88","company":"","pictureUrl":"https://github.com/Abderahman88.png"}],"references":[]} \ No newline at end of file diff --git a/samples/react-feature-framework/assets/sample.json b/samples/react-feature-framework/assets/sample.json new file mode 100644 index 000000000..a996bfd8a --- /dev/null +++ b/samples/react-feature-framework/assets/sample.json @@ -0,0 +1 @@ +{"name":"pnp-sp-dev-spfx-web-parts-react-feature-framework","version":null,"source":"pnp","title":"Deployment of SharePoint assets as part of SPFx package","shortDescription":"Simplistic solution demonstrating how to provision SharePoint assets using Feature Framework elements when SharePoint Framework solution is being deployed to a SharePoint site.","longDescription":["Simplistic solution demonstrating how to provision SharePoint assets using Feature Framework elements when SharePoint Framework solution is being deployed to a SharePoint site."],"products":["SharePoint","Office"],"categories":[""],"metadata":[{"key":"CLIENT-SIDE-DEV","value":"React"},{"key":"SPFX-VERSION","value":"GA"}],"thumbnails":[{"type":"image","order":100,"url":"https://github.com/pnp/sp-dev-fx-webparts/raw/master/samples/react-feature-framework/assets/screenshot.png","alt":"Deployment of SharePoint assets as part of SPFx package","slides":null}],"authors":[{"gitHubAccount":"VesaJuvonen","company":"","pictureUrl":"https://github.com/VesaJuvonen.png"}],"references":[]} \ No newline at end of file diff --git a/samples/react-feedback/assets/sample.json b/samples/react-feedback/assets/sample.json new file mode 100644 index 000000000..2d4d56e82 --- /dev/null +++ b/samples/react-feedback/assets/sample.json @@ -0,0 +1 @@ +{"name":"pnp-sp-dev-spfx-web-parts-react-feedback","version":null,"source":"pnp","title":"Feedback","shortDescription":"This is an application that supports Feedback through a web part that can be used directly on a Modern SharePoint Site page. This web part can be added to any site page or article. This allows users to send categorized feedback via email to users in the \u0022Feedback Owners\u0022 group.","longDescription":["This is an application that supports Feedback through a web part that can be used directly on a Modern SharePoint Site page. This web part can be added to any site page or article. This allows users to send categorized feedback via email to users in the \u0022Feedback Owners\u0022 group."],"products":["SharePoint","Office"],"categories":[""],"metadata":[{"key":"CLIENT-SIDE-DEV","value":"React"},{"key":"SPFX-VERSION","value":"1.11.0"}],"thumbnails":[{"type":"image","order":100,"url":"https://github.com/pnp/sp-dev-fx-webparts/raw/master/samples/react-feedback/assets/feedbackwebpart.gif","alt":"Feedback","slides":null}],"authors":[{"gitHubAccount":"perr124","company":"","pictureUrl":"https://github.com/perr124.png"}],"references":[]} \ No newline at end of file diff --git a/samples/react-file-upload/assets/sample.json b/samples/react-file-upload/assets/sample.json new file mode 100644 index 000000000..3a4ed497e --- /dev/null +++ b/samples/react-file-upload/assets/sample.json @@ -0,0 +1 @@ +{"name":"pnp-sp-dev-spfx-web-parts-react-file-upload","version":null,"source":"pnp","title":"File Upload Web Part","shortDescription":"The file upload web part allowing users to upload multiple files to a document library or as item attachments.","longDescription":["The file upload web part allowing users to upload multiple files to a document library or as item attachments."],"products":["SharePoint","Office"],"categories":[""],"metadata":[{"key":"CLIENT-SIDE-DEV","value":"React"},{"key":"SPFX-VERSION","value":"GA"}],"thumbnails":[{"type":"image","order":100,"url":"https://github.com/pnp/sp-dev-fx-webparts/raw/master/samples/react-file-upload/assets/SPFileUploadPreview.gif","alt":"File Upload Web Part","slides":null}],"authors":[{"gitHubAccount":"AhmadiRamin","company":"","pictureUrl":"https://github.com/AhmadiRamin.png"}],"references":[]} \ No newline at end of file diff --git a/samples/react-followedsites/assets/sample.json b/samples/react-followedsites/assets/sample.json new file mode 100644 index 000000000..d14e08372 --- /dev/null +++ b/samples/react-followedsites/assets/sample.json @@ -0,0 +1 @@ +{"name":"pnp-sp-dev-spfx-web-parts-react-followedsites","version":null,"source":"pnp","title":"Followed Sites","shortDescription":"This web part provides you the ability to display a list of site administrator defined number of sites that a given user is following, with paging as well as inline filtering of sites by keyword or phrase. Currently the list of followed sites includes classic as well as modern communication sites but does not include group enabled (modern) team sites.","longDescription":["This web part provides you the ability to display a list of site administrator defined number of sites that a given user is following, with paging as well as inline filtering of sites by keyword or phrase. Currently the list of followed sites includes classic as well as modern communication sites but does not include group enabled (modern) team sites."],"products":["SharePoint","Office"],"categories":[""],"metadata":[{"key":"CLIENT-SIDE-DEV","value":"React"},{"key":"SPFX-VERSION","value":"1.10.0"}],"thumbnails":[{"type":"image","order":100,"url":"https://github.com/pnp/sp-starter-kit/raw/master/assets/images/components/part-followed-sites.gif","alt":"Followed Sites","slides":null}],"authors":[{"gitHubAccount":"eoverfield","company":"","pictureUrl":"https://github.com/eoverfield.png"}],"references":[]} \ No newline at end of file diff --git a/samples/react-functional-component-with-data-fetch/assets/sample.json b/samples/react-functional-component-with-data-fetch/assets/sample.json new file mode 100644 index 000000000..afda18816 --- /dev/null +++ b/samples/react-functional-component-with-data-fetch/assets/sample.json @@ -0,0 +1 @@ +{"name":"pnp-sp-dev-spfx-web-parts-react-functional-component-with-data-fetch","version":null,"source":"pnp","title":"React Functional Component web part with data fetch","shortDescription":"This web part demonstrates building a React functional component that uses data from a remote service, in this case the Microsoft Graph, using the recently introduced React Hooks feature. The example web part renders a list of the user\u0027s Teams and, optionally, the channels in each Team.","longDescription":["This web part demonstrates building a React functional component that uses data from a remote service, in this case the Microsoft Graph, using the recently introduced React Hooks feature. The example web part renders a list of the user\u0027s Teams and, optionally, the channels in each Team."],"products":["SharePoint","Office"],"categories":[""],"metadata":[{"key":"CLIENT-SIDE-DEV","value":"React"},{"key":"SPFX-VERSION","value":"1.8.2"}],"thumbnails":[{"type":"image","order":100,"url":"https://github.com/pnp/sp-dev-fx-webparts/raw/master/samples/react-functional-component-with-data-fetch/Screenshot.png","alt":"React Functional Component web part with data fetch","slides":null}],"authors":[{"gitHubAccount":"SPDoctor","company":"","pictureUrl":"https://github.com/SPDoctor.png"}],"references":[]} \ No newline at end of file diff --git a/samples/react-functional-component/assets/sample.json b/samples/react-functional-component/assets/sample.json new file mode 100644 index 000000000..f0cd7826f --- /dev/null +++ b/samples/react-functional-component/assets/sample.json @@ -0,0 +1 @@ +{"name":"pnp-sp-dev-spfx-web-parts-react-functional-component","version":null,"source":"pnp","title":"React Functional Component web part","shortDescription":"This web part is intended to be easier to understand for new developers building their first SPFx web part. It is a refactoring of the HelloWorld web part that is created by the @microsoft/generator-sharepoint Yeoman generator, and introduces React Functional Components.","longDescription":["This web part is intended to be easier to understand for new developers building their first SPFx web part. It is a refactoring of the HelloWorld web part that is created by the @microsoft/generator-sharepoint Yeoman generator, and introduces React Functional Components."],"products":["SharePoint","Office"],"categories":[""],"metadata":[{"key":"CLIENT-SIDE-DEV","value":"React"},{"key":"SPFX-VERSION","value":"1.8.2"}],"thumbnails":[{"type":"image","order":100,"url":"https://github.com/pnp/sp-dev-fx-webparts/raw/master/samples/react-functional-component/Screenshot.png","alt":"React Functional Component web part","slides":null}],"authors":[{"gitHubAccount":"SPDoctor","company":"","pictureUrl":"https://github.com/SPDoctor.png"}],"references":[]} \ No newline at end of file diff --git a/samples/react-functional-servicescope-hooks/assets/sample.json b/samples/react-functional-servicescope-hooks/assets/sample.json new file mode 100644 index 000000000..03d58771e --- /dev/null +++ b/samples/react-functional-servicescope-hooks/assets/sample.json @@ -0,0 +1 @@ +{"name":"pnp-sp-dev-spfx-web-parts-react-functional-servicescope-hooks","version":null,"source":"pnp","title":"Consuming SPFX Service Scopes using React Hooks","shortDescription":"This web part is designed to help developers understand how to use the Context API and useContext() React Hook to share global data between a hierarchy of nested React components.","longDescription":["This web part is designed to help developers understand how to use the Context API and useContext() React Hook to share global data between a hierarchy of nested React components."],"products":["SharePoint","Office"],"categories":[""],"metadata":[{"key":"CLIENT-SIDE-DEV","value":"React"},{"key":"SPFX-VERSION","value":"1.10.0"}],"thumbnails":[{"type":"image","order":100,"url":"https://github.com/pnp/sp-dev-fx-webparts/raw/master/samples/react-functional-servicescope-hooks/webpart.png","alt":"Consuming SPFX Service Scopes using React Hooks","slides":null}],"authors":[{"gitHubAccount":"garrytrinder","company":"","pictureUrl":"https://github.com/garrytrinder.png"}],"references":[]} \ No newline at end of file diff --git a/samples/react-functional-stateful-component/assets/sample.json b/samples/react-functional-stateful-component/assets/sample.json new file mode 100644 index 000000000..aac0f1b28 --- /dev/null +++ b/samples/react-functional-stateful-component/assets/sample.json @@ -0,0 +1 @@ +{"name":"pnp-sp-dev-spfx-web-parts-react-functional-stateful-component","version":null,"source":"pnp","title":"React Functional Stateful Component web part","shortDescription":"This web part demonstrates building a React functional component that includes state, using the recently introduced React Hooks feature. The example web part renders a number to Roman numerals conversion tool.","longDescription":["This web part demonstrates building a React functional component that includes state, using the recently introduced React Hooks feature. The example web part renders a number to Roman numerals conversion tool."],"products":["SharePoint","Office"],"categories":[""],"metadata":[{"key":"CLIENT-SIDE-DEV","value":"React"},{"key":"SPFX-VERSION","value":"1.8.2"}],"thumbnails":[{"type":"image","order":100,"url":"https://github.com/pnp/sp-dev-fx-webparts/raw/master/samples/react-functional-stateful-component/Screenshot.png","alt":"React Functional Stateful Component web part","slides":null}],"authors":[{"gitHubAccount":"SPDoctor","company":"","pictureUrl":"https://github.com/SPDoctor.png"}],"references":[]} \ No newline at end of file diff --git a/samples/react-github-badge/assets/sample.json b/samples/react-github-badge/assets/sample.json new file mode 100644 index 000000000..fffe48180 --- /dev/null +++ b/samples/react-github-badge/assets/sample.json @@ -0,0 +1 @@ +{"name":"pnp-sp-dev-spfx-web-parts-react-github-badge","version":null,"source":"pnp","title":"GitHub Badge (React)","shortDescription":"Displays information about a GitHub user.","longDescription":["Displays information about a GitHub user."],"products":["SharePoint","Office"],"categories":[""],"metadata":[{"key":"CLIENT-SIDE-DEV","value":"React"},{"key":"SPFX-VERSION","value":"1.8.2"}],"thumbnails":[{"type":"image","order":100,"url":"https://github.com/pnp/sp-dev-fx-webparts/raw/master/samples/react-github-badge/assets/githubbadge.png","alt":"GitHub Badge (React)","slides":null}],"authors":[{"gitHubAccount":"hugoabernier","company":"","pictureUrl":"https://github.com/hugoabernier.png"}],"references":[]} \ No newline at end of file diff --git a/samples/react-global-news/assets/sample.json b/samples/react-global-news/assets/sample.json new file mode 100644 index 000000000..b6c3a19b4 --- /dev/null +++ b/samples/react-global-news/assets/sample.json @@ -0,0 +1 @@ +{"name":"pnp-sp-dev-spfx-web-parts-react-global-news","version":null,"source":"pnp","title":"Global News","shortDescription":"This web part show a world news from various sources, it uses the API available on https://newsapi.org this collect information from news and blog sites around the world.","longDescription":["This web part show a world news from various sources, it uses the API available on https://newsapi.org this collect information from news and blog sites around the world."],"products":["SharePoint","Office"],"categories":[""],"metadata":[{"key":"CLIENT-SIDE-DEV","value":"React"},{"key":"SPFX-VERSION","value":"1.10.0"}],"thumbnails":[{"type":"image","order":100,"url":"https://github.com/pnp/sp-dev-fx-webparts/raw/master/samples/react-global-news/assets/GlobalNews.png","alt":"Global News","slides":null}],"authors":[{"gitHubAccount":"joaojmendes","company":"","pictureUrl":"https://github.com/joaojmendes.png"}],"references":[]} \ No newline at end of file diff --git a/samples/react-google-fit/assets/sample.json b/samples/react-google-fit/assets/sample.json new file mode 100644 index 000000000..048d42585 --- /dev/null +++ b/samples/react-google-fit/assets/sample.json @@ -0,0 +1 @@ +{"name":"pnp-sp-dev-spfx-web-parts-react-google-fit","version":null,"source":"pnp","title":"Web part displaying Google Fit information","shortDescription":"This sample demonstrates integration of Google Fit information with SharePoint Framework. The Google Fitness REST APIs allows developers to extend it further and create their own dashboards. Google Fitness REST APIs are useful if you have fitness app and you want to integrate your data with google fit or if you just want to collect Fitness data and display some information to the users. This web part helps to display the key fitness information (activity time spent, distance travelled, calories burned, step count) from the Google fit data source.","longDescription":["This sample demonstrates integration of Google Fit information with SharePoint Framework. The Google Fitness REST APIs allows developers to extend it further and create their own dashboards. Google Fitness REST APIs are useful if you have fitness app and you want to integrate your data with google fit or if you just want to collect Fitness data and display some information to the users. This web part helps to display the key fitness information (activity time spent, distance travelled, calories burned, step count) from the Google fit data source."],"products":["SharePoint","Office"],"categories":[""],"metadata":[{"key":"CLIENT-SIDE-DEV","value":"React"},{"key":"SPFX-VERSION","value":"1.7.1"}],"thumbnails":[{"type":"image","order":100,"url":"https://github.com/pnp/sp-dev-fx-webparts/raw/master/samples/react-google-fit/assets/webpart-preview.png","alt":"Web part displaying Google Fit information","slides":null}],"authors":[{"gitHubAccount":"nanddeepn","company":"","pictureUrl":"https://github.com/nanddeepn.png"}],"references":[]} \ No newline at end of file diff --git a/samples/react-graph-calendar/assets/sample.json b/samples/react-graph-calendar/assets/sample.json new file mode 100644 index 000000000..bbd2dcf50 --- /dev/null +++ b/samples/react-graph-calendar/assets/sample.json @@ -0,0 +1 @@ +{"name":"pnp-sp-dev-spfx-web-parts-react-graph-calendar","version":null,"source":"pnp","title":"Graph Calendar Web Part","shortDescription":"This is a sample web part developed using React Framework to gather events from the underlying group calendar of a Team site. This sample also demonstrates the utilization of web parts as Teams tabs and Personal tab and offering a visualization context to change behaviors based on the platform used (Getting the proper information from the team vs. SharePoint site, understanding the context of the theme on Teams, etc.).","longDescription":["This is a sample web part developed using React Framework to gather events from the underlying group calendar of a Team site. This sample also demonstrates the utilization of web parts as Teams tabs and Personal tab and offering a visualization context to change behaviors based on the platform used (Getting the proper information from the team vs. SharePoint site, understanding the context of the theme on Teams, etc.)."],"products":["SharePoint","Office"],"categories":[""],"metadata":[{"key":"CLIENT-SIDE-DEV","value":"React"},{"key":"SPFX-VERSION","value":"1.10.0"}],"thumbnails":[{"type":"image","order":100,"url":"https://github.com/pnp/sp-dev-fx-webparts/raw/master/samples/react-graph-calendar/assets/react-graph-calendar-spo.gif","alt":"Graph Calendar Web Part","slides":null}],"authors":[{"gitHubAccount":"sebastienlevert","company":"","pictureUrl":"https://github.com/sebastienlevert.png"},{"gitHubAccount":"Abderahman88","company":"","pictureUrl":"https://github.com/Abderahman88.png"}],"references":[]} \ No newline at end of file diff --git a/samples/react-graph-cascading-managed-metadata/assets/sample.json b/samples/react-graph-cascading-managed-metadata/assets/sample.json new file mode 100644 index 000000000..8765188c5 --- /dev/null +++ b/samples/react-graph-cascading-managed-metadata/assets/sample.json @@ -0,0 +1 @@ +{"name":"pnp-sp-dev-spfx-web-parts-react-graph-cascading-managed-metadata","version":null,"source":"pnp","title":"Cascading managed metadata using Graph API","shortDescription":"Shows how to use the Microsoft Graph APIs (beta) for Taxonomy to get the data.","longDescription":["Shows how to use the Microsoft Graph APIs (beta) for Taxonomy to get the data."],"products":["SharePoint","Office"],"categories":[""],"metadata":[{"key":"CLIENT-SIDE-DEV","value":"React"},{"key":"SPFX-VERSION","value":"1.11.0"}],"thumbnails":[{"type":"image","order":100,"url":"https://github.com/pnp/sp-dev-fx-webparts/raw/master/samples/react-graph-cascading-managed-metadata/assets/cmmd.gif","alt":"Cascading managed metadata using Graph API","slides":null}],"authors":[{"gitHubAccount":"anoopt","company":"","pictureUrl":"https://github.com/anoopt.png"}],"references":[]} \ No newline at end of file diff --git a/samples/react-graph-evalurl/assets/sample.json b/samples/react-graph-evalurl/assets/sample.json new file mode 100644 index 000000000..0d3f43ea3 --- /dev/null +++ b/samples/react-graph-evalurl/assets/sample.json @@ -0,0 +1 @@ +{"name":"pnp-sp-dev-spfx-web-parts-react-graph-evalurl","version":null,"source":"pnp","title":"Web part showing Url validation for SharePoint using Office Graph","shortDescription":"This sample contains a class that evaluates the url input of a text field against the Microsoft Graph.","longDescription":["This sample contains a class that evaluates the url input of a text field against the Microsoft Graph."],"products":["SharePoint","Office"],"categories":[""],"metadata":[{"key":"CLIENT-SIDE-DEV","value":"React"},{"key":"SPFX-VERSION","value":"1.4.1"}],"thumbnails":[{"type":"image","order":100,"url":"https://github.com/pnp/sp-dev-fx-webparts/raw/master/samples/react-graph-evalurl/assets/url-graph-eval.gif","alt":"Web part showing Url validation for SharePoint using Office Graph","slides":null}],"authors":[{"gitHubAccount":"StfBauer","company":"","pictureUrl":"https://github.com/StfBauer.png"}],"references":[]} \ No newline at end of file diff --git a/samples/react-graph-feedback-form/assets/sample.json b/samples/react-graph-feedback-form/assets/sample.json new file mode 100644 index 000000000..1da3174f8 --- /dev/null +++ b/samples/react-graph-feedback-form/assets/sample.json @@ -0,0 +1 @@ +{"name":"pnp-sp-dev-spfx-web-parts-react-graph-feedback-form","version":null,"source":"pnp","title":"Feedback Form","shortDescription":"Sample SPFx React web part which allows sending emails using Microsoft Graph.","longDescription":["Sample SPFx React web part which allows sending emails using Microsoft Graph."],"products":["SharePoint","Office"],"categories":[""],"metadata":[{"key":"CLIENT-SIDE-DEV","value":"React"},{"key":"SPFX-VERSION","value":"1.9.1"}],"thumbnails":[{"type":"image","order":100,"url":"https://github.com/pnp/sp-dev-fx-webparts/raw/master/samples/react-graph-feedback-form/assets/preview.gif","alt":"Feedback Form","slides":null}],"authors":[{"gitHubAccount":null,"company":"","pictureUrl":"https://github.com/.png"},{"gitHubAccount":"hugoabernier","company":"","pictureUrl":"https://github.com/hugoabernier.png"}],"references":[]} \ No newline at end of file diff --git a/samples/react-graph-personalemail/assets/sample.json b/samples/react-graph-personalemail/assets/sample.json new file mode 100644 index 000000000..fa589641b --- /dev/null +++ b/samples/react-graph-personalemail/assets/sample.json @@ -0,0 +1 @@ +{"name":"pnp-sp-dev-spfx-web-parts-react-graph-personalemail","version":null,"source":"pnp","title":"Personal e-mail","shortDescription":"Sample React web part showing how to retrieve and display personal e-mail retrieved using the Microsoft Graph.","longDescription":["Sample React web part showing how to retrieve and display personal e-mail retrieved using the Microsoft Graph."],"products":["SharePoint","Office"],"categories":[""],"metadata":[{"key":"CLIENT-SIDE-DEV","value":"React"},{"key":"SPFX-VERSION","value":"1.6.0"}],"thumbnails":[{"type":"image","order":100,"url":"https://github.com/pnp/sp-dev-fx-webparts/raw/master/samples/react-graph-personalemail/assets/preview.png","alt":"Personal e-mail","slides":null}],"authors":[{"gitHubAccount":"waldekmastykarz","company":"","pictureUrl":"https://github.com/waldekmastykarz.png"}],"references":[]} \ No newline at end of file diff --git a/samples/react-graph-pnpjs/assets/sample.json b/samples/react-graph-pnpjs/assets/sample.json new file mode 100644 index 000000000..ad4f950bb --- /dev/null +++ b/samples/react-graph-pnpjs/assets/sample.json @@ -0,0 +1 @@ +{"name":"pnp-sp-dev-spfx-web-parts-react-graph-pnpjs","version":null,"source":"pnp","title":"Using PnPJS with MS Graph","shortDescription":"This web part demonstrates how to use PnPJS with SharePoint Framework and how to query Microsoft Graph with PnPJS. It requests a list of Azure AD groups at your tenant and shows them using Office UI Fabric React list.","longDescription":["This web part demonstrates how to use PnPJS with SharePoint Framework and how to query Microsoft Graph with PnPJS. It requests a list of Azure AD groups at your tenant and shows them using Office UI Fabric React list."],"products":["SharePoint","Office"],"categories":[""],"metadata":[{"key":"CLIENT-SIDE-DEV","value":"React"},{"key":"SPFX-VERSION","value":"1.7.1"}],"thumbnails":[{"type":"image","order":100,"url":"https://github.com/pnp/sp-dev-fx-webparts/raw/master/samples/react-graph-pnpjs/assets/summary.png","alt":"Using PnPJS with MS Graph","slides":null}],"authors":[{"gitHubAccount":"s-KaiNet","company":"","pictureUrl":"https://github.com/s-KaiNet.png"}],"references":[]} \ No newline at end of file diff --git a/samples/react-graph-reports/assets/sample.json b/samples/react-graph-reports/assets/sample.json new file mode 100644 index 000000000..a9e708885 --- /dev/null +++ b/samples/react-graph-reports/assets/sample.json @@ -0,0 +1 @@ +{"name":"pnp-sp-dev-spfx-web-parts-react-graph-reports","version":null,"source":"pnp","title":"Graph Usage Reports","shortDescription":"This sample describe a SPFX application which retrieves an office 365 usage reports using Microsoft Graph API. This application also use chartjs library to generate graph.","longDescription":["This sample describe a SPFX application which retrieves an office 365 usage reports using Microsoft Graph API. This application also use chartjs library to generate graph."],"products":["SharePoint","Office"],"categories":[""],"metadata":[{"key":"CLIENT-SIDE-DEV","value":"React"},{"key":"SPFX-VERSION","value":"1.8.0"}],"thumbnails":[{"type":"image","order":100,"url":"https://github.com/pnp/sp-dev-fx-webparts/raw/master/samples/react-graph-reports/assets/react-graph-reports.gif","alt":"Graph Usage Reports","slides":null}],"authors":[{"gitHubAccount":"ejazhussain","company":"","pictureUrl":"https://github.com/ejazhussain.png"}],"references":[]} \ No newline at end of file diff --git a/samples/react-graph-schema-extensions/assets/sample.json b/samples/react-graph-schema-extensions/assets/sample.json new file mode 100644 index 000000000..50037f2d1 --- /dev/null +++ b/samples/react-graph-schema-extensions/assets/sample.json @@ -0,0 +1 @@ +{"name":"pnp-sp-dev-spfx-web-parts-react-graph-schema-extensions","version":null,"source":"pnp","title":"Read / update MS Graph Custom Schema Extensions","shortDescription":"This sample shows how read and update a custom Schema extension in MS Graph. It shows how to create a custom Schema extension in Graph to store custom data related to an Office 365 Group, and how we can read and update that data using an spfx web part.","longDescription":["This sample shows how read and update a custom Schema extension in MS Graph. It shows how to create a custom Schema extension in Graph to store custom data related to an Office 365 Group, and how we can read and update that data using an spfx web part."],"products":["SharePoint","Office"],"categories":[""],"metadata":[{"key":"CLIENT-SIDE-DEV","value":"React"},{"key":"SPFX-VERSION","value":"1.5.1"}],"thumbnails":[{"type":"image","order":100,"url":"https://github.com/pnp/sp-dev-fx-webparts/raw/master/samples/react-graph-schema-extensions/assets/webpart.png","alt":"Read / update MS Graph Custom Schema Extensions","slides":null}],"authors":[{"gitHubAccount":"luismanez","company":"","pictureUrl":"https://github.com/luismanez.png"}],"references":[]} \ No newline at end of file diff --git a/samples/react-graph-telephonedirectory/assets/sample.json b/samples/react-graph-telephonedirectory/assets/sample.json new file mode 100644 index 000000000..df1656e43 --- /dev/null +++ b/samples/react-graph-telephonedirectory/assets/sample.json @@ -0,0 +1 @@ +{"name":"pnp-sp-dev-spfx-web-parts-react-graph-telephonedirectory","version":null,"source":"pnp","title":"Telephone Directory using React, Ms Graph and SPFx","shortDescription":"This is sample web part using SPFx and MSGraph to fetch the users information based on First Name, Last Name and Email Address. web part will fetch data from directory using Graph API and display in details list.","longDescription":["This is sample web part using SPFx and MSGraph to fetch the users information based on First Name, Last Name and Email Address. web part will fetch data from directory using Graph API and display in details list."],"products":["SharePoint","Office"],"categories":[""],"metadata":[{"key":"CLIENT-SIDE-DEV","value":"React"},{"key":"SPFX-VERSION","value":"1.11.0"}],"thumbnails":[{"type":"image","order":100,"url":"https://github.com/pnp/sp-dev-fx-webparts/raw/master/samples/react-graph-telephonedirectory/assets/Preview.gif","alt":"Telephone Directory using React, Ms Graph and SPFx","slides":null}],"authors":[{"gitHubAccount":"dips365","company":"","pictureUrl":"https://github.com/dips365.png"},{"gitHubAccount":"a1mery","company":"","pictureUrl":"https://github.com/a1mery.png"}],"references":[]} \ No newline at end of file diff --git a/samples/react-hooks/assets/sample.json b/samples/react-hooks/assets/sample.json new file mode 100644 index 000000000..5a7f67980 --- /dev/null +++ b/samples/react-hooks/assets/sample.json @@ -0,0 +1 @@ +{"name":"pnp-sp-dev-spfx-web-parts-react-hooks","version":null,"source":"pnp","title":"React Hooks Form Web Part","shortDescription":"The React Hooks web part is an example of how to implement Hooks in Spfx. Hooks is a new feature included in React version 16.8, with the new version of SharePoint Framework (SPFx) version 1.9.1 we can use them in our developments. In this example we are going to see the different types of hooks that are available and with the comparison of how this implementation can be done without the Hooks to be able to observe the benefits of using it.","longDescription":["The React Hooks web part is an example of how to implement Hooks in Spfx. Hooks is a new feature included in React version 16.8, with the new version of SharePoint Framework (SPFx) version 1.9.1 we can use them in our developments. In this example we are going to see the different types of hooks that are available and with the comparison of how this implementation can be done without the Hooks to be able to observe the benefits of using it."],"products":["SharePoint","Office"],"categories":[""],"metadata":[{"key":"CLIENT-SIDE-DEV","value":"React"},{"key":"SPFX-VERSION","value":"1.9.1"}],"thumbnails":[{"type":"image","order":100,"url":"https://github.com/pnp/sp-dev-fx-webparts/raw/master/samples/react-hooks/assets/webpart.PNG","alt":"React Hooks Form Web Part","slides":null}],"authors":[{"gitHubAccount":null,"company":"","pictureUrl":"https://github.com/.png"}],"references":[]} \ No newline at end of file diff --git a/samples/react-image-gallery/assets/sample.json b/samples/react-image-gallery/assets/sample.json new file mode 100644 index 000000000..45a4b95be --- /dev/null +++ b/samples/react-image-gallery/assets/sample.json @@ -0,0 +1 @@ +{"name":"pnp-sp-dev-spfx-web-parts-react-image-gallery","version":null,"source":"pnp","title":"Filterable Image Gallery Web Part","shortDescription":"This sample describe a SPFX application which implement an image gallery with taxonomy base filtering and typed search. This application also implement pagination.","longDescription":["This sample describe a SPFX application which implement an image gallery with taxonomy base filtering and typed search. This application also implement pagination."],"products":["SharePoint","Office"],"categories":[""],"metadata":[{"key":"CLIENT-SIDE-DEV","value":"React"},{"key":"SPFX-VERSION","value":"1.6.0"}],"thumbnails":[{"type":"image","order":100,"url":"https://github.com/pnp/sp-dev-fx-webparts/raw/master/samples/react-image-gallery/assets/image-gallery.gif","alt":"Filterable Image Gallery Web Part","slides":null}],"authors":[{"gitHubAccount":"ejazhussain","company":"","pictureUrl":"https://github.com/ejazhussain.png"}],"references":[]} \ No newline at end of file diff --git a/samples/react-image-magnifier/assets/sample.json b/samples/react-image-magnifier/assets/sample.json new file mode 100644 index 000000000..49819215b --- /dev/null +++ b/samples/react-image-magnifier/assets/sample.json @@ -0,0 +1 @@ +{"name":"pnp-sp-dev-spfx-web-parts-react-image-magnifier","version":null,"source":"pnp","title":"Image Magnifier","shortDescription":"This web part allow to magnify an image, displaying a resolution more detailed through a lens.","longDescription":["This web part allow to magnify an image, displaying a resolution more detailed through a lens."],"products":["SharePoint","Office"],"categories":[""],"metadata":[{"key":"CLIENT-SIDE-DEV","value":"React"},{"key":"SPFX-VERSION","value":"GA"}],"thumbnails":[{"type":"image","order":100,"url":"https://github.com/pnp/sp-dev-fx-webparts/raw/master/samples/react-image-magnifier/assets/spfx-react-image-magnifier.gif","alt":"Image Magnifier","slides":null}],"authors":[{"gitHubAccount":"giuleon","company":"","pictureUrl":"https://github.com/giuleon.png"}],"references":[]} \ No newline at end of file diff --git a/samples/react-image-slider-list-taxonomy-filter/assets/sample.json b/samples/react-image-slider-list-taxonomy-filter/assets/sample.json new file mode 100644 index 000000000..f458dcdb6 --- /dev/null +++ b/samples/react-image-slider-list-taxonomy-filter/assets/sample.json @@ -0,0 +1 @@ +{"name":"pnp-sp-dev-spfx-web-parts-react-image-slider-list-taxonomy-filter","version":null,"source":"pnp","title":"Image Slider from Photo Gallery using Taxonomy Filter","shortDescription":"This web part display the image in slider based on the filter of Taxonomy from Property panel. Images are stored in PhotoGallery and tagged with Taxonomy.","longDescription":["This web part display the image in slider based on the filter of Taxonomy from Property panel. Images are stored in PhotoGallery and tagged with Taxonomy."],"products":["SharePoint","Office"],"categories":[""],"metadata":[{"key":"CLIENT-SIDE-DEV","value":"React"},{"key":"SPFX-VERSION","value":"1.6.0"}],"thumbnails":[{"type":"image","order":100,"url":"https://github.com/pnp/sp-dev-fx-webparts/raw/master/samples/react-image-slider-list-taxonomy-filter/assets/ImageSlider.gif","alt":"Image Slider from Photo Gallery using Taxonomy Filter","slides":null}],"authors":[{"gitHubAccount":"sudhir007rawat","company":"","pictureUrl":"https://github.com/sudhir007rawat.png"}],"references":[]} \ No newline at end of file diff --git a/samples/react-invitation-manager/assets/sample.json b/samples/react-invitation-manager/assets/sample.json new file mode 100644 index 000000000..e5841dc05 --- /dev/null +++ b/samples/react-invitation-manager/assets/sample.json @@ -0,0 +1 @@ +{"name":"pnp-sp-dev-spfx-web-parts-react-invitation-manager","version":null,"source":"pnp","title":"Azure Active Directory invitation manager Graph API samples","shortDescription":"Sample SharePoint Framework web parts built using React illustrating the possibility to use Graph API to invite external users into the Azure Active Directory.","longDescription":["Sample SharePoint Framework web parts built using React illustrating the possibility to use Graph API to invite external users into the Azure Active Directory."],"products":["SharePoint","Office"],"categories":[""],"metadata":[{"key":"CLIENT-SIDE-DEV","value":"React"},{"key":"SPFX-VERSION","value":"1.3.0"}],"thumbnails":[{"type":"image","order":100,"url":"https://github.com/pnp/sp-dev-fx-webparts/raw/master/samples/react-invitation-manager/assets/SPFx-Invitation-Manager.gif","alt":"Azure Active Directory invitation manager Graph API samples","slides":null}],"authors":[{"gitHubAccount":"giuleon","company":"","pictureUrl":"https://github.com/giuleon.png"}],"references":[]} \ No newline at end of file diff --git a/samples/react-ioc-tests/assets/sample.json b/samples/react-ioc-tests/assets/sample.json new file mode 100644 index 000000000..da44d7f4e --- /dev/null +++ b/samples/react-ioc-tests/assets/sample.json @@ -0,0 +1 @@ +{"name":"pnp-sp-dev-spfx-web-parts-react-ioc-tests","version":null,"source":"pnp","title":"React Inversion Of Control Web Part with Unit Tests using Jest and Enzyme","shortDescription":"This web part is provided as an example of implementing an IoC (Inversion of Control) pattern in the context of a SharePoint Framework web part.","longDescription":["This web part is provided as an example of implementing an IoC (Inversion of Control) pattern in the context of a SharePoint Framework web part."],"products":["SharePoint","Office"],"categories":[""],"metadata":[{"key":"CLIENT-SIDE-DEV","value":"React"},{"key":"SPFX-VERSION","value":"1.8.0"}],"thumbnails":[{"type":"image","order":100,"url":"https://github.com/pnp/sp-dev-fx-webparts/raw/master/samples/react-ioc-tests/assets/preview.jpg","alt":"React Inversion Of Control Web Part with Unit Tests using Jest and Enzyme","slides":null}],"authors":[{"gitHubAccount":"paulryan","company":"","pictureUrl":"https://github.com/paulryan.png"}],"references":[]} \ No newline at end of file diff --git a/samples/react-item-History/assets/sample.json b/samples/react-item-History/assets/sample.json new file mode 100644 index 000000000..ae3aafc45 --- /dev/null +++ b/samples/react-item-History/assets/sample.json @@ -0,0 +1 @@ +{"name":"pnp-sp-dev-spfx-web-parts-react-item-History","version":null,"source":"pnp","title":"Item History","shortDescription":"This listview command is used to show the past versions of the selected list item in a grid.","longDescription":["This listview command is used to show the past versions of the selected list item in a grid."],"products":["SharePoint","Office"],"categories":[""],"metadata":[{"key":"CLIENT-SIDE-DEV","value":"React"},{"key":"SPFX-VERSION","value":"1.4.1"}],"thumbnails":[{"type":"image","order":100,"url":"https://github.com/pnp/sp-dev-fx-webparts/raw/master/samples/react-item-History/Capture.PNG","alt":"Item History","slides":null}],"authors":[{"gitHubAccount":"russgove","company":"","pictureUrl":"https://github.com/russgove.png"}],"references":[]} \ No newline at end of file diff --git a/samples/react-jest-testing/assets/sample.json b/samples/react-jest-testing/assets/sample.json new file mode 100644 index 000000000..387cef421 --- /dev/null +++ b/samples/react-jest-testing/assets/sample.json @@ -0,0 +1 @@ +{"name":"pnp-sp-dev-spfx-web-parts-react-jest-testing","version":null,"source":"pnp","title":"React Jest Testing sample","shortDescription":"This sample uses the popular Jest Testing Framework with a SPFx client side solution. It is a SPFx-Jest-Enzyme-Sinon starter kit so you can start writing and debugging unit tests in typescript for your SPFx solution. The setup includes unit tests examples, code coverage reports in different formats, visual studio code unit test debug configurations for typescript, setting a coverage threshold (gates) for continuous integration and continuous deployment scenarios.","longDescription":["This sample uses the popular Jest Testing Framework with a SPFx client side solution. It is a SPFx-Jest-Enzyme-Sinon starter kit so you can start writing and debugging unit tests in typescript for your SPFx solution. The setup includes unit tests examples, code coverage reports in different formats, visual studio code unit test debug configurations for typescript, setting a coverage threshold (gates) for continuous integration and continuous deployment scenarios."],"products":["SharePoint","Office"],"categories":[""],"metadata":[{"key":"CLIENT-SIDE-DEV","value":"React"},{"key":"SPFX-VERSION","value":"1.8.2"}],"thumbnails":[{"type":"image","order":100,"url":"https://github.com/pnp/sp-dev-fx-webparts/raw/master/samples/react-jest-testing/assets/Jest-Typescript-VSCode-debugging.png","alt":"React Jest Testing sample","slides":null}],"authors":[{"gitHubAccount":"VelinGeorgiev","company":"","pictureUrl":"https://github.com/VelinGeorgiev.png"}],"references":[]} \ No newline at end of file diff --git a/samples/react-kanban-board/assets/sample.json b/samples/react-kanban-board/assets/sample.json new file mode 100644 index 000000000..2ce3b429d --- /dev/null +++ b/samples/react-kanban-board/assets/sample.json @@ -0,0 +1 @@ +{"name":"pnp-sp-dev-spfx-web-parts-react-kanban-board","version":null,"source":"pnp","title":"Kanban Board Web part","shortDescription":"This solution contains an SPFx web part which shows a Kanban board using jqxKanban ReactJS component (from JQWidgets). The web part uses the default columns of the SharePoint Tasks list for showing the board\u0027s columns and the tasks.","longDescription":["This solution contains an SPFx web part which shows a Kanban board using jqxKanban ReactJS component (from JQWidgets). The web part uses the default columns of the SharePoint Tasks list for showing the board\u0027s columns and the tasks."],"products":["SharePoint","Office"],"categories":[""],"metadata":[{"key":"CLIENT-SIDE-DEV","value":"React"},{"key":"SPFX-VERSION","value":"1.10.0"}],"thumbnails":[{"type":"image","order":100,"url":"https://github.com/pnp/sp-dev-fx-webparts/raw/master/samples/react-kanban-board/assets/kanbanofficeUI.gif","alt":"Kanban Board Web part","slides":null}],"authors":[{"gitHubAccount":"RamPrasadMeenavalli","company":"","pictureUrl":"https://github.com/RamPrasadMeenavalli.png"},{"gitHubAccount":"westerdaled","company":"","pictureUrl":"https://github.com/westerdaled.png"},{"gitHubAccount":"petkir","company":"","pictureUrl":"https://github.com/petkir.png"}],"references":[]} \ No newline at end of file diff --git a/samples/react-links/assets/sample.json b/samples/react-links/assets/sample.json new file mode 100644 index 000000000..dbb945143 --- /dev/null +++ b/samples/react-links/assets/sample.json @@ -0,0 +1 @@ +{"name":"pnp-sp-dev-spfx-web-parts-react-links","version":null,"source":"pnp","title":"Links web part","shortDescription":"This web part provides you the ability to add a per instance listing of links with the ability to group sets of links. Links are stored as a collection of links within the web part\u0027s properties, removing the need for link storage within SharePoint lists, tenant properties, or other external link storage requirements.","longDescription":["This web part provides you the ability to add a per instance listing of links with the ability to group sets of links. Links are stored as a collection of links within the web part\u0027s properties, removing the need for link storage within SharePoint lists, tenant properties, or other external link storage requirements."],"products":["SharePoint","Office"],"categories":[""],"metadata":[{"key":"CLIENT-SIDE-DEV","value":"React"},{"key":"SPFX-VERSION","value":"1.10"}],"thumbnails":[{"type":"image","order":100,"url":"https://github.com/pnp/sp-starter-kit/raw/master/assets/images/components/part-links.gif","alt":"Links web part","slides":null}],"authors":[{"gitHubAccount":null,"company":"","pictureUrl":"https://github.com/.png"}],"references":[]} \ No newline at end of file diff --git a/samples/react-list-form/assets/sample.json b/samples/react-list-form/assets/sample.json new file mode 100644 index 000000000..0f0cefde3 --- /dev/null +++ b/samples/react-list-form/assets/sample.json @@ -0,0 +1 @@ +{"name":"pnp-sp-dev-spfx-web-parts-react-list-form","version":null,"source":"pnp","title":"List Form Web Part","shortDescription":"The React List Form web part is a web part for adding a list form to any page. It provides a working example of implementing generic SharePoint list forms using the SharePoint Framework (SPFx) and the React and Office UI Fabric libraries.","longDescription":["The React List Form web part is a web part for adding a list form to any page. It provides a working example of implementing generic SharePoint list forms using the SharePoint Framework (SPFx) and the React and Office UI Fabric libraries."],"products":["SharePoint","Office"],"categories":[""],"metadata":[{"key":"CLIENT-SIDE-DEV","value":"React"},{"key":"SPFX-VERSION","value":"1.10.0"}],"thumbnails":[{"type":"image","order":100,"url":"https://github.com/pnp/sp-dev-fx-webparts/raw/master/samples/react-list-form/assets/React-ListForm-Overview.gif","alt":"List Form Web Part","slides":null}],"authors":[{"gitHubAccount":"DanyWyss","company":"","pictureUrl":"https://github.com/DanyWyss.png"},{"gitHubAccount":"Harshagracy","company":"","pictureUrl":"https://github.com/Harshagracy.png"},{"gitHubAccount":"sharepointknight","company":"","pictureUrl":"https://github.com/sharepointknight.png"},{"gitHubAccount":"Abderahman88","company":"","pictureUrl":"https://github.com/Abderahman88.png"},{"gitHubAccount":"hugoabernier","company":"","pictureUrl":"https://github.com/hugoabernier.png"}],"references":[]} \ No newline at end of file diff --git a/samples/react-list-items-menu/assets/sample.json b/samples/react-list-items-menu/assets/sample.json new file mode 100644 index 000000000..14f07d191 --- /dev/null +++ b/samples/react-list-items-menu/assets/sample.json @@ -0,0 +1 @@ +{"name":"pnp-sp-dev-spfx-web-parts-react-list-items-menu","version":null,"source":"pnp","title":"List Items Menu","shortDescription":"Allows user create a navigation menu , grouped by any column of document library. When the user clicks on the header it dynamically load documents.","longDescription":["Allows user create a navigation menu , grouped by any column of document library. When the user clicks on the header it dynamically load documents."],"products":["SharePoint","Office"],"categories":[""],"metadata":[{"key":"CLIENT-SIDE-DEV","value":"React"},{"key":"SPFX-VERSION","value":"1.11.0"}],"thumbnails":[{"type":"image","order":100,"url":"https://github.com/pnp/sp-dev-fx-webparts/raw/master/samples/react-list-items-menu/assets/ListMenuDocs.gif","alt":"List Items Menu","slides":null}],"authors":[{"gitHubAccount":"joaojmendes","company":"","pictureUrl":"https://github.com/joaojmendes.png"}],"references":[]} \ No newline at end of file diff --git a/samples/react-lob-integration/assets/sample.json b/samples/react-lob-integration/assets/sample.json new file mode 100644 index 000000000..77615f561 --- /dev/null +++ b/samples/react-lob-integration/assets/sample.json @@ -0,0 +1 @@ +{"name":"pnp-sp-dev-spfx-web-parts-react-lob-integration","version":null,"source":"pnp","title":"LOB Integration web part","shortDescription":"This web part allows you to learn how to consume 3rd party APIs, secured with Azure Active Directory, in the context of SharePoint Framework.","longDescription":["This web part allows you to learn how to consume 3rd party APIs, secured with Azure Active Directory, in the context of SharePoint Framework."],"products":["SharePoint","Office"],"categories":[""],"metadata":[{"key":"CLIENT-SIDE-DEV","value":"React"},{"key":"SPFX-VERSION","value":"1.10"}],"thumbnails":[{"type":"image","order":100,"url":"https://github.com/pnp/sp-starter-kit/raw/master/assets/images/components/part-lob-integration.png","alt":"LOB Integration web part","slides":null}],"authors":[{"gitHubAccount":null,"company":"","pictureUrl":"https://github.com/.png"}],"references":[]} \ No newline at end of file diff --git a/samples/react-manage-o365-groups/assets/sample.json b/samples/react-manage-o365-groups/assets/sample.json new file mode 100644 index 000000000..ed34cf3ad --- /dev/null +++ b/samples/react-manage-o365-groups/assets/sample.json @@ -0,0 +1 @@ +{"name":"pnp-sp-dev-spfx-web-parts-react-manage-o365-groups","version":null,"source":"pnp","title":"Manage Office 365 Groups with SPFx","shortDescription":"Office 365 Groups is the foundational membership service, that drives all teamwork across Microsoft 365. Once in a group, we can get the benefits of the group-connected services like shared Outlook inbox, shared calendar, SharePoint site, Planner, Power BI, Yammer, and Teams.","longDescription":["Office 365 Groups is the foundational membership service, that drives all teamwork across Microsoft 365. Once in a group, we can get the benefits of the group-connected services like shared Outlook inbox, shared calendar, SharePoint site, Planner, Power BI, Yammer, and Teams."],"products":["SharePoint","Office"],"categories":[""],"metadata":[{"key":"CLIENT-SIDE-DEV","value":"React"},{"key":"SPFX-VERSION","value":"1.9.1"}],"thumbnails":[{"type":"image","order":100,"url":"https://github.com/pnp/sp-dev-fx-webparts/raw/master/samples/react-manage-o365-groups/assets/web-part-preview.gif","alt":"Manage Office 365 Groups with SPFx","slides":null}],"authors":[{"gitHubAccount":"nanddeepn","company":"","pictureUrl":"https://github.com/nanddeepn.png"},{"gitHubAccount":"SmitaNachan","company":"","pictureUrl":"https://github.com/SmitaNachan.png"}],"references":[]} \ No newline at end of file diff --git a/samples/react-manage-profile-card-properties/assets/sample.json b/samples/react-manage-profile-card-properties/assets/sample.json new file mode 100644 index 000000000..92a5374be --- /dev/null +++ b/samples/react-manage-profile-card-properties/assets/sample.json @@ -0,0 +1 @@ +{"name":"pnp-sp-dev-spfx-web-parts-react-manage-profile-card-properties","version":null,"source":"pnp","title":"Manage Profile Card Properties","shortDescription":"This web part allows tenant administrators to manage profile card properties.","longDescription":["This web part allows tenant administrators to manage profile card properties."],"products":["SharePoint","Office"],"categories":[""],"metadata":[{"key":"CLIENT-SIDE-DEV","value":"React"},{"key":"SPFX-VERSION","value":"1.11.0"}],"thumbnails":[{"type":"image","order":100,"url":"https://github.com/pnp/sp-dev-fx-webparts/raw/master/samples/react-manage-profile-card-properties/assets/Screenshot5.png","alt":"Manage Profile Card Properties","slides":null}],"authors":[{"gitHubAccount":"joaojmendes","company":"","pictureUrl":"https://github.com/joaojmendes.png"}],"references":[]} \ No newline at end of file diff --git a/samples/react-manage-sitedesigns/assets/sample.json b/samples/react-manage-sitedesigns/assets/sample.json new file mode 100644 index 000000000..a5ea494f3 --- /dev/null +++ b/samples/react-manage-sitedesigns/assets/sample.json @@ -0,0 +1 @@ +{"name":"pnp-sp-dev-spfx-web-parts-react-manage-sitedesigns","version":null,"source":"pnp","title":"Site Designs Manager","shortDescription":"This web part allows tenant administrators to manage site designs through a graphical interface.","longDescription":["This web part allows tenant administrators to manage site designs through a graphical interface."],"products":["SharePoint","Office"],"categories":[""],"metadata":[{"key":"CLIENT-SIDE-DEV","value":"React"},{"key":"SPFX-VERSION","value":"1.8.0"}],"thumbnails":[{"type":"image","order":100,"url":"https://github.com/joaojmendes/sp-dev-fx-webparts/raw/dev/samples/react-manage-sitedesigns/assets/screen1.jpg","alt":"Site Designs Manager","slides":null}],"authors":[{"gitHubAccount":"joaojmendes","company":"","pictureUrl":"https://github.com/joaojmendes.png"}],"references":[]} \ No newline at end of file diff --git a/samples/react-manage-spfx-solutions-alm/assets/sample.json b/samples/react-manage-spfx-solutions-alm/assets/sample.json new file mode 100644 index 000000000..26e097295 --- /dev/null +++ b/samples/react-manage-spfx-solutions-alm/assets/sample.json @@ -0,0 +1 @@ +{"name":"pnp-sp-dev-spfx-web-parts-react-manage-spfx-solutions-alm","version":null,"source":"pnp","title":"Manage SPFx solution using ALM APIs","shortDescription":"This web part acts as a centralized place where admin can manage SPFx solutions present in their tenant using Application lifecycle Management(ALM) APIs and perform activities like Add, Deploy, Install, Retract, Uninstall \u0026 Remove apps.","longDescription":["This web part acts as a centralized place where admin can manage SPFx solutions present in their tenant using Application lifecycle Management(ALM) APIs and perform activities like Add, Deploy, Install, Retract, Uninstall \u0026 Remove apps."],"products":["SharePoint","Office"],"categories":[""],"metadata":[{"key":"CLIENT-SIDE-DEV","value":"React"},{"key":"SPFX-VERSION","value":"1.10.0"}],"thumbnails":[{"type":"image","order":100,"url":"https://github.com/pnp/sp-dev-fx-webparts/raw/master/samples/react-manage-spfx-solutions-alm/assets/SPFxALM.gif","alt":"Manage SPFx solution using ALM APIs","slides":null}],"authors":[{"gitHubAccount":"Ramakrishnan24689","company":"","pictureUrl":"https://github.com/Ramakrishnan24689.png"}],"references":[]} \ No newline at end of file diff --git a/samples/react-material-ui/assets/sample.json b/samples/react-material-ui/assets/sample.json new file mode 100644 index 000000000..28089c739 --- /dev/null +++ b/samples/react-material-ui/assets/sample.json @@ -0,0 +1 @@ +{"name":"pnp-sp-dev-spfx-web-parts-react-material-ui","version":null,"source":"pnp","title":"Material UI","shortDescription":"This sample shows how you can use Material UI components in your SharePoint Framework solution. In this sample you will find some of the Material UI components like Table, Dialog, Text Field and Icon. This sample also includes RXJS DebounceTime, this feature allows you to wait for a certain amount of time before make requests to the server while user is typing to prevent to make requests for each character.","longDescription":["This sample shows how you can use Material UI components in your SharePoint Framework solution. In this sample you will find some of the Material UI components like Table, Dialog, Text Field and Icon. This sample also includes RXJS DebounceTime, this feature allows you to wait for a certain amount of time before make requests to the server while user is typing to prevent to make requests for each character."],"products":["SharePoint","Office"],"categories":[""],"metadata":[{"key":"CLIENT-SIDE-DEV","value":"React"},{"key":"SPFX-VERSION","value":"1.8.1"}],"thumbnails":[{"type":"image","order":100,"url":"https://github.com/pnp/sp-dev-fx-webparts/raw/master/samples/react-material-ui/assets/screenshot.gif","alt":"Material UI","slides":null}],"authors":[{"gitHubAccount":"AhmadiRamin","company":"","pictureUrl":"https://github.com/AhmadiRamin.png"}],"references":[]} \ No newline at end of file diff --git a/samples/react-members-with-presence/assets/sample.json b/samples/react-members-with-presence/assets/sample.json new file mode 100644 index 000000000..898e7f31f --- /dev/null +++ b/samples/react-members-with-presence/assets/sample.json @@ -0,0 +1 @@ +{"name":"pnp-sp-dev-spfx-web-parts-react-members-with-presence","version":null,"source":"pnp","title":"Group members list with Presence information","shortDescription":"This sample shows how to get the members of a specific group, including their presence information (using the new Presence endpoint in the MS Graph API).","longDescription":["This sample shows how to get the members of a specific group, including their presence information (using the new Presence endpoint in the MS Graph API)."],"products":["SharePoint","Office"],"categories":[""],"metadata":[{"key":"CLIENT-SIDE-DEV","value":"React"},{"key":"SPFX-VERSION","value":"1.9.1"}],"thumbnails":[{"type":"image","order":100,"url":"https://github.com/pnp/sp-dev-fx-webparts/raw/master/samples/react-members-with-presence/assets/react-members-with-presence.gif","alt":"Group members list with Presence information","slides":null}],"authors":[{"gitHubAccount":"luismanez","company":"","pictureUrl":"https://github.com/luismanez.png"}],"references":[]} \ No newline at end of file diff --git a/samples/react-mgtEvents/assets/sample.json b/samples/react-mgtEvents/assets/sample.json new file mode 100644 index 000000000..75dcf4962 --- /dev/null +++ b/samples/react-mgtEvents/assets/sample.json @@ -0,0 +1 @@ +{"name":"pnp-sp-dev-spfx-web-parts-react-mgtEvents","version":null,"source":"pnp","title":"MGT Events","shortDescription":"This sample shows how to use Microsoft Graph Toolkit in SPFx and custom with Fluent UI Fabric Controls","longDescription":["This sample shows how to use Microsoft Graph Toolkit in SPFx and custom with Fluent UI Fabric Controls"],"products":["SharePoint","Office"],"categories":[""],"metadata":[{"key":"CLIENT-SIDE-DEV","value":"React"},{"key":"SPFX-VERSION","value":"1.11.0"}],"thumbnails":[{"type":"image","order":100,"url":"https://github.com/pnp/sp-dev-fx-webparts/raw/master/samples/react-mgtEvents/assets/mhtEvents.JPG","alt":"MGT Events","slides":null}],"authors":[{"gitHubAccount":"joaojmendes","company":"","pictureUrl":"https://github.com/joaojmendes.png"}],"references":[]} \ No newline at end of file diff --git a/samples/react-minesweeper/assets/sample.json b/samples/react-minesweeper/assets/sample.json new file mode 100644 index 000000000..671a688ae --- /dev/null +++ b/samples/react-minesweeper/assets/sample.json @@ -0,0 +1 @@ +{"name":"pnp-sp-dev-spfx-web-parts-react-minesweeper","version":null,"source":"pnp","title":"Minesweeper","shortDescription":"This web part is the classic game Minesweeper, put in a Fluent UI powered SPFx web part!.","longDescription":["This web part is the classic game Minesweeper, put in a Fluent UI powered SPFx web part!."],"products":["SharePoint","Office"],"categories":[""],"metadata":[{"key":"CLIENT-SIDE-DEV","value":"React"},{"key":"SPFX-VERSION","value":"1.10.0"}],"thumbnails":[{"type":"image","order":100,"url":"https://github.com/pnp/sp-dev-fx-webparts/raw/master/samples/react-minesweeper/assets/Minesweeper.gif","alt":"Minesweeper","slides":null}],"authors":[{"gitHubAccount":"PieterHeemeryck","company":"","pictureUrl":"https://github.com/PieterHeemeryck.png"}],"references":[]} \ No newline at end of file diff --git a/samples/react-mobx-multiple-stores/assets/sample.json b/samples/react-mobx-multiple-stores/assets/sample.json new file mode 100644 index 000000000..ed11c6ca5 --- /dev/null +++ b/samples/react-mobx-multiple-stores/assets/sample.json @@ -0,0 +1 @@ +{"name":"pnp-sp-dev-spfx-web-parts-react-mobx-multiple-stores","version":null,"source":"pnp","title":"Using multiple stores with React and Mobx","shortDescription":"A sample web part that uses the Mobx library with multiple stores to keep track of the applications state.","longDescription":["A sample web part that uses the Mobx library with multiple stores to keep track of the applications state."],"products":["SharePoint","Office"],"categories":[""],"metadata":[{"key":"CLIENT-SIDE-DEV","value":"React"},{"key":"SPFX-VERSION","value":"1.8.2"}],"thumbnails":[{"type":"image","order":100,"url":"https://github.com/pnp/sp-dev-fx-webparts/raw/master/samples/react-mobx-multiple-stores/assets/demo.gif","alt":"Using multiple stores with React and Mobx","slides":null}],"authors":[{"gitHubAccount":"KEMiCZA","company":"","pictureUrl":"https://github.com/KEMiCZA.png"}],"references":[]} \ No newline at end of file diff --git a/samples/react-mobx/assets/sample.json b/samples/react-mobx/assets/sample.json new file mode 100644 index 000000000..5fbdc0450 --- /dev/null +++ b/samples/react-mobx/assets/sample.json @@ -0,0 +1 @@ +{"name":"pnp-sp-dev-spfx-web-parts-react-mobx","version":null,"source":"pnp","title":"Using React and Mobx","shortDescription":"Sample web part implementation that uses Mobx to keep track of its state.","longDescription":["Sample web part implementation that uses Mobx to keep track of its state."],"products":["SharePoint","Office"],"categories":[""],"metadata":[{"key":"CLIENT-SIDE-DEV","value":"React"},{"key":"SPFX-VERSION","value":"drop5"}],"thumbnails":[{"type":"image","order":100,"url":"https://camo.githubusercontent.com/1bfb94ba2675eec1c794cfea81bdde41b964268f/68747470733a2f2f692e6779617a6f2e636f6d2f65366631393033623961396338323031393835636432356363316665323862632e676966","alt":"Using React and Mobx","slides":null}],"authors":[{"gitHubAccount":"kmees","company":"","pictureUrl":"https://github.com/kmees.png"}],"references":[]} \ No newline at end of file diff --git a/samples/react-modern-charts/assets/sample.json b/samples/react-modern-charts/assets/sample.json new file mode 100644 index 000000000..6014f6829 --- /dev/null +++ b/samples/react-modern-charts/assets/sample.json @@ -0,0 +1 @@ +{"name":"pnp-sp-dev-spfx-web-parts-react-modern-charts","version":null,"source":"pnp","title":"Modern Charts","shortDescription":"This web part uses the Chart.js library to visualize SharePoint list data.","longDescription":["This web part uses the Chart.js library to visualize SharePoint list data."],"products":["SharePoint","Office"],"categories":[""],"metadata":[{"key":"CLIENT-SIDE-DEV","value":"React"},{"key":"SPFX-VERSION","value":"1.10.0"}],"thumbnails":[{"type":"image","order":100,"url":"https://raw.githubusercontent.com/jcoleman-pcprofessional/Modern-Charts/master/assets/modern-chart2.png","alt":"Modern Charts","slides":null}],"authors":[{"gitHubAccount":"jcoleman-pcprofessional","company":"","pictureUrl":"https://github.com/jcoleman-pcprofessional.png"},{"gitHubAccount":"petkir","company":"","pictureUrl":"https://github.com/petkir.png"}],"references":[]} \ No newline at end of file diff --git a/samples/react-modern-organization-chart/assets/sample.json b/samples/react-modern-organization-chart/assets/sample.json new file mode 100644 index 000000000..d757d7421 --- /dev/null +++ b/samples/react-modern-organization-chart/assets/sample.json @@ -0,0 +1 @@ +{"name":"pnp-sp-dev-spfx-web-parts-react-modern-organization-chart","version":null,"source":"pnp","title":"Modern Organization Chart","shortDescription":"This web part show organization chart for current user, shows, managers and direct reports and there available status.","longDescription":["This web part show organization chart for current user, shows, managers and direct reports and there available status."],"products":["SharePoint","Office"],"categories":[""],"metadata":[{"key":"CLIENT-SIDE-DEV","value":"React"},{"key":"SPFX-VERSION","value":"1.10.0"}],"thumbnails":[{"type":"image","order":100,"url":"https://github.com/pnp/sp-dev-fx-webparts/raw/master/samples/react-modern-organization-chart/assets/Screenshot1.png","alt":"Modern Organization Chart","slides":null}],"authors":[{"gitHubAccount":"joaojmendes","company":"","pictureUrl":"https://github.com/joaojmendes.png"}],"references":[]} \ No newline at end of file diff --git a/samples/react-msal-msgraph/assets/sample.json b/samples/react-msal-msgraph/assets/sample.json new file mode 100644 index 000000000..56bf300e2 --- /dev/null +++ b/samples/react-msal-msgraph/assets/sample.json @@ -0,0 +1 @@ +{"name":"pnp-sp-dev-spfx-web-parts-react-msal-msgraph","version":null,"source":"pnp","title":"Microsoft Authentication Library (MSAL JS) authentication sample","shortDescription":"","longDescription":[""],"products":["SharePoint","Office"],"categories":[""],"metadata":[{"key":"CLIENT-SIDE-DEV","value":"React"},{"key":"SPFX-VERSION","value":"GA"}],"thumbnails":[{"type":"image","order":100,"url":"https://github.com/pnp/sp-dev-fx-webparts/raw/master/samples/react-msal-msgraph/assets/msal-wp-output.png","alt":"Microsoft Authentication Library (MSAL JS) authentication sample","slides":null}],"authors":[{"gitHubAccount":"estruyf","company":"","pictureUrl":"https://github.com/estruyf.png"}],"references":[]} \ No newline at end of file diff --git a/samples/react-msgraph-extension/assets/sample.json b/samples/react-msgraph-extension/assets/sample.json new file mode 100644 index 000000000..b30b35c45 --- /dev/null +++ b/samples/react-msgraph-extension/assets/sample.json @@ -0,0 +1 @@ +{"name":"pnp-sp-dev-spfx-web-parts-react-msgraph-extension","version":null,"source":"pnp","title":"Manage Microsoft Graph Open Extension in SPFx","shortDescription":"This sample shows how to managed Microsoft Graph Open Extension in SPFX. This application uses User Resource to create Open Extension.","longDescription":["This sample shows how to managed Microsoft Graph Open Extension in SPFX. This application uses User Resource to create Open Extension."],"products":["SharePoint","Office"],"categories":[""],"metadata":[{"key":"CLIENT-SIDE-DEV","value":"React"},{"key":"SPFX-VERSION","value":"1.9.1"}],"thumbnails":[{"type":"image","order":100,"url":"https://github.com/pnp/sp-dev-fx-webparts/raw/master/samples/react-msgraph-extension/assets/create-graph-extension.png","alt":"Manage Microsoft Graph Open Extension in SPFx","slides":null}],"authors":[{"gitHubAccount":"ejazhussain","company":"","pictureUrl":"https://github.com/ejazhussain.png"}],"references":[]} \ No newline at end of file diff --git a/samples/react-msgraph-peoplesearch/assets/sample.json b/samples/react-msgraph-peoplesearch/assets/sample.json new file mode 100644 index 000000000..bfc813019 --- /dev/null +++ b/samples/react-msgraph-peoplesearch/assets/sample.json @@ -0,0 +1 @@ +{"name":"pnp-sp-dev-spfx-web-parts-react-msgraph-peoplesearch","version":null,"source":"pnp","title":"Microsoft Graph People Search Web Part","shortDescription":"Show and search users from your organization, through Microsoft Graph. Search results show as a nice People Card, and display the Live Persona Card on hover.","longDescription":["Show and search users from your organization, through Microsoft Graph. Search results show as a nice People Card, and display the Live Persona Card on hover."],"products":["SharePoint","Office"],"categories":[""],"metadata":[{"key":"CLIENT-SIDE-DEV","value":"React"},{"key":"SPFX-VERSION","value":"1.11.0"}],"thumbnails":[{"type":"image","order":100,"url":"https://github.com/pnp/sp-dev-fx-webparts/raw/master/samples/react-msgraph-peoplesearch/assets/MicrosoftGraphPeopleSearch.gif","alt":"Microsoft Graph People Search Web Part","slides":null}],"authors":[{"gitHubAccount":"YannickRe","company":"","pictureUrl":"https://github.com/YannickRe.png"}],"references":[]} \ No newline at end of file diff --git a/samples/react-multilist-grid/assets/sample.json b/samples/react-multilist-grid/assets/sample.json new file mode 100644 index 000000000..c8f92bb03 --- /dev/null +++ b/samples/react-multilist-grid/assets/sample.json @@ -0,0 +1 @@ +{"name":"pnp-sp-dev-spfx-web-parts-react-multilist-grid","version":null,"source":"pnp","title":"Multi-list Grid","shortDescription":"React-multilist-grid is an SPFX web part that uses React, Office-UI-Fabric, and Redux to let users edit list data from lists that reside in multiple webs and multiple sites in a single grid, similar to Quick Edit mode. The lists do not to be of the same type \u2013 you just need to create column mappings to tell the web part which fields to show in which columns of the grid.","longDescription":["React-multilist-grid is an SPFX web part that uses React, Office-UI-Fabric, and Redux to let users edit list data from lists that reside in multiple webs and multiple sites in a single grid, similar to Quick Edit mode. The lists do not to be of the same type \u2013 you just need to create column mappings to tell the web part which fields to show in which columns of the grid."],"products":["SharePoint","Office"],"categories":[""],"metadata":[{"key":"CLIENT-SIDE-DEV","value":"React"},{"key":"SPFX-VERSION","value":"rc0"}],"thumbnails":[{"type":"image","order":100,"url":"https://github.com/pnp/sp-dev-fx-webparts/raw/master/samples/react-multilist-grid/src/images/ColumnTypes.PNG","alt":"Multi-list Grid","slides":null}],"authors":[{"gitHubAccount":"russgove","company":"","pictureUrl":"https://github.com/russgove.png"}],"references":[]} \ No newline at end of file diff --git a/samples/react-multimedia-gallery/assets/sample.json b/samples/react-multimedia-gallery/assets/sample.json new file mode 100644 index 000000000..6152e37a7 --- /dev/null +++ b/samples/react-multimedia-gallery/assets/sample.json @@ -0,0 +1 @@ +{"name":"pnp-sp-dev-spfx-web-parts-react-multimedia-gallery","version":null,"source":"pnp","title":"Image Gallery","shortDescription":"This web part show images and videos in responsive grid, on click it show images and videos in a carousel view.","longDescription":["This web part show images and videos in responsive grid, on click it show images and videos in a carousel view."],"products":["SharePoint","Office"],"categories":[""],"metadata":[{"key":"CLIENT-SIDE-DEV","value":"React"},{"key":"SPFX-VERSION","value":"1.10.0"}],"thumbnails":[{"type":"image","order":100,"url":"https://github.com/pnp/sp-dev-fx-webparts/raw/master/samples/react-multimedia-gallery/assets/MultimediaGallery.gif","alt":"Image Gallery","slides":null}],"authors":[{"gitHubAccount":"joaojmendes","company":"","pictureUrl":"https://github.com/joaojmendes.png"},{"gitHubAccount":"Vivekrajput20","company":"","pictureUrl":"https://github.com/Vivekrajput20.png"},{"gitHubAccount":"petkir","company":"","pictureUrl":"https://github.com/petkir.png"}],"references":[]} \ No newline at end of file diff --git a/samples/react-multipage/assets/sample.json b/samples/react-multipage/assets/sample.json new file mode 100644 index 000000000..90eb13971 --- /dev/null +++ b/samples/react-multipage/assets/sample.json @@ -0,0 +1 @@ +{"name":"pnp-sp-dev-spfx-web-parts-react-multipage","version":null,"source":"pnp","title":"Multi-page client-side web part","shortDescription":"Sample SharePoint Framework client-side web parts built using React illustrating building multi-page web parts.","longDescription":["Sample SharePoint Framework client-side web parts built using React illustrating building multi-page web parts."],"products":["SharePoint","Office"],"categories":[""],"metadata":[{"key":"CLIENT-SIDE-DEV","value":"React"},{"key":"SPFX-VERSION","value":"GA"}],"thumbnails":[{"type":"image","order":100,"url":"https://github.com/pnp/sp-dev-fx-webparts/raw/master/samples/react-multipage/assets/poll-preview.gif","alt":"Multi-page client-side web part","slides":null}],"authors":[{"gitHubAccount":"waldekmastykarz","company":"","pictureUrl":"https://github.com/waldekmastykarz.png"}],"references":[]} \ No newline at end of file diff --git a/samples/react-multiscreen-webpart/assets/sample.json b/samples/react-multiscreen-webpart/assets/sample.json new file mode 100644 index 000000000..8a7fa7be9 --- /dev/null +++ b/samples/react-multiscreen-webpart/assets/sample.json @@ -0,0 +1 @@ +{"name":"pnp-sp-dev-spfx-web-parts-react-multiscreen-webpart","version":null,"source":"pnp","title":"Multi screen web part sample","shortDescription":"This sample uses the popular React Router library to create tab, multi-screen or single page app (spa) experience in React SPFx web part. This is useful when the web part is more complex and to simplify the user experience multiple screens or tabs are needed. The same approach can be taken when a single page app (SPA) has to be migrated to modern SharePoint sites.","longDescription":["This sample uses the popular React Router library to create tab, multi-screen or single page app (spa) experience in React SPFx web part. This is useful when the web part is more complex and to simplify the user experience multiple screens or tabs are needed. The same approach can be taken when a single page app (SPA) has to be migrated to modern SharePoint sites."],"products":["SharePoint","Office"],"categories":[""],"metadata":[{"key":"CLIENT-SIDE-DEV","value":"React"},{"key":"SPFX-VERSION","value":"1.8.2"}],"thumbnails":[{"type":"image","order":100,"url":"https://github.com/pnp/sp-dev-fx-webparts/raw/master/samples/react-multiscreen-webpart/assets/multi-screen-webpart.gif","alt":"Multi screen web part sample","slides":null}],"authors":[{"gitHubAccount":"VelinGeorgiev","company":"","pictureUrl":"https://github.com/VelinGeorgiev.png"}],"references":[]} \ No newline at end of file diff --git a/samples/react-my-groups/assets/sample.json b/samples/react-my-groups/assets/sample.json new file mode 100644 index 000000000..7fe4c789d --- /dev/null +++ b/samples/react-my-groups/assets/sample.json @@ -0,0 +1 @@ +{"name":"pnp-sp-dev-spfx-web-parts-react-my-groups","version":null,"source":"pnp","title":"My Groups","shortDescription":"Using Microsoft Graph, this web part grabs the Office 365 groups the current user is a member of with links to the groups SharePoint site.","longDescription":["Using Microsoft Graph, this web part grabs the Office 365 groups the current user is a member of with links to the groups SharePoint site."],"products":["SharePoint","Office"],"categories":[""],"metadata":[{"key":"CLIENT-SIDE-DEV","value":"React"},{"key":"SPFX-VERSION","value":"1.10.0"}],"thumbnails":[{"type":"image","order":100,"url":"https://github.com/pnp/sp-dev-fx-webparts/raw/master/samples/react-my-groups/assets/example.png","alt":"My Groups","slides":null}],"authors":[{"gitHubAccount":"zachroberts8668","company":"","pictureUrl":"https://github.com/zachroberts8668.png"}],"references":[]} \ No newline at end of file diff --git a/samples/react-my-personal-apps/assets/sample.json b/samples/react-my-personal-apps/assets/sample.json new file mode 100644 index 000000000..265aa6f3f --- /dev/null +++ b/samples/react-my-personal-apps/assets/sample.json @@ -0,0 +1 @@ +{"name":"pnp-sp-dev-spfx-web-parts-react-my-personal-apps","version":null,"source":"pnp","title":"My Personal Apps","shortDescription":"The Web Part My Personal Apps allows the user to define links to Applications or Sites for quick access.","longDescription":["The Web Part My Personal Apps allows the user to define links to Applications or Sites for quick access."],"products":["SharePoint","Office"],"categories":[""],"metadata":[{"key":"CLIENT-SIDE-DEV","value":"React"},{"key":"SPFX-VERSION","value":"1.10.0"}],"thumbnails":[{"type":"image","order":100,"url":"https://github.com/pnp/sp-dev-fx-webparts/raw/master/samples/react-my-personal-apps/assets/Image1.png","alt":"My Personal Apps","slides":null}],"authors":[{"gitHubAccount":"joaojmendes","company":"","pictureUrl":"https://github.com/joaojmendes.png"},{"gitHubAccount":"zachroberts8668","company":"","pictureUrl":"https://github.com/zachroberts8668.png"}],"references":[]} \ No newline at end of file diff --git a/samples/react-my-sites/assets/sample.json b/samples/react-my-sites/assets/sample.json new file mode 100644 index 000000000..f65c55cc8 --- /dev/null +++ b/samples/react-my-sites/assets/sample.json @@ -0,0 +1 @@ +{"name":"pnp-sp-dev-spfx-web-parts-react-my-sites","version":null,"source":"pnp","title":"My Sites","shortDescription":"This web part shows sites that user has permissions to access. It includes Office 365 Groups, OneDrive Sites, SharePoint Sites and App Sites created by SharePoint Add-ins.","longDescription":["This web part shows sites that user has permissions to access. It includes Office 365 Groups, OneDrive Sites, SharePoint Sites and App Sites created by SharePoint Add-ins."],"products":["SharePoint","Office"],"categories":[""],"metadata":[{"key":"CLIENT-SIDE-DEV","value":"React"},{"key":"SPFX-VERSION","value":"1.11.0"}],"thumbnails":[{"type":"image","order":100,"url":"https://github.com/pnp/sp-dev-fx-webparts/raw/master/samples/react-my-sites/assets/MySites.gif","alt":"My Sites","slides":null}],"authors":[{"gitHubAccount":"joaojmendes","company":"","pictureUrl":"https://github.com/joaojmendes.png"}],"references":[]} \ No newline at end of file diff --git a/samples/react-my-teams/assets/sample.json b/samples/react-my-teams/assets/sample.json new file mode 100644 index 000000000..a2c645c23 --- /dev/null +++ b/samples/react-my-teams/assets/sample.json @@ -0,0 +1 @@ +{"name":"pnp-sp-dev-spfx-web-parts-react-my-teams","version":null,"source":"pnp","title":"My Teams","shortDescription":"This sample uses Microsoft Graph to list the Teams the current user is a member of. When the user clicks on one of the teams, the web part retrieves information about the default channel (General) and opens it. The web part can be configured to open the team on the web browser or client app.","longDescription":["This sample uses Microsoft Graph to list the Teams the current user is a member of. When the user clicks on one of the teams, the web part retrieves information about the default channel (General) and opens it. The web part can be configured to open the team on the web browser or client app."],"products":["SharePoint","Office"],"categories":[""],"metadata":[{"key":"CLIENT-SIDE-DEV","value":"React"},{"key":"SPFX-VERSION","value":"1.7.1"}],"thumbnails":[{"type":"image","order":100,"url":"https://github.com/pnp/sp-dev-fx-webparts/raw/master/samples/react-my-teams/assets/Preview.png","alt":"My Teams","slides":null}],"authors":[{"gitHubAccount":"joelfmrodrigues","company":"","pictureUrl":"https://github.com/joelfmrodrigues.png"}],"references":[]} \ No newline at end of file diff --git a/samples/react-mytasks/assets/sample.json b/samples/react-mytasks/assets/sample.json new file mode 100644 index 000000000..4dee174db --- /dev/null +++ b/samples/react-mytasks/assets/sample.json @@ -0,0 +1 @@ +{"name":"pnp-sp-dev-spfx-web-parts-react-mytasks","version":null,"source":"pnp","title":"My Tasks Web Part","shortDescription":"This web part allows user to manage planner tasks in SharePoint Site. The UI was inspired on Planner UI, it is full implemented with Office-UI-Fabric Components. Use MSGraph API\u0027s and PnPjs to data access. The user can search task by name, can filter by progress status, all data are dynamic updated on change..","longDescription":["This web part allows user to manage planner tasks in SharePoint Site. The UI was inspired on Planner UI, it is full implemented with Office-UI-Fabric Components. Use MSGraph API\u0027s and PnPjs to data access. The user can search task by name, can filter by progress status, all data are dynamic updated on change.."],"products":["SharePoint","Office"],"categories":[""],"metadata":[{"key":"CLIENT-SIDE-DEV","value":"React"},{"key":"SPFX-VERSION","value":"1.11.0"}],"thumbnails":[{"type":"image","order":100,"url":"https://github.com/joaojmendes/sp-dev-fx-webparts/raw/My-Tasks/samples/react-mytasks/assets/MyTasks.gif","alt":"My Tasks Web Part","slides":null}],"authors":[{"gitHubAccount":"joaojmendes","company":"","pictureUrl":"https://github.com/joaojmendes.png"},{"gitHubAccount":"Swaminathan-Sriram","company":"","pictureUrl":"https://github.com/Swaminathan-Sriram.png"}],"references":[]} \ No newline at end of file diff --git a/samples/react-office-add-in-save-email-to-sharepoint/src/index.ts b/samples/react-office-add-in-save-email-to-sharepoint/src/index.ts deleted file mode 100644 index fb81db1e2..000000000 --- a/samples/react-office-add-in-save-email-to-sharepoint/src/index.ts +++ /dev/null @@ -1 +0,0 @@ -// A file is required to be in the root of the /src directory by the TypeScript compiler diff --git a/samples/react-office-add-in-save-email-to-sharepoint/src/webparts/saveEmailToSharePoint/loc/en-us.js b/samples/react-office-add-in-save-email-to-sharepoint/src/webparts/saveEmailToSharePoint/loc/en-us.js deleted file mode 100644 index 533ee1a34..000000000 --- a/samples/react-office-add-in-save-email-to-sharepoint/src/webparts/saveEmailToSharePoint/loc/en-us.js +++ /dev/null @@ -1,14 +0,0 @@ -define([], function () { - return { - "PropertyPaneDescription": "Description", - "BasicGroupName": "Group Name", - "DescriptionFieldLabel": "Description Field", - "SiteLabel": "Select a site", - "SitePlaceHolder": "Select a site", - "LibraryLabel": "Select a Library", - "LibraryPlaceHolder": "Select a Library", - "PreviewMessage":"The selected email is saved in the {libName} Library. Select 'OK' to preview the saved email.", - "Save": "Save", - "Cancel": "Cancel" - } -}); \ No newline at end of file diff --git a/samples/react-office-add-in-save-email-to-sharepoint/src/webparts/saveEmailToSharePoint/loc/mystrings.d.ts b/samples/react-office-add-in-save-email-to-sharepoint/src/webparts/saveEmailToSharePoint/loc/mystrings.d.ts deleted file mode 100644 index 46ff9f845..000000000 --- a/samples/react-office-add-in-save-email-to-sharepoint/src/webparts/saveEmailToSharePoint/loc/mystrings.d.ts +++ /dev/null @@ -1,17 +0,0 @@ -declare interface ISaveEmailToSharePointWebPartStrings { - PropertyPaneDescription: string; - BasicGroupName: string; - DescriptionFieldLabel: string; - SiteLabel:string; - SitePlaceHolder: string; - LibraryLabel: string; - LibraryPlaceHolder: string; - PreviewMessage: string; - Save: string; - Cancel: string; -} - -declare module 'SaveEmailToSharePointWebPartStrings' { - const strings: ISaveEmailToSharePointWebPartStrings; - export = strings; -} diff --git a/samples/react-office-add-in-save-email-to-sharepoint/teams/e6083c02-3280-4430-a877-22cbc6251d21_color.png b/samples/react-office-add-in-save-email-to-sharepoint/teams/e6083c02-3280-4430-a877-22cbc6251d21_color.png deleted file mode 100644 index a8d2797077f94518d1f84addd0afa2fea87a91db..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3023 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