├── .github ├── CONTRIBUTING.md ├── ISSUE_TEMPLATE.md ├── PULL_REQUEST_TEMPLATE.md └── workflows │ └── validate-sample.yml ├── .gitignore ├── Contributors.md ├── LICENSE ├── README.md ├── ThirdPartyNotices.txt └── solutions ├── ChangeRequests ├── .editorconfig ├── .gitattributes ├── .gitignore ├── .npmignore ├── .vscode │ ├── extensions.json │ ├── launch.json │ └── settings.json ├── .yo-rc.json ├── ChangeRequests.yml ├── README.md ├── assets │ ├── screenshot-teams.png │ └── screenshot.png ├── config │ ├── config.json │ ├── copy-assets.json │ ├── deploy-azure-storage.json │ ├── package-solution.json │ ├── serve.json │ └── write-manifests.json ├── gulpfile.js ├── package-lock.json ├── package.json ├── src │ ├── index.ts │ ├── libraries │ │ ├── dataProviders │ │ │ └── MockChangeRequestLists.ts │ │ ├── index.ts │ │ ├── models │ │ │ ├── ChangeRequestModel.ts │ │ │ └── EnsureListResult.ts │ │ ├── provisioning │ │ │ ├── Constants.ts │ │ │ └── ProvisionManager.ts │ │ └── solutions │ │ │ ├── EnsureListResult.ts │ │ │ └── SharePointUtility.ts │ ├── pnp-preset.ts │ └── webparts │ │ ├── changeRequestManagementWebPart │ │ ├── ChangeRequestManagementWebPart.manifest.json │ │ ├── ChangeRequestManagementWebPart.ts │ │ ├── IChangeRequestManagementWebPartProps.ts │ │ ├── components │ │ │ ├── Container │ │ │ │ ├── CRManagementContainer.module.scss │ │ │ │ ├── CRManagementContainer.tsx │ │ │ │ ├── ICRManagementContainerProps.ts │ │ │ │ └── ICRManagementContainerState.ts │ │ │ ├── List │ │ │ │ ├── CRManagementList.module.scss │ │ │ │ ├── CRManagementList.tsx │ │ │ │ └── ICRManagementListProps.ts │ │ │ ├── PublicSection │ │ │ │ ├── CRManagementPublicSection.module.scss │ │ │ │ ├── CRManagementPublicSection.tsx │ │ │ │ ├── ICRManagementPublicSectionProps.ts │ │ │ │ └── ICRManagementPublicSectionState.ts │ │ │ ├── Tab │ │ │ │ ├── CRManagementTab.module.scss │ │ │ │ ├── CRManagementTab.tsx │ │ │ │ └── ICRManagementTabProps.ts │ │ │ └── TeamSection │ │ │ │ ├── CRManagementTeamSection.module.scss │ │ │ │ ├── CRManagementTeamSection.tsx │ │ │ │ ├── ICRManagementTeamSectionProps.ts │ │ │ │ └── ICRManagementTeamSectionState.ts │ │ ├── dataProviders │ │ │ ├── CRManagementDataProvider.ts │ │ │ ├── ICRManagementDataProvider.ts │ │ │ └── MockCRManagementDataProvider.ts │ │ ├── loc │ │ │ ├── en-us.js │ │ │ └── mystrings.d.ts │ │ ├── models │ │ │ ├── CRMManagementOperationCallback.ts │ │ │ └── CRManagementModel.ts │ │ └── tests │ │ │ └── ChangeRequestManagementWebPart.test.ts │ │ └── myChangeRequestsWebPart │ │ ├── IMyChangeRequestsWebPartProps.ts │ │ ├── MyChangeRequestsWebPart.manifest.json │ │ ├── MyChangeRequestsWebPart.ts │ │ ├── components │ │ ├── Container │ │ │ ├── IMyCRContainerProps.ts │ │ │ ├── IMyCRContainerState.ts │ │ │ ├── MyCRContainer.module.scss │ │ │ └── MyCRContainer.tsx │ │ ├── HintDialog │ │ │ ├── IMyCRHintDialogProps.ts │ │ │ └── MyCRHintDialog.tsx │ │ ├── Item │ │ │ ├── IMyCRItemProps.ts │ │ │ ├── MyCRItem.module.scss │ │ │ └── MyCRItem.tsx │ │ ├── List │ │ │ ├── IMyCRListProps.ts │ │ │ ├── MyCRList.module.scss │ │ │ └── MyCRList.tsx │ │ ├── NewDialog │ │ │ ├── IMyCRNewDialogProps.ts │ │ │ ├── MyCRNewDialog.module.scss │ │ │ └── MyCRNewDialog.tsx │ │ └── NewForm │ │ │ ├── IMyCRNewFormProps.ts │ │ │ ├── IMyCRNewFormState.ts │ │ │ ├── MyCRNewForm.module.scss │ │ │ └── MyCRNewForm.tsx │ │ ├── dataProviders │ │ ├── IMyCRDataProvider.ts │ │ ├── MockMyCRDataProvider.ts │ │ └── MyCRDataProvider.ts │ │ ├── loc │ │ ├── en-us.js │ │ └── mystrings.d.ts │ │ ├── models │ │ ├── ItemOperationCallback.ts │ │ └── MyCRModel.ts │ │ └── tests │ │ └── MyChangeRequestsWebPart.test.ts ├── teams │ ├── c9db9295-9313-477a-80e4-b1727e700c40_color.png │ ├── c9db9295-9313-477a-80e4-b1727e700c40_outline.png │ ├── fc1fa611-07f5-4af4-b9eb-d59da23fec1f_color.png │ └── fc1fa611-07f5-4af4-b9eb-d59da23fec1f_outline.png ├── tsconfig.json └── tslint.json ├── ColumnFormatter ├── .editorconfig ├── .gitignore ├── .vscode │ ├── extensions.json │ ├── launch.json │ └── settings.json ├── .yo-rc.json ├── CHANGELOG.md ├── README.md ├── assets │ ├── ColumnFormattingChristmas.gif │ ├── column-formatter-1.1.0.0.sppkg │ └── column-formatter.sppkg ├── config │ ├── config.json │ ├── copy-assets.json │ ├── deploy-azure-storage.json │ ├── package-solution.json │ ├── serve.json │ ├── tslint.json │ └── write-manifests.json ├── docs │ ├── documentation │ │ ├── docs │ │ │ ├── about │ │ │ │ ├── index.md │ │ │ │ ├── license.md │ │ │ │ └── localization.md │ │ │ ├── assets │ │ │ │ ├── AddFullWidthColumn.png │ │ │ │ ├── AddToPage.png │ │ │ │ ├── AppCatalogDeploy.png │ │ │ │ ├── AppCatalogUpload.png │ │ │ │ ├── ApplyToList.png │ │ │ │ ├── ApplyToSiteColumn.png │ │ │ │ ├── ChooseATemplate.png │ │ │ │ ├── CodePane.png │ │ │ │ ├── CommandPalette.png │ │ │ │ ├── Customize.png │ │ │ │ ├── DataColumnType.png │ │ │ │ ├── ElementsTree.png │ │ │ │ ├── FileUpload.png │ │ │ │ ├── French.jpg │ │ │ │ ├── GeneratedImages.png │ │ │ │ ├── German.jpg │ │ │ │ ├── Intellisense.png │ │ │ │ ├── MiniMap.gif │ │ │ │ ├── PreviewPane.png │ │ │ │ ├── PropertyIndentGuides.png │ │ │ │ ├── PropertyLineNumbers.png │ │ │ │ ├── PropertyPane.png │ │ │ │ ├── PropertyTheme.png │ │ │ │ ├── SaveOptions.png │ │ │ │ ├── SaveToLibrary.png │ │ │ │ ├── SelectFullWidth.png │ │ │ │ ├── SideBySide.png │ │ │ │ ├── SubProperties.png │ │ │ │ ├── UpdateDeploy.png │ │ │ │ ├── UpdateReplaceSolution.png │ │ │ │ ├── WelcomeScreen.png │ │ │ │ ├── WizardActionLink.png │ │ │ │ ├── WizardCheckboxes.png │ │ │ │ ├── WizardCurrentUser.png │ │ │ │ ├── WizardDataBars.png │ │ │ │ ├── WizardDataBars_Range.gif │ │ │ │ ├── WizardDataBars_ValueDisplay.gif │ │ │ │ ├── WizardDonut.png │ │ │ │ ├── WizardDonut_Display.gif │ │ │ │ ├── WizardDonut_Range.gif │ │ │ │ ├── WizardDonut_ValueDisplay.gif │ │ │ │ ├── WizardFlow_SeeFlows.png │ │ │ │ ├── WizardMailTo.png │ │ │ │ ├── WizardNumberTrending.png │ │ │ │ ├── WizardOverdue.png │ │ │ │ ├── WizardOverdueTask.png │ │ │ │ ├── WizardRoundImage.png │ │ │ │ ├── WizardRoundImagePerson.png │ │ │ │ ├── WizardSeverity.png │ │ │ │ ├── WizardStartFlow.png │ │ │ │ ├── WizardStartFlow_GetId.png │ │ │ │ ├── WizardStartFlow_Options.gif │ │ │ │ ├── WizardTinyMap.png │ │ │ │ ├── WizardTwitterPic.png │ │ │ │ ├── WizardTwitterPic_Options.gif │ │ │ │ ├── icons │ │ │ │ │ ├── BarChartHorizontal.png │ │ │ │ │ ├── CheckboxComposite.png │ │ │ │ │ ├── DonutChart.png │ │ │ │ │ ├── Feedback.png │ │ │ │ │ ├── Flow.png │ │ │ │ │ ├── Info.png │ │ │ │ │ ├── Lightbulb.png │ │ │ │ │ ├── Mail.png │ │ │ │ │ ├── MapPin.png │ │ │ │ │ ├── ReminderPerson.png │ │ │ │ │ ├── RingerOff.png │ │ │ │ │ ├── Soccer.png │ │ │ │ │ ├── Sort.png │ │ │ │ │ ├── Warning.png │ │ │ │ │ └── iconRenderingSettings.png │ │ │ │ └── sharepoint.png │ │ │ ├── editor │ │ │ │ ├── code-editor.md │ │ │ │ ├── index.md │ │ │ │ ├── properties.md │ │ │ │ ├── sample-data.md │ │ │ │ ├── saving.md │ │ │ │ └── tree.md │ │ │ ├── getting-started.md │ │ │ ├── index.md │ │ │ ├── setup.md │ │ │ └── wizards │ │ │ │ ├── action-link.md │ │ │ │ ├── checkboxes.md │ │ │ │ ├── current-user.md │ │ │ │ ├── data-bars.md │ │ │ │ ├── donut.md │ │ │ │ ├── index.md │ │ │ │ ├── mail-to.md │ │ │ │ ├── number-trending.md │ │ │ │ ├── overdue-task.md │ │ │ │ ├── overdue.md │ │ │ │ ├── round-image.md │ │ │ │ ├── severity.md │ │ │ │ ├── start-flow.md │ │ │ │ ├── tiny-map.md │ │ │ │ └── twitter-pic.md │ │ └── mkdocs.yml │ └── projectguides │ │ ├── contributing.md │ │ ├── index.md │ │ ├── mpa.md │ │ └── submitting-pr.md ├── gulpfile.js ├── npm-shrinkwrap.json ├── package.json ├── sharepoint │ └── AppIcon.png ├── src │ ├── CustomFormatter │ │ ├── LocalCustomFormatter.module.scss │ │ ├── LocalCustomFormatter.ts │ │ ├── LocalFieldRendererFormat.ts │ │ ├── README.md │ │ ├── customformatter-MSFT-4df54baa.js │ │ └── customformatter-MSFT-795c4690.js │ ├── MonacoCustomBuild │ │ ├── index.js │ │ └── index.js.map │ └── webparts │ │ └── columnFormatter │ │ ├── ColumnFormatterWebPart.manifest.json │ │ ├── ColumnFormatterWebPart.ts │ │ ├── components │ │ ├── ColumnFormatter.module.scss │ │ ├── ColumnFormatter.tsx │ │ ├── ColumnFormatterEditor.tsx │ │ ├── ColumnFormatterEditorCommands.tsx │ │ ├── ColumnFormatterWelcome.tsx │ │ ├── FileUploader.tsx │ │ ├── Panels │ │ │ ├── Code │ │ │ │ ├── CodeEditor.tsx │ │ │ │ ├── ColumnFormatterCodePanel.tsx │ │ │ │ └── MonacoEditor.tsx │ │ │ ├── Data │ │ │ │ ├── ColumnFormatterDataPanel.tsx │ │ │ │ ├── DataColumnHeader.tsx │ │ │ │ ├── SampleData.tsx │ │ │ │ └── SampleValues │ │ │ │ │ ├── SampleBoolean.tsx │ │ │ │ │ ├── SampleDateTime.tsx │ │ │ │ │ ├── SampleLink.tsx │ │ │ │ │ ├── SampleLookup.tsx │ │ │ │ │ ├── SampleNumber.tsx │ │ │ │ │ ├── SamplePerson.tsx │ │ │ │ │ ├── SampleText.tsx │ │ │ │ │ └── SubPropsButton.tsx │ │ │ ├── Preview │ │ │ │ ├── ColumnFormatterPreviewPanel.tsx │ │ │ │ ├── PreviewHeader.tsx │ │ │ │ └── PreviewView.tsx │ │ │ ├── Tree │ │ │ │ └── ColumnFormatterTreePanel.tsx │ │ │ └── Wizard │ │ │ │ └── ColumnFormatterWizardPanel.tsx │ │ ├── Panes │ │ │ ├── ColumnFormatterPropertyPane.tsx │ │ │ └── ColumnFormatterViewPane.tsx │ │ └── Wizards │ │ │ ├── Controls │ │ │ ├── IconsDropdown.tsx │ │ │ ├── SpinButtonWithSuffix.tsx │ │ │ └── StandardColorsDropdown.tsx │ │ │ ├── WizardActionLink.ts │ │ │ ├── WizardCheckboxes.ts │ │ │ ├── WizardCommon.ts │ │ │ ├── WizardCurrentUser.ts │ │ │ ├── WizardDataBars.tsx │ │ │ ├── WizardDonut.tsx │ │ │ ├── WizardFlow.tsx │ │ │ ├── WizardMailTo.tsx │ │ │ ├── WizardMiniMap.ts │ │ │ ├── WizardNumberTrending.ts │ │ │ ├── WizardOverdue.ts │ │ │ ├── WizardOverdueStatus.ts │ │ │ ├── WizardRoundImage.ts │ │ │ ├── WizardSeverity.tsx │ │ │ └── WizardTwitter.tsx │ │ ├── helpers │ │ ├── ColumnFormattingSchema.ts │ │ ├── ColumnTypeHelpers.ts │ │ ├── DatePickerStrings.ts │ │ ├── Utilities.ts │ │ └── jsomLoader.ts │ │ ├── loc │ │ ├── de-de.js │ │ ├── en-us.js │ │ ├── fr-fr.js │ │ └── mystrings.d.ts │ │ └── state │ │ ├── Actions.ts │ │ ├── Reducers.ts │ │ ├── State.ts │ │ └── ValueGeneration.ts └── tsconfig.json ├── ContactManagement ├── .editorconfig ├── .gitattributes ├── .gitignore ├── .npmignore ├── .vscode │ ├── extensions.json │ ├── launch.json │ └── settings.json ├── .yo-rc.json ├── README.md ├── assets │ ├── contactmanagement-teams.png │ ├── contactmanagement.png │ └── contactmanagementform.png ├── config │ ├── config.json │ ├── copy-assets.json │ ├── deploy-azure-storage.json │ ├── package-solution.json │ ├── serve.json │ └── write-manifests.json ├── gulpfile.js ├── package-lock.json ├── package.json ├── sharepoint │ └── assets │ │ ├── elements.xml │ │ ├── organizationlistschema.xml │ │ └── upgradeactions.xml ├── src │ ├── biz │ │ ├── Constants.ts │ │ └── ProvisionManager.ts │ ├── data │ │ ├── Clause.ts │ │ ├── CrmManager.ts │ │ ├── FieldTypeKind.ts │ │ ├── IOrganization.ts │ │ ├── IPerson.ts │ │ ├── ISPField.ts │ │ ├── ISPList.ts │ │ ├── ISPUser.ts │ │ ├── ISPView.ts │ │ ├── ISharePointDataProvider.ts │ │ ├── ISharePointItem.ts │ │ ├── ITag.ts │ │ ├── Organization.ts │ │ ├── Person.ts │ │ ├── Query.ts │ │ ├── SPUrl.ts │ │ ├── SharePointItem.ts │ │ ├── SharePointUtility.ts │ │ ├── Tag.ts │ │ ├── View.ts │ │ └── ViewSet.ts │ ├── dataProviders │ │ ├── BaseCrmDataProvider.ts │ │ ├── DataError.ts │ │ ├── ICrmDataProvider.ts │ │ ├── IOrganizationSet.ts │ │ ├── ITagSet.ts │ │ ├── MockCrmDataProvider.ts │ │ ├── OrganizationSet.ts │ │ ├── OrganizationSetChange.ts │ │ ├── SharePointCrmDataProvider.ts │ │ ├── TagSet.ts │ │ ├── TagSetChange.ts │ │ └── mystrings.d.ts │ ├── index.ts │ ├── libraries │ │ └── solutions │ │ │ ├── EnsureListResult.ts │ │ │ └── SharePointUtility.ts │ ├── pnp-preset.ts │ ├── sharePointComponents │ │ ├── ClauseEditor.tsx │ │ ├── DropdownEx.tsx │ │ ├── FieldComponent.tsx │ │ ├── ItemChoiceFieldEditor.tsx │ │ ├── ItemComponent.tsx │ │ ├── ItemContext.ts │ │ ├── ItemDateFieldDisplay.tsx │ │ ├── ItemDateFieldEditor.tsx │ │ ├── ItemFieldIterator.tsx │ │ ├── ItemFieldLabel.tsx │ │ ├── ItemImageUrlFieldDisplay.tsx │ │ ├── ItemLookupFieldDisplay.tsx │ │ ├── ItemLookupFieldEditor.tsx │ │ ├── ItemMultiLookupFieldDisplay.tsx │ │ ├── ItemMultiLookupFieldEditor.tsx │ │ ├── ItemMultilineTextFieldEditor.tsx │ │ ├── ItemPeopleFieldDisplay.tsx │ │ ├── ItemPeopleFieldEditor.tsx │ │ ├── ItemRichTextFieldDisplay.tsx │ │ ├── ItemRichTextFieldEditor.tsx │ │ ├── ItemTextFieldDisplay.tsx │ │ ├── ItemTextFieldEditor.tsx │ │ ├── ItemUrlFieldDisplay.tsx │ │ ├── ItemUrlFieldEditor.tsx │ │ ├── ListContext.ts │ │ ├── QueryEditor.tsx │ │ ├── UrlFieldComponent.tsx │ │ ├── UserInterfaceUtility.tsx │ │ └── sharePointComponents.module.scss │ ├── utilities │ │ ├── CustomDialog.tsx │ │ ├── Debug.ts │ │ ├── DialogOptions.ts │ │ ├── DialogUtility.tsx │ │ ├── ElementUtilities.ts │ │ ├── Events.ts │ │ ├── UrlUtility.ts │ │ └── Utility.ts │ └── webparts │ │ └── crm │ │ ├── Crm.module.scss │ │ ├── CrmWebPart.manifest.json │ │ ├── CrmWebPart.ts │ │ ├── ICrmComponentProps.ts │ │ ├── ICrmWebPartProps.ts │ │ ├── ViewManagerPropertyPaneField.ts │ │ ├── components │ │ ├── Crm.tsx │ │ ├── Home.tsx │ │ ├── OrganizationDirectory.tsx │ │ ├── OrganizationDisplay.tsx │ │ ├── OrganizationEdit.tsx │ │ ├── OrganizationQuery.tsx │ │ ├── OrganizationTile.tsx │ │ ├── PartViewManager.tsx │ │ ├── PersonDirectory.tsx │ │ ├── PersonDisplay.tsx │ │ ├── PersonEdit.tsx │ │ ├── PersonMiniDisplay.tsx │ │ ├── PersonTile.tsx │ │ ├── SearchResults.tsx │ │ ├── ViewEditor.tsx │ │ └── tests │ │ │ └── Crm.test.ts │ │ └── loc │ │ └── en-us.js ├── teams │ ├── 098f096d-b64c-4b3c-9be0-ccb486bc9710_color.png │ └── 098f096d-b64c-4b3c-9be0-ccb486bc9710_outline.png ├── tests.js ├── tsconfig.json └── tslint.json ├── InstagramWebPart ├── .editorconfig ├── .gitignore ├── .vscode │ ├── extensions.json │ ├── launch.json │ └── settings.json ├── .yo-rc.json ├── README.md ├── assets │ └── InstagramWebPartIntroVideo.gif ├── config │ ├── config.json │ ├── copy-assets.json │ ├── deploy-azure-storage.json │ ├── package-solution.json │ ├── serve.json │ └── write-manifests.json ├── gulpfile.js ├── package-lock.json ├── package.json ├── src │ ├── index.ts │ └── webparts │ │ └── instagram │ │ ├── DataProvider.ts │ │ ├── IFeedResponse.ts │ │ ├── InstagramWebPart.manifest.json │ │ ├── InstagramWebPart.ts │ │ ├── components │ │ ├── IInstagramProps.ts │ │ ├── InstaList.tsx │ │ ├── Instagram.module.scss │ │ ├── Instagram.tsx │ │ ├── assets │ │ │ ├── icon.png │ │ │ ├── instagram-logo-80.png │ │ │ └── slick │ │ │ │ ├── ajax-loader.gif │ │ │ │ └── fonts │ │ │ │ ├── slick.eot │ │ │ │ ├── slick.svg │ │ │ │ ├── slick.ttf │ │ │ │ └── slick.woff │ │ ├── css │ │ │ ├── Carousel.module.scss │ │ │ ├── slick-theme.module.scss │ │ │ └── slick.module.scss │ │ ├── themeOverrides.module.scss │ │ └── themedFabric.Common.module.scss │ │ └── loc │ │ ├── en-us.js │ │ └── mystrings.d.ts ├── tsconfig.json └── tslint.json ├── InventoryCheckOut ├── .editorconfig ├── .gitattributes ├── .gitignore ├── .npmignore ├── .vscode │ ├── extensions.json │ └── launch.json ├── .yo-rc.json ├── README.md ├── assets │ ├── cross-country-skiing ski sets.png │ ├── inflatable water sports equipment.png │ ├── internal-frame-hiking.png │ ├── inventorycheckout.png │ ├── inventorycheckoutform.png │ ├── inventorycheckoutteams.png │ └── paddleboards.png ├── config │ ├── config.json │ ├── copy-assets.json │ ├── deploy-azure-storage.json │ ├── package-solution.json │ ├── serve.json │ └── write-manifests.json ├── gulpfile.js ├── package-lock.json ├── package.json ├── src │ ├── index.ts │ ├── libraries │ │ ├── index.ts │ │ └── solutions │ │ │ ├── EnsureListResult.ts │ │ │ └── SharePointUtility.ts │ ├── pnp-preset.ts │ └── webparts │ │ └── inventoryCheckOutWebPart │ │ ├── IInventoryCheckOutWebPartWebPartProps.ts │ │ ├── InventoryCheckOutWebPartWebPart.manifest.json │ │ ├── InventoryCheckOutWebPartWebPart.ts │ │ ├── components │ │ ├── CheckInDialog │ │ │ ├── CheckInDialog.module.scss │ │ │ ├── CheckInDialog.tsx │ │ │ ├── ICheckInDialogProps.ts │ │ │ └── ICheckInDialogState.ts │ │ ├── CheckOutList │ │ │ ├── CheckOutList.module.scss │ │ │ ├── CheckOutList.tsx │ │ │ └── ICheckOutListProps.ts │ │ ├── CheckOutListItem │ │ │ ├── CheckOutListItem.module.scss │ │ │ ├── CheckOutListItem.tsx │ │ │ └── ICheckOutListItemProps.ts │ │ ├── CheckOutNewDialog │ │ │ ├── CheckOutNewDialog.module.scss │ │ │ ├── CheckOutNewDialog.tsx │ │ │ ├── CheckOutNewDialogProp.ts │ │ │ └── CheckOutNewDialogState.ts │ │ ├── Container │ │ │ ├── CheckOutContainer.module.scss │ │ │ ├── CheckOutContainer.tsx │ │ │ ├── ICheckOutContainerProps.ts │ │ │ └── ICheckOutContainerState.ts │ │ ├── DeleteInvDialog │ │ │ ├── DeleteInvDialog.tsx │ │ │ └── DeleteInvDialogProps.ts │ │ ├── InvNewDialog │ │ │ ├── InvNewDialog.module.scss │ │ │ ├── InvNewDialog.tsx │ │ │ └── InvNewDialogProps.ts │ │ ├── InventoryItemCard │ │ │ ├── IInventoryItemCardProps.ts │ │ │ ├── InventoryItemCard.module.scss │ │ │ └── InventoryItemCard.tsx │ │ ├── InventoryList │ │ │ ├── IInventoryListProps.ts │ │ │ ├── InventoryList.module.scss │ │ │ └── InventoryList.tsx │ │ └── ItemDetail │ │ │ ├── IItemDetailProps.ts │ │ │ ├── ItemDetail.module.scss │ │ │ └── ItemDetail.tsx │ │ ├── dataProviders │ │ ├── IInventoryCheckOutDataProvider.ts │ │ ├── InventoryCheckOutDataProvider.ts │ │ ├── MockInventoryCheckOutDataProvider.ts │ │ └── MockInventoryCheckOutList.ts │ │ ├── loc │ │ ├── en-us.js │ │ └── mystrings.d.ts │ │ ├── models │ │ ├── InventoryCheckOutModel.ts │ │ └── ItemOperationCallback.ts │ │ ├── provisioning │ │ └── ProvisionManager.ts │ │ └── tests │ │ └── InventoryCheckOutWebPart.test.ts ├── teams │ ├── 5034eacb-edff-4372-b956-dd98bce7f6d6_color.png │ └── 5034eacb-edff-4372-b956-dd98bce7f6d6_outline.png ├── tsconfig.json └── tslint.json ├── LeadsLOBSolution ├── README.md ├── assets │ ├── messaging-extension.gif │ ├── personal-app-solution.png │ ├── teams-tab-solution.png │ └── webpart-solution.png ├── azure-function │ └── api.js ├── bot │ ├── .deployment │ ├── .env │ ├── .gitignore │ ├── .yo-rc.json │ ├── README-leadsBot.md │ ├── README.md │ ├── gulp.config.js │ ├── gulpfile.js │ ├── package-lock.json │ ├── package.json │ ├── src │ │ ├── app │ │ │ ├── TeamsAppsComponents.ts │ │ │ ├── leadsBot │ │ │ │ ├── LeadsBot.ts │ │ │ │ └── dialogs │ │ │ │ │ ├── HelpDialog.ts │ │ │ │ │ ├── WelcomeCard.json │ │ │ │ │ └── WelcomeDialog.ts │ │ │ ├── scripts │ │ │ │ └── client.ts │ │ │ ├── server.ts │ │ │ └── web │ │ │ │ ├── assets │ │ │ │ └── icon.png │ │ │ │ ├── index.html │ │ │ │ ├── privacy.html │ │ │ │ ├── styles │ │ │ │ └── main.scss │ │ │ │ └── tou.html │ │ └── manifest │ │ │ ├── icon-color.png │ │ │ ├── icon-outline.png │ │ │ └── manifest.json │ ├── tsconfig-client.json │ ├── tsconfig.json │ ├── tslint.json │ └── webpack.config.js └── webpart │ ├── .editorconfig │ ├── .gitignore │ ├── .vscode │ ├── extensions.json │ ├── launch.json │ └── settings.json │ ├── .yo-rc.json │ ├── config │ ├── config.json │ ├── copy-assets.json │ ├── deploy-azure-storage.json │ ├── package-solution.json │ ├── serve.json │ └── write-manifests.json │ ├── gulpfile.js │ ├── package-lock.json │ ├── package.json │ ├── src │ ├── Lead.ts │ ├── LeadsSettings.ts │ ├── SampleLeads.ts │ ├── index.ts │ └── webparts │ │ ├── leads │ │ ├── LeadsWebPart.manifest.json │ │ ├── LeadsWebPart.ts │ │ ├── components │ │ │ ├── ILeadsProps.ts │ │ │ ├── LeadCardActions │ │ │ │ ├── ILeadCardActionsProps.ts │ │ │ │ ├── LeadCardActions.module.scss │ │ │ │ ├── LeadCardActions.tsx │ │ │ │ └── index.ts │ │ │ ├── LeadCardPreview │ │ │ │ ├── ILeadCardPreviewProps.ts │ │ │ │ ├── LeadCardPreview.module.scss │ │ │ │ ├── LeadCardPreview.tsx │ │ │ │ └── index.ts │ │ │ ├── Leads │ │ │ │ ├── ILeadsProps.ts │ │ │ │ ├── ILeadsState.ts │ │ │ │ ├── LeadView.ts │ │ │ │ ├── Leads.module.scss │ │ │ │ ├── Leads.tsx │ │ │ │ └── index.ts │ │ │ └── index.ts │ │ └── loc │ │ │ ├── en-us.js │ │ │ └── mystrings.d.ts │ │ └── leadsSettings │ │ ├── LeadsSettingsWebPart.manifest.json │ │ ├── LeadsSettingsWebPart.ts │ │ ├── components │ │ └── LeadsSettings │ │ │ ├── ILeadsSettingsProps.ts │ │ │ ├── ILeadsSettingsState.ts │ │ │ ├── LeadsSettings.module.scss │ │ │ ├── LeadsSettings.tsx │ │ │ └── index.ts │ │ └── loc │ │ ├── en-us.js │ │ └── mystrings.d.ts │ ├── teams │ ├── LeadsManagement.zip │ ├── e81a1b68-686e-412f-90ac-cb80f2544398_color.png │ ├── e81a1b68-686e-412f-90ac-cb80f2544398_outline.png │ └── manifest.json │ ├── tsconfig.json │ └── tslint.json ├── LinksAndHandlebarsTemplate ├── .vscode │ └── settings.json ├── .yo-rc.json ├── README.md ├── assets │ ├── box_button.png │ ├── featured_content.png │ ├── featured_content_small_column.png │ ├── featured_content_stacked.png │ ├── hub_links_edit_item.png │ ├── hub_links_grouped.png │ ├── hub_links_icon.png │ ├── hub_links_list.png │ └── hub_template.png ├── config │ ├── config.json │ ├── copy-assets.json │ ├── deploy-azure-storage.json │ ├── package-solution.json │ ├── serve.json │ └── write-manifests.json ├── gulpfile.js ├── hub-web-parts.sppkg ├── package-lock.json ├── package.json ├── src │ ├── components │ │ ├── LinkPickerPanel │ │ │ ├── ApprovedImageLibs.config │ │ │ ├── ILinkPickerPanel.ts │ │ │ ├── ILinkPickerPanelProps.ts │ │ │ ├── ILinkPickerPanelState.ts │ │ │ ├── LinkPickerPanel.module.scss │ │ │ ├── LinkPickerPanel.tsx │ │ │ └── README.md │ │ ├── WebPartTitle │ │ │ ├── WebPartTitle.module.scss │ │ │ └── WebPartTitle.tsx │ │ └── loc │ │ │ └── en-us.ts │ ├── index.ts │ ├── propertyPane │ │ ├── PropertyFields.module.scss │ │ ├── PropertyPaneSearch │ │ │ ├── PropertyFieldSearch.ts │ │ │ └── PropertyFieldSearchHost.tsx │ │ ├── loc │ │ │ ├── en-us.js │ │ │ └── mystrings.d.ts │ │ ├── propertyFieldCamlQueryFieldMapping │ │ │ ├── PropertyFieldCamlQueryFieldMapping.ts │ │ │ └── PropertyFieldCamlQueryFieldMappingHost.tsx │ │ ├── propertyFieldGroupSort │ │ │ ├── PropertyFieldGroupSort.ts │ │ │ └── PropertyFieldGroupSortHost.tsx │ │ ├── propertyFieldImageSelector │ │ │ ├── PropertyFieldImageSelector.ts │ │ │ └── PropertyFieldImageSelectorHost.tsx │ │ └── propertyFieldRichText │ │ │ ├── ContentEditable.ts │ │ │ ├── PropertyFieldRichText.ts │ │ │ ├── PropertyFieldRichTextHost.tsx │ │ │ └── RichEditor.tsx │ ├── utilities │ │ ├── caml │ │ │ └── camljs.ts │ │ ├── element │ │ │ └── elemUtil.ts │ │ ├── urlparser │ │ │ └── queryStringParser.ts │ │ └── webpartlogger │ │ │ ├── CreateTenantAppProperty.ps1 │ │ │ ├── README.md │ │ │ └── usagelogger.ts │ └── webparts │ │ ├── boxButtonWebPart │ │ ├── BoxButtonWebPart.manifest.json │ │ ├── BoxButtonWebPart.ts │ │ ├── components │ │ │ ├── BoxButton.tsx │ │ │ └── BoxButtonWebPart.module.scss │ │ └── loc │ │ │ ├── en-us.js │ │ │ └── mystrings.d.ts │ │ ├── featuredContentWebPart │ │ ├── FeaturedContentWebPart.manifest.json │ │ ├── FeaturedContentWebPart.ts │ │ ├── assets │ │ │ ├── alt-stack.svg │ │ │ ├── stacked.svg │ │ │ ├── title-desc.svg │ │ │ └── title-only.svg │ │ ├── components │ │ │ ├── FeaturedContent.tsx │ │ │ ├── FeaturedContentWebPart.module.scss │ │ │ └── layouts │ │ │ │ ├── FeaturedContentFactory.ts │ │ │ │ ├── horizontalTitleDescription │ │ │ │ ├── AdvancedHorizontalTitleDescriptionLayout.tsx │ │ │ │ ├── BasicHorizontalTitleDescriptionLayout.tsx │ │ │ │ └── Styles.module.scss │ │ │ │ ├── horizontalTitleOnly │ │ │ │ ├── AdvancedHorizontalTitleOnlyLayout.tsx │ │ │ │ ├── BasicHorizontalTitleOnlyLayout.tsx │ │ │ │ └── Styles.module.scss │ │ │ │ ├── stacked │ │ │ │ ├── AdvancedStackedLayout.tsx │ │ │ │ ├── BasicStackedLayout.tsx │ │ │ │ └── Styles.module.scss │ │ │ │ └── stackedAlternating │ │ │ │ ├── AdvancedStackedAlternatingLayout.tsx │ │ │ │ ├── BasicStackedAlternatingLayout.tsx │ │ │ │ └── Styles.module.scss │ │ └── loc │ │ │ ├── en-us.js │ │ │ └── mystrings.d.ts │ │ ├── handlebarTemplateDisplay │ │ ├── HandlebarTemplateDisplayWebPart.manifest.json │ │ ├── HandlebarTemplateDisplayWebPart.ts │ │ ├── components │ │ │ ├── HandlebarTemplateDisplay.module.scss │ │ │ └── HandlebarTemplateDisplay.tsx │ │ └── loc │ │ │ ├── en-us.js │ │ │ └── mystrings.d.ts │ │ └── hubLinks │ │ ├── HubLinksWebPart.manifest.json │ │ ├── HubLinksWebPart.ts │ │ ├── components │ │ ├── HubLinks.module.scss │ │ ├── HubLinks.tsx │ │ ├── IHubLinksItem.ts │ │ └── layouts │ │ │ ├── GroupedListLayout │ │ │ ├── AdvancedGroupedListLayout.tsx │ │ │ ├── BasicGroupedListLayout.tsx │ │ │ └── Styles.module.scss │ │ │ ├── HubLinksFactory.ts │ │ │ ├── HubLinksLayout.ts │ │ │ ├── ListLayout │ │ │ ├── AdvancedListLayout.tsx │ │ │ ├── BasicListLayout.tsx │ │ │ └── Styles.module.scss │ │ │ ├── RoundIconItemLayout │ │ │ ├── AdvancedRoundIconItemLayout.tsx │ │ │ ├── BasicRoundIconItemLayout.tsx │ │ │ └── Styles.module.scss │ │ │ ├── SquareIconItemLayout │ │ │ ├── AdvancedSquareIconItemLayout.tsx │ │ │ ├── BasicSquareIconItemLayout.tsx │ │ │ └── Styles.module.scss │ │ │ └── TileLayout │ │ │ ├── AdvancedTileLayout.tsx │ │ │ ├── BasicTileLayout.tsx │ │ │ └── Styles.module.scss │ │ └── loc │ │ ├── en-us.js │ │ └── mystrings.d.ts ├── teams │ ├── 01c3854e-1d25-4325-8891-fbb4c5bfe1aa_color.png │ ├── 01c3854e-1d25-4325-8891-fbb4c5bfe1aa_outline.png │ ├── 4a8180df-c6b5-413e-a7cf-e5f4af80b1bf_color.png │ ├── 4a8180df-c6b5-413e-a7cf-e5f4af80b1bf_outline.png │ ├── 6e7296cf-4ba1-4c8e-8d21-41fe5f23900b_color.png │ ├── 6e7296cf-4ba1-4c8e-8d21-41fe5f23900b_outline.png │ ├── 925b8fdb-3c50-4035-b15e-1baf4c15e994_color.png │ └── 925b8fdb-3c50-4035-b15e-1baf4c15e994_outline.png ├── tsconfig.json └── tslint.json ├── MultilingualPages ├── Converter │ ├── .gitignore │ └── MultilingualPagesConverter │ │ ├── App.config │ │ ├── LogHelper.cs │ │ ├── Model.cs │ │ ├── MultilingualPagesConverter.csproj │ │ ├── MultilingualPagesConverter.sln │ │ ├── Program.cs │ │ ├── Properties │ │ └── AssemblyInfo.cs │ │ ├── locals.json │ │ └── packages.config ├── LanguageSettings.png ├── README.md └── SPFxExt │ ├── .editorconfig │ ├── .gitignore │ ├── .yo-rc.json │ ├── README.md │ ├── assets │ ├── ML_1.png │ ├── ML_10.png │ ├── ML_11.png │ ├── ML_12.png │ ├── ML_13.png │ ├── ML_14.png │ ├── ML_2.png │ ├── ML_3.png │ ├── ML_4.png │ ├── ML_5.png │ ├── ML_6.png │ ├── ML_7.png │ ├── ML_8.png │ └── ML_9.png │ ├── config │ ├── config.json │ ├── copy-assets.json │ ├── deploy-azure-storage.json │ ├── package-solution.json │ ├── serve.json │ └── write-manifests.json │ ├── deployment │ ├── LanguageConfigTenantProperty.ps1 │ └── languages.json │ ├── gulpfile.js │ ├── package-lock.json │ ├── package.json │ ├── sharepoint │ └── assets │ │ ├── clientsideinstance.xml │ │ └── elements.xml │ ├── src │ ├── common │ │ ├── components │ │ │ ├── LinkPickerPanel │ │ │ │ ├── ILinkPickerPanel.ts │ │ │ │ ├── ILinkPickerPanelProps.ts │ │ │ │ ├── ILinkPickerPanelState.ts │ │ │ │ ├── LinkPickerPanel.module.scss │ │ │ │ ├── LinkPickerPanel.tsx │ │ │ │ └── README.md │ │ │ └── loc │ │ │ │ └── en-us.ts │ │ ├── models │ │ │ └── Models.ts │ │ └── services │ │ │ └── utilities.ts │ ├── extensions │ │ └── multilingualExtension │ │ │ ├── MultilingualExtensionApplicationCustomizer.manifest.json │ │ │ ├── MultilingualExtensionApplicationCustomizer.ts │ │ │ ├── atom │ │ │ ├── LanguageSelector.tsx │ │ │ └── PageInformation.tsx │ │ │ ├── components │ │ │ ├── MultilingualButton.tsx │ │ │ ├── MultilingualContainer.tsx │ │ │ ├── MultilingualExt.tsx │ │ │ ├── MultilingualExtension.module.scss │ │ │ └── MultilingualPanel.tsx │ │ │ ├── loc │ │ │ ├── en-us.js │ │ │ └── myStrings.d.ts │ │ │ └── services │ │ │ ├── ConfigService.ts │ │ │ └── InitService.ts │ ├── index.ts │ └── webparts │ │ └── multilingualRedirector │ │ ├── MultilingualRedirectorWebPart.manifest.json │ │ ├── MultilingualRedirectorWebPart.ts │ │ ├── components │ │ ├── IMultilingualRedirectorProps.ts │ │ ├── MultilingualRedirector.module.scss │ │ ├── MultilingualRedirector.tsx │ │ ├── PropertyPaneRouteList.tsx │ │ └── RouteList.tsx │ │ ├── loc │ │ ├── en-us.js │ │ └── mystrings.d.ts │ │ └── services │ │ └── MutlilingualRedirectorService.ts │ ├── teams │ ├── manifest.json │ ├── tab20x20.png │ └── tab96x96.png │ ├── tools │ └── pre-version.js │ ├── tsconfig.json │ └── tslint.json ├── PagesAPISolution ├── .gitignore ├── Csharp │ ├── AccessToken.cs │ ├── MSGraphPagesAPI.csproj │ ├── MSGraphPagesAPI.sln │ ├── Program.cs │ ├── README.md │ ├── SitePage.cs │ └── SitePagesController.cs ├── NodeJS │ ├── .gitignore │ ├── .vscode │ │ ├── launch.json │ │ └── tasks.json │ ├── GraphController.ts │ ├── README.md │ ├── app.ts │ ├── logHelper.ts │ ├── package-lock.json │ ├── package.json │ └── tsconfig.json ├── PowerShell │ ├── Main.ps1 │ ├── PagesController.ps1 │ └── README.md ├── README.md ├── SPFX │ ├── .eslintrc.js │ ├── .gitignore │ ├── .npmignore │ ├── .yo-rc.json │ ├── README.md │ ├── assets │ │ ├── PagesAPIWebPart.gif │ │ ├── apiAccess.png │ │ └── approveAccess.png │ ├── config │ │ ├── config.json │ │ ├── deploy-azure-storage.json │ │ ├── package-solution.json │ │ ├── sass.json │ │ ├── serve.json │ │ └── write-manifests.json │ ├── gulpfile.js │ ├── package-lock.json │ ├── package.json │ ├── src │ │ ├── index.ts │ │ └── webparts │ │ │ └── pagesApiWebPart │ │ │ ├── PagesApiWebPartWebPart.manifest.json │ │ │ ├── PagesApiWebPartWebPart.ts │ │ │ ├── components │ │ │ ├── DropdownControlled.tsx │ │ │ ├── IPagesApiWebPartProps.ts │ │ │ ├── PagesApiWebPart.module.scss │ │ │ └── PagesApiWebPart.tsx │ │ │ └── loc │ │ │ ├── en-us.js │ │ │ └── mystrings.d.ts │ └── tsconfig.json └── assets │ ├── preview-scenario1.png │ ├── preview-scenario2.png │ ├── preview-scenario3.png │ ├── preview-scenario4.png │ └── sample.json ├── README-template.md ├── SiteDesignsStudio ├── .editorconfig ├── .gitignore ├── .vscode │ ├── extensions.json │ ├── launch.json │ └── settings.json ├── .yo-rc.json ├── README.md ├── config │ ├── config.json │ ├── copy-assets.json │ ├── deploy-azure-storage.json │ ├── package-solution.json │ ├── serve.json │ ├── tslint.json │ └── write-manifests.json ├── dev_assets │ └── schema_loc_resources.xlsx ├── docs │ └── assets │ │ ├── add-action.png │ │ ├── designs.png │ │ └── edit-sitedesign.png ├── gulpfile.js ├── package.json ├── package │ ├── install.ps1 │ ├── package.zip │ └── site-designs-studio.sppkg ├── schemas │ ├── schema.20180419.json │ ├── schema.20180602.json │ └── schema.20180805.json ├── src │ ├── MonacoCustomBuild │ │ └── index.js │ └── webparts │ │ └── siteDesignsStudio │ │ ├── AppStartup.ts │ │ ├── SiteDesignsStudioWebPart.manifest.json │ │ ├── SiteDesignsStudioWebPart.ts │ │ ├── components │ │ ├── ISiteDesignsStudioProps.ts │ │ ├── SiteDesignsStudio.module.scss │ │ ├── SiteDesignsStudio.tsx │ │ ├── confirmBox │ │ │ └── ConfirmBox.tsx │ │ ├── genericObjectEditor │ │ │ └── GenericObjectEditor.tsx │ │ ├── monacoEditor │ │ │ └── MonacoEditor.tsx │ │ ├── scriptActionAdder │ │ │ ├── ScriptActionAdder.module.scss │ │ │ └── ScriptActionAdder.tsx │ │ ├── scriptActionEditor │ │ │ ├── ScriptActionCollectionEditor.tsx │ │ │ ├── ScriptActionEditor.module.scss │ │ │ └── ScriptActionEditor.tsx │ │ ├── settings │ │ │ └── SchemaPropertyEditor.tsx │ │ ├── siteDesignEditor │ │ │ ├── SiteDesignEditor.module.scss │ │ │ └── SiteDesignEditor.tsx │ │ ├── siteDesignsManager │ │ │ └── SiteDesignsManager.tsx │ │ ├── siteScriptEditor │ │ │ └── SiteScriptEditor.tsx │ │ ├── siteScriptsManager │ │ │ └── SiteScriptsManager.tsx │ │ └── wizards │ │ │ ├── CreateListWizard.tsx │ │ │ ├── ScriptActionWizard.tsx │ │ │ ├── Wizards.module.scss │ │ │ └── inputFields │ │ │ ├── AppsInputField.tsx │ │ │ ├── HubSiteInputField.tsx │ │ │ ├── ListTemplateInputField.tsx │ │ │ └── ThemeInputField.tsx │ │ ├── loc │ │ ├── en-us.js │ │ └── mystrings.d.ts │ │ ├── models │ │ ├── IApp.ts │ │ ├── IHubSite.ts │ │ ├── IList.ts │ │ ├── ISiteDesign.ts │ │ ├── ISiteScript.ts │ │ ├── ISiteScriptActionUIWrapper.ts │ │ └── ITheme.ts │ │ ├── schema │ │ ├── schema.ts │ │ └── siteActionConstants.ts │ │ └── services │ │ ├── apps │ │ └── AppsService.ts │ │ ├── hubSites │ │ └── HubSitesService.ts │ │ ├── lists │ │ └── ListsService.ts │ │ ├── siteDesigns │ │ ├── MockSiteDesignsService.ts │ │ └── SiteDesignsService.ts │ │ ├── siteScriptSchema │ │ └── SiteScriptSchemaService.ts │ │ └── themes │ │ └── ThemesService.ts └── tsconfig.json ├── SolutionsLibrary ├── .editorconfig ├── .gitattributes ├── .gitignore ├── .npmignore ├── .yo-rc.json ├── README.md ├── config │ ├── serve.json │ └── tslint.json ├── gulpfile.js ├── package.json ├── src │ ├── index.ts │ └── solutions │ │ ├── EnsureListResult.ts │ │ └── SharePointUtility.ts └── tsconfig.json ├── TimeAway ├── .editorconfig ├── .gitattributes ├── .gitignore ├── .npmignore ├── .vscode │ ├── extensions.json │ ├── launch.json │ └── settings.json ├── .yo-rc.json ├── README.md ├── assets │ ├── timeaway-teams.png │ └── timeaway.png ├── config │ ├── config.json │ ├── copy-assets.json │ ├── deploy-azure-storage.json │ ├── package-solution.json │ ├── serve.json │ └── write-manifests.json ├── gulpfile.js ├── package-lock.json ├── package.json ├── sharepoint │ └── timeawayicon.png ├── src │ ├── index.ts │ ├── libraries │ │ ├── components │ │ │ ├── Container │ │ │ │ ├── IMyTimeAwayContainerProps.ts │ │ │ │ ├── IMyTimeAwayContainerState.ts │ │ │ │ ├── MyTimeAwayContainer.module.scss │ │ │ │ └── MyTimeAwayContainer.tsx │ │ │ ├── CreateDialog │ │ │ │ ├── ITimeAwayCreateDialogProp.ts │ │ │ │ ├── ITimeAwayCreateDialogState.ts │ │ │ │ ├── TimeAwayCreateDialog.module.scss │ │ │ │ └── TimeAwayCreateDialog.tsx │ │ │ ├── DeleteDialog │ │ │ │ ├── IMyTimeAwayDeleteDialogProps.ts │ │ │ │ ├── IMyTimeAwayDeleteDialogState.ts │ │ │ │ └── MyTimeAwayDeleteDialog.tsx │ │ │ ├── List │ │ │ │ ├── IMyTimeAwayListProps.ts │ │ │ │ ├── MyTimeAwayList.module.scss │ │ │ │ └── MyTimeAwayList.tsx │ │ │ ├── ListItem │ │ │ │ ├── IMyTimeAwayListItemProps.ts │ │ │ │ ├── IMyTimeAwayListItemState.ts │ │ │ │ └── MyTimeAwayListItem.tsx │ │ │ └── Tab │ │ │ │ ├── IMyTimeAwayTabProps.ts │ │ │ │ └── MyTimeAwayTab.tsx │ │ ├── dataProviders │ │ │ ├── IMyTimeAwayDataProvider.ts │ │ │ ├── MockDataProvider.ts │ │ │ ├── MockTimeAwayList.ts │ │ │ └── SharePointDataProvider.ts │ │ ├── index.ts │ │ ├── models │ │ │ ├── ItemOperationCallback.ts │ │ │ └── timeAwayModel.ts │ │ ├── provisioning │ │ │ ├── Constants.ts │ │ │ └── TimeAwayManager.ts │ │ └── solutions │ │ │ ├── EnsureListResult.ts │ │ │ └── SharePointUtility.ts │ ├── pnp-preset.ts │ └── webparts │ │ ├── myTimeAway │ │ ├── IMyTimeAwayWebPartProps.ts │ │ ├── MyTimeAwayWebPart.manifest.json │ │ ├── MyTimeAwayWebPart.ts │ │ ├── loc │ │ │ ├── en-us.js │ │ │ └── mystrings.d.ts │ │ └── tests │ │ │ └── MyTimeAway.test.ts │ │ └── timeAwaySummary │ │ ├── ITimeAwaySummaryWebPartProps.ts │ │ ├── TimeAwaySummaryWebPart.manifest.json │ │ ├── TimeAwaySummaryWebPart.ts │ │ ├── components │ │ ├── Container │ │ │ ├── ITimeAwaySummaryContainerProps.ts │ │ │ ├── TimeAwaySummaryContainer.module.scss │ │ │ └── TimeAwaySummaryContainer.tsx │ │ ├── day │ │ │ ├── ITimeAwaySummaryDayProps.ts │ │ │ ├── TimeAwaySummaryDay.module.scss │ │ │ └── TimeAwaySummaryDay.tsx │ │ ├── list │ │ │ ├── ITimeAwaySummaryListProps.ts │ │ │ ├── TimeAwaySummaryList.module.scss │ │ │ └── TimeAwaySummaryList.tsx │ │ └── week │ │ │ ├── ITimeAwaySummaryWeekProps.ts │ │ │ └── TimeAwaySummaryWeek.tsx │ │ ├── dataProviders │ │ ├── ITimeAwaySummaryDataProvider.ts │ │ ├── MockTimeAwaySummaryProvider.ts │ │ └── TimeAwaySummaryDataProvider.ts │ │ ├── loc │ │ ├── en-us.js │ │ └── mystrings.d.ts │ │ ├── models │ │ └── TimeAwaySummaryItem.ts │ │ └── tests │ │ └── TimeAwaySummary.test.ts ├── teams │ ├── 36fdabcd-20fd-4630-a536-80495dfcfc0b_color.png │ ├── 36fdabcd-20fd-4630-a536-80495dfcfc0b_outline.png │ ├── cc3ff58a-edf7-44ba-a47c-7daa593e1b93_color.png │ └── cc3ff58a-edf7-44ba-a47c-7daa593e1b93_outline.png ├── tsconfig.json └── tslint.json ├── flows-formatters-pages-siteScripts ├── BRK3080.pptx ├── README.md ├── custom-formatters │ ├── Announcements.json │ ├── Student.json │ ├── assignment-grades.json │ └── assignments.json ├── flow-definitions │ ├── assignment-flow-full-definition.json │ ├── assignment-grade-created-flow-full-definition.json │ ├── assignment-grade-created-unique-permissions-flow-full-definition.json │ ├── assignment-grade-updated-full-flow-definition.json │ ├── student-created-unique-permissions-flow-full-definition.json │ ├── student-flow-full-definition.json │ └── turn-it-in-flow-full-definition.json ├── images │ ├── homePage.PNG │ ├── studentPage.PNG │ ├── uber-flow-create-flow-action.PNG │ ├── uber-flow-get-flow-definition-content-action.PNG │ ├── uber-flow-getAllFlowDefinitions-action.PNG │ ├── uber-flow-on-http.PNG │ ├── uber-flow-sharepoint-connection-name.PNG │ ├── view-format-assignment-grades.PNG │ ├── view-format-assignments.PNG │ └── view-format-student.PNG ├── site-designs │ └── UberSiteDesign.json └── uber-flow-definition │ ├── _on-course-creation-full-definition.json │ └── uber-flow-definition.zip ├── global-footer ├── .editorconfig ├── .gitignore ├── .vscode │ ├── extensions.json │ ├── launch.json │ └── settings.json ├── .yo-rc.json ├── LICENSE ├── README.md ├── assets │ ├── app-catalog-site-contents-option.png │ ├── app-catalog-tenant-wide-extensions-option.png │ ├── global-footer-marketing.png │ ├── solution-trust-prompt.png │ ├── tenant-wide-extension-edit-item.png │ └── tenant-wide-extensions-edit-button.png ├── config │ ├── config.json │ ├── copy-assets.json │ ├── deploy-azure-storage.json │ ├── package-solution.json │ ├── serve.json │ └── write-manifests.json ├── gulpfile.js ├── package-lock.json ├── package.json ├── sharepoint │ ├── assets │ │ ├── ClientSideInstance.xml │ │ └── elements.xml │ └── solution │ │ └── spfx-global-footer.sppkg ├── src │ ├── extensions │ │ └── globalFooter │ │ │ ├── GlobalFooterApplicationCustomizer.manifest.json │ │ │ ├── GlobalFooterApplicationCustomizer.ts │ │ │ ├── Link.ts │ │ │ ├── components │ │ │ ├── GlobalFooter.module.scss │ │ │ ├── GlobalFooter.tsx │ │ │ ├── GlobalFooterProps.ts │ │ │ └── index.ts │ │ │ ├── index.ts │ │ │ └── loc │ │ │ ├── en-us.js │ │ │ └── myStrings.d.ts │ └── index.ts ├── tsconfig.json └── tslint.json └── sp2019-capabilities ├── .editorconfig ├── .gitignore ├── .vscode ├── extensions.json ├── launch.json └── settings.json ├── .yo-rc.json ├── README.md ├── assets ├── footer-marketing.png └── todo-basic-demo.gif ├── config ├── config.json ├── copy-assets.json ├── deploy-azure-storage.json ├── package-solution.json ├── serve.json └── write-manifests.json ├── gulpfile.js ├── package-lock.json ├── package.json ├── sharepoint └── assets │ ├── ClientSideInstance.xml │ └── elements.xml ├── src ├── extensions │ └── footer │ │ ├── FooterApplicationCustomizer.manifest.json │ │ ├── FooterApplicationCustomizer.ts │ │ ├── Link.ts │ │ ├── components │ │ ├── Footer.module.scss │ │ ├── Footer.tsx │ │ ├── FooterProps.ts │ │ └── index.ts │ │ ├── index.ts │ │ └── loc │ │ ├── en-us.js │ │ └── myStrings.d.ts ├── index.ts └── webparts │ └── sp2019ToDoWebPart │ ├── Sp2019ToDoWebPartWebPart.manifest.json │ ├── Sp2019ToDoWebPartWebPart.ts │ ├── components │ ├── ConfigurationView │ │ ├── ConfigurationView.module.scss │ │ ├── ConfigurationView.tsx │ │ ├── IConfigurationViewProps.ts │ │ └── IConfigurationViewState.ts │ ├── TodoContainer │ │ ├── ITodoContainerProps.ts │ │ ├── ITodoContainerState.ts │ │ ├── TodoContainer.module.scss │ │ └── TodoContainer.tsx │ ├── TodoForm │ │ ├── ITodoFormProps.ts │ │ ├── ITodoFormState.ts │ │ ├── TodoForm.module.scss │ │ └── TodoForm.tsx │ ├── TodoList │ │ ├── ITodoListProps.ts │ │ ├── TodoList.module.scss │ │ └── TodoList.tsx │ └── TodoListItem │ │ ├── ITodoListItemProps.ts │ │ ├── TodoListItem.module.scss │ │ └── TodoListItem.tsx │ ├── dataProviders │ ├── ITodoDataProvider.ts │ └── SharePointDataProvider.ts │ ├── loc │ ├── en-us.js │ └── mystrings.d.ts │ ├── models │ ├── ITodoItem.ts │ ├── ITodoTaskList.ts │ ├── ItemCreationCallback.ts │ └── ItemOperationCallback.ts │ └── tests │ ├── MockDataProvider.ts │ └── Todo.test.ts ├── tsconfig.json └── tslint.json /.github/workflows/validate-sample.yml: -------------------------------------------------------------------------------- 1 | name: Sample validation 2 | 3 | on: 4 | pull_request_target: 5 | branches: 6 | - "main" 7 | 8 | jobs: 9 | validate: 10 | runs-on: ubuntu-latest 11 | steps: 12 | - name: Validate 13 | uses: pnp/pnp-sample-validation@main 14 | with: 15 | gh-token: ${{ secrets.GITHUB_TOKEN }} 16 | -------------------------------------------------------------------------------- /Contributors.md: -------------------------------------------------------------------------------- 1 | ## Contributors ## 2 | 3 | Please have a look on the solution readme file for the details around contributors. Readme file for each of the solution can be found under the Solution specific folder in the solutions folder. -------------------------------------------------------------------------------- /solutions/ChangeRequests/.editorconfig: -------------------------------------------------------------------------------- 1 | # EditorConfig helps developers define and maintain consistent 2 | # coding styles between different editors and IDEs 3 | # editorconfig.org 4 | 5 | root = true 6 | 7 | 8 | [*] 9 | 10 | # change these settings to your own preference 11 | indent_style = space 12 | indent_size = 2 13 | 14 | # we recommend you to keep these unchanged 15 | end_of_line = lf 16 | charset = utf-8 17 | trim_trailing_whitespace = true 18 | insert_final_newline = true 19 | 20 | [*.md] 21 | trim_trailing_whitespace = false 22 | 23 | [{package,bower}.json] 24 | indent_style = space 25 | indent_size = 2 -------------------------------------------------------------------------------- /solutions/ChangeRequests/.gitattributes: -------------------------------------------------------------------------------- 1 | * text=auto -------------------------------------------------------------------------------- /solutions/ChangeRequests/.gitignore: -------------------------------------------------------------------------------- 1 | # Logs 2 | logs 3 | *.log 4 | npm-debug.log* 5 | 6 | # Dependency directories 7 | node_modules 8 | 9 | # Build generated files 10 | dist 11 | lib 12 | solution 13 | temp 14 | *.sppkg 15 | 16 | # Coverage directory used by tools like istanbul 17 | coverage 18 | 19 | # OSX 20 | .DS_Store 21 | 22 | # Visual Studio files 23 | .ntvs_analysis.dat 24 | .vs 25 | bin 26 | obj 27 | 28 | # Resx Generated Code 29 | *.resx.ts 30 | 31 | # Styles Generated Code 32 | *.scss.ts -------------------------------------------------------------------------------- /solutions/ChangeRequests/.npmignore: -------------------------------------------------------------------------------- 1 | # Folders 2 | .vscode 3 | coverage 4 | node_modules 5 | sharepoint 6 | src 7 | temp 8 | 9 | # Files 10 | *.csproj 11 | .git* 12 | .yo-rc.json 13 | gulpfile.js 14 | tsconfig.json 15 | -------------------------------------------------------------------------------- /solutions/ChangeRequests/.vscode/extensions.json: -------------------------------------------------------------------------------- 1 | { 2 | "recommendations": [ 3 | "msjsdiag.debugger-for-chrome" 4 | ] 5 | } -------------------------------------------------------------------------------- /solutions/ChangeRequests/.yo-rc.json: -------------------------------------------------------------------------------- 1 | { 2 | "@microsoft/generator-sharepoint": { 3 | "libraryName": "spca-change-requests", 4 | "version": "1.10.0", 5 | "libraryId": "9fcb6dd8-3a9b-4501-9e77-8a4ed3b914ea", 6 | "isDomainIsolated": false, 7 | "isCreatingSolution": true, 8 | "packageManager": "npm", 9 | "componentType": "webpart", 10 | "environment": "spo" 11 | } 12 | } -------------------------------------------------------------------------------- /solutions/ChangeRequests/assets/screenshot-teams.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnp/sp-dev-solutions/d3815add98c1b8641724e74fd97814276ed7a901/solutions/ChangeRequests/assets/screenshot-teams.png -------------------------------------------------------------------------------- /solutions/ChangeRequests/assets/screenshot.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnp/sp-dev-solutions/d3815add98c1b8641724e74fd97814276ed7a901/solutions/ChangeRequests/assets/screenshot.png -------------------------------------------------------------------------------- /solutions/ChangeRequests/config/copy-assets.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "https://developer.microsoft.com/json-schemas/spfx-build/copy-assets.schema.json", 3 | "deployCdnPath": "temp/deploy" 4 | } 5 | -------------------------------------------------------------------------------- /solutions/ChangeRequests/config/deploy-azure-storage.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "https://developer.microsoft.com/json-schemas/spfx-build/deploy-azure-storage.schema.json", 3 | "workingDir": "./temp/deploy/", 4 | "account": "", 5 | "container": "change-requests", 6 | "accessKey": "" 7 | } -------------------------------------------------------------------------------- /solutions/ChangeRequests/config/package-solution.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "https://developer.microsoft.com/json-schemas/spfx-build/package-solution.schema.json", 3 | "solution": { 4 | "name": "Change Request Management", 5 | "id": "9fcb6dd8-3a9b-4501-9e77-8a4ed3b914ea", 6 | "version": "1.0.14.0", 7 | "isDomainIsolated": false, 8 | "includeClientSideAssets": true, 9 | "skipFeatureDeployment": true 10 | }, 11 | "paths": { 12 | "zippedPackage": "solution/change-request-management.sppkg" 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /solutions/ChangeRequests/config/serve.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "https://developer.microsoft.com/json-schemas/core-build/serve.schema.json", 3 | "port": 4321, 4 | "initialPage": "https://localhost:5432/workbench", 5 | "https": true, 6 | "api": { 7 | "port": 5432, 8 | "entryPath": "node_modules/@microsoft/sp-webpart-workbench/lib/api/" 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /solutions/ChangeRequests/config/write-manifests.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "https://developer.microsoft.com/json-schemas/spfx-build/write-manifests.schema.json", 3 | "cdnBasePath": "" 4 | } -------------------------------------------------------------------------------- /solutions/ChangeRequests/gulpfile.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | const gulp = require('gulp'); 4 | const build = require('@microsoft/sp-build-web'); 5 | build.addSuppression(`Warning - [sass] The local CSS class 'ms-Grid' is not camelCase and will not be type-safe.`); 6 | 7 | build.initialize(gulp); 8 | -------------------------------------------------------------------------------- /solutions/ChangeRequests/src/index.ts: -------------------------------------------------------------------------------- 1 | // A file is required to be in the root of the /src directory by the TypeScript compiler 2 | 3 | -------------------------------------------------------------------------------- /solutions/ChangeRequests/src/libraries/index.ts: -------------------------------------------------------------------------------- 1 | export * from "./provisioning/ProvisionManager"; 2 | export * from "./models/ChangeRequestModel"; 3 | export * from "./provisioning/Constants"; 4 | export * from "./dataProviders/MockChangeRequestLists"; -------------------------------------------------------------------------------- /solutions/ChangeRequests/src/libraries/models/EnsureListResult.ts: -------------------------------------------------------------------------------- 1 | export class EnsureListResult { 2 | public constructor(init?: Partial) { 3 | if (init) { 4 | this.contentlistExists = init.contentlistExists || this.contentlistExists; 5 | this.hasPermission = init.hasPermission || this.hasPermission; 6 | this.message = init.message || this.message; 7 | } 8 | } 9 | public contentlistExists: boolean; 10 | public hasPermission: boolean; 11 | public message: string; 12 | } -------------------------------------------------------------------------------- /solutions/ChangeRequests/src/pnp-preset.ts: -------------------------------------------------------------------------------- 1 | // source: https://github.com/pnp/pnpjs/blob/version-2/samples/project-preset/src/pnp-preset.ts 2 | 3 | import { SPRest } from "@pnp/sp"; 4 | 5 | import "@pnp/sp/webs"; 6 | import "@pnp/sp/lists"; 7 | import "@pnp/sp/items"; 8 | import "@pnp/sp/fields"; 9 | import "@pnp/sp/site-users"; 10 | import "@pnp/sp/site-groups/web"; 11 | import "@pnp/sp/security/list"; 12 | 13 | export const sp = new SPRest(); -------------------------------------------------------------------------------- /solutions/ChangeRequests/src/webparts/changeRequestManagementWebPart/IChangeRequestManagementWebPartProps.ts: -------------------------------------------------------------------------------- 1 | export interface IChangeRequestManagementWebPartProps { 2 | } 3 | -------------------------------------------------------------------------------- /solutions/ChangeRequests/src/webparts/changeRequestManagementWebPart/components/Container/ICRManagementContainerProps.ts: -------------------------------------------------------------------------------- 1 | // Copyright (c) Microsoft Corporation. All rights reserved. 2 | // Licensed under the MIT license. 3 | 4 | import { IWebPartContext } from '@microsoft/sp-webpart-base'; 5 | import { ICRManagementDataProvider } from '../../dataProviders/ICRManagementDataProvider'; 6 | 7 | export interface ICRManagementContainerProps { 8 | context: IWebPartContext; 9 | isInitialized: boolean; 10 | displayMode: number; 11 | dataProvider: ICRManagementDataProvider; 12 | } -------------------------------------------------------------------------------- /solutions/ChangeRequests/src/webparts/changeRequestManagementWebPart/components/List/CRManagementList.module.scss: -------------------------------------------------------------------------------- 1 | .list{ 2 | > div > div:nth-child(1) > div > div{ 3 | margin-left: -12px; 4 | } 5 | } -------------------------------------------------------------------------------- /solutions/ChangeRequests/src/webparts/changeRequestManagementWebPart/components/PublicSection/CRManagementPublicSection.module.scss: -------------------------------------------------------------------------------- 1 | .crmanagementpublicsection { 2 | margin: 16px; 3 | padding: 0; 4 | 5 | .formHeader { 6 | padding-top:5px; 7 | } 8 | 9 | h2 { 10 | line-height: 1em; 11 | margin-top: 0px; 12 | padding-bottom: 20px; 13 | color: black; 14 | font-weight: bold; 15 | } 16 | } -------------------------------------------------------------------------------- /solutions/ChangeRequests/src/webparts/changeRequestManagementWebPart/components/PublicSection/ICRManagementPublicSectionProps.ts: -------------------------------------------------------------------------------- 1 | // Copyright (c) Microsoft Corporation. All rights reserved. 2 | // Licensed under the MIT license. 3 | 4 | import { IPerson, IMyChangeRequestItem } from '../../../../libraries/index'; 5 | 6 | export interface ICRManagementPublicSectionProps { 7 | selectedItem: IMyChangeRequestItem; 8 | itemChangeHandler: any; 9 | statusItems: string[]; 10 | allUsers: IPerson[]; 11 | } -------------------------------------------------------------------------------- /solutions/ChangeRequests/src/webparts/changeRequestManagementWebPart/components/PublicSection/ICRManagementPublicSectionState.ts: -------------------------------------------------------------------------------- 1 | // Copyright (c) Microsoft Corporation. All rights reserved. 2 | // Licensed under the MIT license. 3 | 4 | import { IPerson, IMyChangeRequestItem } from '../../../../libraries/index'; 5 | 6 | export interface ICRManagementPublicSectionState { 7 | item: IMyChangeRequestItem; 8 | allUsers: IPerson[]; 9 | } -------------------------------------------------------------------------------- /solutions/ChangeRequests/src/webparts/changeRequestManagementWebPart/components/Tab/CRManagementTab.module.scss: -------------------------------------------------------------------------------- 1 | .crmanagementtab{ 2 | width:100%; 3 | } 4 | -------------------------------------------------------------------------------- /solutions/ChangeRequests/src/webparts/changeRequestManagementWebPart/components/Tab/ICRManagementTabProps.ts: -------------------------------------------------------------------------------- 1 | // Copyright (c) Microsoft Corporation. All rights reserved. 2 | // Licensed under the MIT license. 3 | 4 | import { CRMTab } from '../../models/CRManagementModel'; 5 | import { ItemTabOperationCallback } from '../../models/CRMManagementOperationCallback'; 6 | 7 | export interface ICRManagementTabProps { 8 | selectedTab: CRMTab; 9 | tabOperationClickCallback: ItemTabOperationCallback; 10 | } 11 | 12 | export default ICRManagementTabProps; -------------------------------------------------------------------------------- /solutions/ChangeRequests/src/webparts/changeRequestManagementWebPart/components/TeamSection/ICRManagementTeamSectionProps.ts: -------------------------------------------------------------------------------- 1 | // Copyright (c) Microsoft Corporation. All rights reserved. 2 | // Licensed under the MIT license. 3 | 4 | import { IPerson, IChangeDiscussionItem } from '../../../../libraries/models/ChangeRequestModel'; 5 | 6 | export interface ICRManagementTeamSectionProps { 7 | selectedItem: IChangeDiscussionItem; 8 | isTriageTeamMember: boolean; 9 | itemChangeHandler: any; 10 | allTriageUser: IPerson[]; 11 | } -------------------------------------------------------------------------------- /solutions/ChangeRequests/src/webparts/changeRequestManagementWebPart/components/TeamSection/ICRManagementTeamSectionState.ts: -------------------------------------------------------------------------------- 1 | // Copyright (c) Microsoft Corporation. All rights reserved. 2 | // Licensed under the MIT license. 3 | 4 | import { IChangeDiscussionItem } from '../../../../libraries/models/ChangeRequestModel'; 5 | 6 | export interface ICRManagementTeamSectionState { 7 | item: IChangeDiscussionItem; 8 | } -------------------------------------------------------------------------------- /solutions/ChangeRequests/src/webparts/changeRequestManagementWebPart/loc/en-us.js: -------------------------------------------------------------------------------- 1 | define([], function() { 2 | return { 3 | "PropertyPaneDescription": "Description", 4 | "BasicGroupName": "Group Name", 5 | "DescriptionFieldLabel": "Description Field" 6 | } 7 | }); -------------------------------------------------------------------------------- /solutions/ChangeRequests/src/webparts/changeRequestManagementWebPart/loc/mystrings.d.ts: -------------------------------------------------------------------------------- 1 | declare interface IChangeRequestManagementWebPartStrings { 2 | PropertyPaneDescription: string; 3 | BasicGroupName: string; 4 | DescriptionFieldLabel: string; 5 | } 6 | 7 | declare module 'changeRequestManagementWebPartStrings' { 8 | const strings: IChangeRequestManagementWebPartStrings; 9 | export = strings; 10 | } 11 | -------------------------------------------------------------------------------- /solutions/ChangeRequests/src/webparts/changeRequestManagementWebPart/models/CRMManagementOperationCallback.ts: -------------------------------------------------------------------------------- 1 | // Copyright (c) Microsoft Corporation. All rights reserved. 2 | // Licensed under the MIT license. 3 | 4 | import { CRMTab } from './CRManagementModel'; 5 | 6 | export type ItemTabOperationCallback = (tab: CRMTab) => void; -------------------------------------------------------------------------------- /solutions/ChangeRequests/src/webparts/changeRequestManagementWebPart/models/CRManagementModel.ts: -------------------------------------------------------------------------------- 1 | // Copyright (c) Microsoft Corporation. All rights reserved. 2 | // Licensed under the MIT license. 3 | 4 | import { IMyChangeRequestItem, IChangeDiscussionItem } from '../../../libraries/index'; 5 | 6 | export enum CRMTab { 7 | ActiveIssues = 1, 8 | MyIssues, 9 | ClosedIssues 10 | } 11 | 12 | export interface IChangeRequestManagementItem { 13 | critem: IMyChangeRequestItem; 14 | cditem: IChangeDiscussionItem; 15 | } -------------------------------------------------------------------------------- /solutions/ChangeRequests/src/webparts/changeRequestManagementWebPart/tests/ChangeRequestManagementWebPart.test.ts: -------------------------------------------------------------------------------- 1 | /// 2 | 3 | import { assert } from 'chai'; 4 | 5 | describe('ChangeRequestManagementWebPart', () => { 6 | it('should do something', () => { 7 | assert.ok(true); 8 | }); 9 | }); 10 | -------------------------------------------------------------------------------- /solutions/ChangeRequests/src/webparts/myChangeRequestsWebPart/IMyChangeRequestsWebPartProps.ts: -------------------------------------------------------------------------------- 1 | export interface IMyChangeRequestsWebPartProps { 2 | newcrdisplays: string; 3 | newcrtext: string; 4 | newcrsubmissiontext: string; 5 | newcrbuttontext: string; 6 | } 7 | -------------------------------------------------------------------------------- /solutions/ChangeRequests/src/webparts/myChangeRequestsWebPart/components/Container/IMyCRContainerProps.ts: -------------------------------------------------------------------------------- 1 | import { IWebPartContext } from '@microsoft/sp-webpart-base'; 2 | import { IMyCRDataProvider } from '../../dataProviders/IMyCRDataProvider'; 3 | 4 | interface IMyCRContainerProps { 5 | context: IWebPartContext; 6 | dataProvider: IMyCRDataProvider; 7 | newcrdisplays: string; 8 | newcrtext: string; 9 | newcrsubmissiontext: string; 10 | newcrbuttontext: string; 11 | isInitialized: boolean; 12 | } 13 | export default IMyCRContainerProps; -------------------------------------------------------------------------------- /solutions/ChangeRequests/src/webparts/myChangeRequestsWebPart/components/Container/IMyCRContainerState.ts: -------------------------------------------------------------------------------- 1 | import { IMyChangeRequestItem } from '../../../../libraries/index'; 2 | import { NewCRDialogShowType } from '../../models/MyCRModel'; 3 | 4 | interface IMyCRContainerState { 5 | submitting?: boolean; 6 | hasAdminPermission?: boolean; 7 | newCRDialogShowType?: NewCRDialogShowType; 8 | isInitialized?: boolean; 9 | items?: IMyChangeRequestItem[]; 10 | } 11 | export default IMyCRContainerState; -------------------------------------------------------------------------------- /solutions/ChangeRequests/src/webparts/myChangeRequestsWebPart/components/Container/MyCRContainer.module.scss: -------------------------------------------------------------------------------- 1 | .mychangerequest{ 2 | margin: 0; 3 | .page{ 4 | .error{ 5 | color: red; 6 | } 7 | } 8 | .createnewchangerequestbt{ 9 | margin-bottom: 20px; 10 | float: right; 11 | } 12 | .primaryButtonArea 13 | { 14 | margin-top:18px; 15 | } 16 | } -------------------------------------------------------------------------------- /solutions/ChangeRequests/src/webparts/myChangeRequestsWebPart/components/HintDialog/IMyCRHintDialogProps.ts: -------------------------------------------------------------------------------- 1 | import { ItemOperationCallback } from '../../models/ItemOperationCallback'; 2 | interface IMyCRHintDialogProps { 3 | newcrsubmissiontext: string; 4 | isOpen: boolean; 5 | itemCloseOperationCallback: ItemOperationCallback; 6 | } 7 | export default IMyCRHintDialogProps; -------------------------------------------------------------------------------- /solutions/ChangeRequests/src/webparts/myChangeRequestsWebPart/components/Item/IMyCRItemProps.ts: -------------------------------------------------------------------------------- 1 | import { IMyChangeRequestItem } from '../../../../libraries/index'; 2 | import {ItemNormalOperationCallback} from '../../models/ItemOperationCallback'; 3 | 4 | interface IMyCRItemProps { 5 | item: IMyChangeRequestItem; 6 | itemEditIconClickCallback: ItemNormalOperationCallback; 7 | } 8 | export default IMyCRItemProps; -------------------------------------------------------------------------------- /solutions/ChangeRequests/src/webparts/myChangeRequestsWebPart/components/Item/MyCRItem.module.scss: -------------------------------------------------------------------------------- 1 | .mycrcontentgridrow{ 2 | margin: 0; 3 | padding-top: 0; 4 | 5 | .mycritemidcell{ 6 | padding-top:4px; 7 | padding-bottom:4px; 8 | } 9 | 10 | } -------------------------------------------------------------------------------- /solutions/ChangeRequests/src/webparts/myChangeRequestsWebPart/components/List/IMyCRListProps.ts: -------------------------------------------------------------------------------- 1 | import { IMyChangeRequestItem } from '../../../../libraries/index'; 2 | import {ItemNormalOperationCallback} from '../../models/ItemOperationCallback'; 3 | interface IMyCRListProps { 4 | items: IMyChangeRequestItem[]; 5 | itemEditIconClickCallback: ItemNormalOperationCallback; 6 | } 7 | export default IMyCRListProps; -------------------------------------------------------------------------------- /solutions/ChangeRequests/src/webparts/myChangeRequestsWebPart/components/NewDialog/MyCRNewDialog.module.scss: -------------------------------------------------------------------------------- 1 | 2 | @media screen and (min-width: 720px) { 3 | .mycrdialog{ 4 | margin: 0; 5 | min-width: 600px; 6 | max-width: 800px; 7 | } 8 | } 9 | 10 | @media screen and (max-width: 719px) { 11 | .mycrdialog{ 12 | margin: 0; 13 | min-width: 240px; 14 | max-width: 800px; 15 | } 16 | } 17 | 18 | -------------------------------------------------------------------------------- /solutions/ChangeRequests/src/webparts/myChangeRequestsWebPart/components/NewForm/IMyCRNewFormState.ts: -------------------------------------------------------------------------------- 1 | import { IMyChangeRequestItem } from '../../../../libraries/index'; 2 | 3 | interface IMyCRNewFormState { 4 | item?: IMyChangeRequestItem; 5 | isNewForm?: boolean; 6 | submitting?: boolean; 7 | errorMessage?: string; 8 | 9 | showHintDialog?: boolean; 10 | } 11 | export default IMyCRNewFormState; -------------------------------------------------------------------------------- /solutions/ChangeRequests/src/webparts/myChangeRequestsWebPart/components/NewForm/MyCRNewForm.module.scss: -------------------------------------------------------------------------------- 1 | .mycrnewform{ 2 | margin: 0; 3 | margin-left: -6px; 4 | .mycrdialogButtons{ 5 | float: right; 6 | margin: 20px 0; 7 | margin-right: 8px; 8 | >button:first-child{ 9 | margin-right: 8px; 10 | } 11 | } 12 | .title{ 13 | margin: 20px 0; 14 | } 15 | .boldtitle{ 16 | font-weight: bold; 17 | } 18 | .errorMessage{ 19 | color: red; 20 | } 21 | .mycrnewformcell{ 22 | padding-top: 3px; 23 | } 24 | } -------------------------------------------------------------------------------- /solutions/ChangeRequests/src/webparts/myChangeRequestsWebPart/dataProviders/IMyCRDataProvider.ts: -------------------------------------------------------------------------------- 1 | import { IMyChangeRequestItem } from '../../../libraries/index'; 2 | export interface IMyCRDataProvider { 3 | getMyChangeRequestItems(): Promise; 4 | createMyChangeRequestItem(title: IMyChangeRequestItem): Promise; 5 | updateMyChangeRequestItem(itemUpdated: IMyChangeRequestItem): Promise; 6 | } -------------------------------------------------------------------------------- /solutions/ChangeRequests/src/webparts/myChangeRequestsWebPart/loc/en-us.js: -------------------------------------------------------------------------------- 1 | define([], function() { 2 | return { 3 | "PropertyPaneDescription": "Description", 4 | "BasicGroupName": "Group Name", 5 | "DescriptionFieldLabel": "Description Field" 6 | } 7 | }); -------------------------------------------------------------------------------- /solutions/ChangeRequests/src/webparts/myChangeRequestsWebPart/loc/mystrings.d.ts: -------------------------------------------------------------------------------- 1 | declare interface IMyChangeRequestsWebPartStrings { 2 | PropertyPaneDescription: string; 3 | BasicGroupName: string; 4 | DescriptionFieldLabel: string; 5 | } 6 | 7 | declare module 'myChangeRequestsWebPartStrings' { 8 | const strings: IMyChangeRequestsWebPartStrings; 9 | export = strings; 10 | } 11 | -------------------------------------------------------------------------------- /solutions/ChangeRequests/src/webparts/myChangeRequestsWebPart/models/ItemOperationCallback.ts: -------------------------------------------------------------------------------- 1 | import { IMyChangeRequestItem} from '../../../libraries/index'; 2 | 3 | export type ItemSaveOperationCallback = (item: IMyChangeRequestItem) => Promise; 4 | export type ItemNormalOperationCallback = (item: IMyChangeRequestItem) => void; 5 | export type ItemOperationCallback = () => void; 6 | 7 | export type LoadingCallback = (open: boolean, message: string) => void; -------------------------------------------------------------------------------- /solutions/ChangeRequests/src/webparts/myChangeRequestsWebPart/models/MyCRModel.ts: -------------------------------------------------------------------------------- 1 | export enum NewCRDialogShowType { 2 | Closed = 0, 3 | Dialog 4 | } 5 | 6 | export enum NewCRDisplays { 7 | PopUp= 1, 8 | Inline 9 | } 10 | 11 | export enum NewCRFormShowIn { 12 | Dialog= 1, 13 | Inline 14 | } -------------------------------------------------------------------------------- /solutions/ChangeRequests/src/webparts/myChangeRequestsWebPart/tests/MyChangeRequestsWebPart.test.ts: -------------------------------------------------------------------------------- 1 | /// 2 | 3 | import { assert } from 'chai'; 4 | 5 | describe('MyChangeRequestsWebPart', () => { 6 | it('should do something', () => { 7 | assert.ok(true); 8 | }); 9 | }); 10 | -------------------------------------------------------------------------------- /solutions/ChangeRequests/teams/c9db9295-9313-477a-80e4-b1727e700c40_color.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnp/sp-dev-solutions/d3815add98c1b8641724e74fd97814276ed7a901/solutions/ChangeRequests/teams/c9db9295-9313-477a-80e4-b1727e700c40_color.png -------------------------------------------------------------------------------- /solutions/ChangeRequests/teams/c9db9295-9313-477a-80e4-b1727e700c40_outline.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnp/sp-dev-solutions/d3815add98c1b8641724e74fd97814276ed7a901/solutions/ChangeRequests/teams/c9db9295-9313-477a-80e4-b1727e700c40_outline.png -------------------------------------------------------------------------------- /solutions/ChangeRequests/teams/fc1fa611-07f5-4af4-b9eb-d59da23fec1f_color.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnp/sp-dev-solutions/d3815add98c1b8641724e74fd97814276ed7a901/solutions/ChangeRequests/teams/fc1fa611-07f5-4af4-b9eb-d59da23fec1f_color.png -------------------------------------------------------------------------------- /solutions/ChangeRequests/teams/fc1fa611-07f5-4af4-b9eb-d59da23fec1f_outline.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnp/sp-dev-solutions/d3815add98c1b8641724e74fd97814276ed7a901/solutions/ChangeRequests/teams/fc1fa611-07f5-4af4-b9eb-d59da23fec1f_outline.png -------------------------------------------------------------------------------- /solutions/ColumnFormatter/.gitignore: -------------------------------------------------------------------------------- 1 | # Logs 2 | logs 3 | *.log 4 | npm-debug.log* 5 | 6 | # Dependency directories 7 | node_modules 8 | 9 | # Build generated files 10 | dist 11 | lib 12 | solution 13 | temp 14 | *.sppkg 15 | 16 | # Coverage directory used by tools like istanbul 17 | coverage 18 | 19 | # OSX 20 | .DS_Store 21 | 22 | # Visual Studio files 23 | .ntvs_analysis.dat 24 | .vs 25 | bin 26 | obj 27 | 28 | # Resx Generated Code 29 | *.resx.ts 30 | 31 | # Styles Generated Code 32 | *.scss.ts 33 | -------------------------------------------------------------------------------- /solutions/ColumnFormatter/.vscode/extensions.json: -------------------------------------------------------------------------------- 1 | { 2 | "recommendations": [ 3 | "msjsdiag.debugger-for-chrome" 4 | ] 5 | } -------------------------------------------------------------------------------- /solutions/ColumnFormatter/.vscode/settings.json: -------------------------------------------------------------------------------- 1 | // Place your settings in this file to overwrite default and user settings. 2 | { 3 | // Configure glob patterns for excluding files and folders in the file explorer. 4 | "files.exclude": { 5 | "**/.git": true, 6 | "**/.DS_Store": true, 7 | "**/bower_components": true, 8 | "**/coverage": true, 9 | "**/lib-amd": true, 10 | "src/**/*.scss.ts": true 11 | }, 12 | "typescript.tsdk": ".\\node_modules\\typescript\\lib" 13 | } -------------------------------------------------------------------------------- /solutions/ColumnFormatter/.yo-rc.json: -------------------------------------------------------------------------------- 1 | { 2 | "@microsoft/generator-sharepoint": { 3 | "version": "1.4.1", 4 | "libraryName": "column-formatter", 5 | "libraryId": "f6303744-9308-4228-9465-a5c9ee30147c", 6 | "environment": "spo" 7 | } 8 | } -------------------------------------------------------------------------------- /solutions/ColumnFormatter/assets/ColumnFormattingChristmas.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnp/sp-dev-solutions/d3815add98c1b8641724e74fd97814276ed7a901/solutions/ColumnFormatter/assets/ColumnFormattingChristmas.gif -------------------------------------------------------------------------------- /solutions/ColumnFormatter/assets/column-formatter-1.1.0.0.sppkg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnp/sp-dev-solutions/d3815add98c1b8641724e74fd97814276ed7a901/solutions/ColumnFormatter/assets/column-formatter-1.1.0.0.sppkg -------------------------------------------------------------------------------- /solutions/ColumnFormatter/assets/column-formatter.sppkg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnp/sp-dev-solutions/d3815add98c1b8641724e74fd97814276ed7a901/solutions/ColumnFormatter/assets/column-formatter.sppkg -------------------------------------------------------------------------------- /solutions/ColumnFormatter/config/copy-assets.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "https://dev.office.com/json-schemas/spfx-build/copy-assets.schema.json", 3 | "deployCdnPath": "temp/deploy" 4 | } 5 | -------------------------------------------------------------------------------- /solutions/ColumnFormatter/config/deploy-azure-storage.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "https://dev.office.com/json-schemas/spfx-build/deploy-azure-storage.schema.json", 3 | "workingDir": "./temp/deploy/", 4 | "account": "", 5 | "container": "column-formatter", 6 | "accessKey": "" 7 | } -------------------------------------------------------------------------------- /solutions/ColumnFormatter/config/package-solution.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "https://dev.office.com/json-schemas/spfx-build/package-solution.schema.json", 3 | "solution": { 4 | "name": "Column Formatter", 5 | "id": "f6303744-9308-4228-9465-a5c9ee30147c", 6 | "version": "1.2.0.0", 7 | "includeClientSideAssets": true, 8 | "skipFeatureDeployment": true, 9 | "iconPath": "AppIcon.png" 10 | }, 11 | "paths": { 12 | "zippedPackage": "solution/column-formatter.sppkg" 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /solutions/ColumnFormatter/config/serve.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "https://dev.office.com/json-schemas/core-build/serve.schema.json", 3 | "port": 4321, 4 | "https": true, 5 | "initialPage": "https://localhost:5432/workbench", 6 | "api": { 7 | "port": 5432, 8 | "entryPath": "node_modules/@microsoft/sp-webpart-workbench/lib/api/" 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /solutions/ColumnFormatter/config/write-manifests.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "https://dev.office.com/json-schemas/spfx-build/write-manifests.schema.json", 3 | "cdnBasePath": "" 4 | } -------------------------------------------------------------------------------- /solutions/ColumnFormatter/docs/documentation/docs/assets/AddFullWidthColumn.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnp/sp-dev-solutions/d3815add98c1b8641724e74fd97814276ed7a901/solutions/ColumnFormatter/docs/documentation/docs/assets/AddFullWidthColumn.png -------------------------------------------------------------------------------- /solutions/ColumnFormatter/docs/documentation/docs/assets/AddToPage.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnp/sp-dev-solutions/d3815add98c1b8641724e74fd97814276ed7a901/solutions/ColumnFormatter/docs/documentation/docs/assets/AddToPage.png -------------------------------------------------------------------------------- /solutions/ColumnFormatter/docs/documentation/docs/assets/AppCatalogDeploy.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnp/sp-dev-solutions/d3815add98c1b8641724e74fd97814276ed7a901/solutions/ColumnFormatter/docs/documentation/docs/assets/AppCatalogDeploy.png -------------------------------------------------------------------------------- /solutions/ColumnFormatter/docs/documentation/docs/assets/AppCatalogUpload.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnp/sp-dev-solutions/d3815add98c1b8641724e74fd97814276ed7a901/solutions/ColumnFormatter/docs/documentation/docs/assets/AppCatalogUpload.png -------------------------------------------------------------------------------- /solutions/ColumnFormatter/docs/documentation/docs/assets/ApplyToList.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnp/sp-dev-solutions/d3815add98c1b8641724e74fd97814276ed7a901/solutions/ColumnFormatter/docs/documentation/docs/assets/ApplyToList.png -------------------------------------------------------------------------------- /solutions/ColumnFormatter/docs/documentation/docs/assets/ApplyToSiteColumn.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnp/sp-dev-solutions/d3815add98c1b8641724e74fd97814276ed7a901/solutions/ColumnFormatter/docs/documentation/docs/assets/ApplyToSiteColumn.png -------------------------------------------------------------------------------- /solutions/ColumnFormatter/docs/documentation/docs/assets/ChooseATemplate.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnp/sp-dev-solutions/d3815add98c1b8641724e74fd97814276ed7a901/solutions/ColumnFormatter/docs/documentation/docs/assets/ChooseATemplate.png -------------------------------------------------------------------------------- /solutions/ColumnFormatter/docs/documentation/docs/assets/CodePane.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnp/sp-dev-solutions/d3815add98c1b8641724e74fd97814276ed7a901/solutions/ColumnFormatter/docs/documentation/docs/assets/CodePane.png -------------------------------------------------------------------------------- /solutions/ColumnFormatter/docs/documentation/docs/assets/CommandPalette.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnp/sp-dev-solutions/d3815add98c1b8641724e74fd97814276ed7a901/solutions/ColumnFormatter/docs/documentation/docs/assets/CommandPalette.png -------------------------------------------------------------------------------- /solutions/ColumnFormatter/docs/documentation/docs/assets/Customize.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnp/sp-dev-solutions/d3815add98c1b8641724e74fd97814276ed7a901/solutions/ColumnFormatter/docs/documentation/docs/assets/Customize.png -------------------------------------------------------------------------------- /solutions/ColumnFormatter/docs/documentation/docs/assets/DataColumnType.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnp/sp-dev-solutions/d3815add98c1b8641724e74fd97814276ed7a901/solutions/ColumnFormatter/docs/documentation/docs/assets/DataColumnType.png -------------------------------------------------------------------------------- /solutions/ColumnFormatter/docs/documentation/docs/assets/ElementsTree.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnp/sp-dev-solutions/d3815add98c1b8641724e74fd97814276ed7a901/solutions/ColumnFormatter/docs/documentation/docs/assets/ElementsTree.png -------------------------------------------------------------------------------- /solutions/ColumnFormatter/docs/documentation/docs/assets/FileUpload.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnp/sp-dev-solutions/d3815add98c1b8641724e74fd97814276ed7a901/solutions/ColumnFormatter/docs/documentation/docs/assets/FileUpload.png -------------------------------------------------------------------------------- /solutions/ColumnFormatter/docs/documentation/docs/assets/French.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnp/sp-dev-solutions/d3815add98c1b8641724e74fd97814276ed7a901/solutions/ColumnFormatter/docs/documentation/docs/assets/French.jpg -------------------------------------------------------------------------------- /solutions/ColumnFormatter/docs/documentation/docs/assets/GeneratedImages.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnp/sp-dev-solutions/d3815add98c1b8641724e74fd97814276ed7a901/solutions/ColumnFormatter/docs/documentation/docs/assets/GeneratedImages.png -------------------------------------------------------------------------------- /solutions/ColumnFormatter/docs/documentation/docs/assets/German.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnp/sp-dev-solutions/d3815add98c1b8641724e74fd97814276ed7a901/solutions/ColumnFormatter/docs/documentation/docs/assets/German.jpg -------------------------------------------------------------------------------- /solutions/ColumnFormatter/docs/documentation/docs/assets/Intellisense.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnp/sp-dev-solutions/d3815add98c1b8641724e74fd97814276ed7a901/solutions/ColumnFormatter/docs/documentation/docs/assets/Intellisense.png -------------------------------------------------------------------------------- /solutions/ColumnFormatter/docs/documentation/docs/assets/MiniMap.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnp/sp-dev-solutions/d3815add98c1b8641724e74fd97814276ed7a901/solutions/ColumnFormatter/docs/documentation/docs/assets/MiniMap.gif -------------------------------------------------------------------------------- /solutions/ColumnFormatter/docs/documentation/docs/assets/PreviewPane.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnp/sp-dev-solutions/d3815add98c1b8641724e74fd97814276ed7a901/solutions/ColumnFormatter/docs/documentation/docs/assets/PreviewPane.png -------------------------------------------------------------------------------- /solutions/ColumnFormatter/docs/documentation/docs/assets/PropertyIndentGuides.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnp/sp-dev-solutions/d3815add98c1b8641724e74fd97814276ed7a901/solutions/ColumnFormatter/docs/documentation/docs/assets/PropertyIndentGuides.png -------------------------------------------------------------------------------- /solutions/ColumnFormatter/docs/documentation/docs/assets/PropertyLineNumbers.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnp/sp-dev-solutions/d3815add98c1b8641724e74fd97814276ed7a901/solutions/ColumnFormatter/docs/documentation/docs/assets/PropertyLineNumbers.png -------------------------------------------------------------------------------- /solutions/ColumnFormatter/docs/documentation/docs/assets/PropertyPane.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnp/sp-dev-solutions/d3815add98c1b8641724e74fd97814276ed7a901/solutions/ColumnFormatter/docs/documentation/docs/assets/PropertyPane.png -------------------------------------------------------------------------------- /solutions/ColumnFormatter/docs/documentation/docs/assets/PropertyTheme.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnp/sp-dev-solutions/d3815add98c1b8641724e74fd97814276ed7a901/solutions/ColumnFormatter/docs/documentation/docs/assets/PropertyTheme.png -------------------------------------------------------------------------------- /solutions/ColumnFormatter/docs/documentation/docs/assets/SaveOptions.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnp/sp-dev-solutions/d3815add98c1b8641724e74fd97814276ed7a901/solutions/ColumnFormatter/docs/documentation/docs/assets/SaveOptions.png -------------------------------------------------------------------------------- /solutions/ColumnFormatter/docs/documentation/docs/assets/SaveToLibrary.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnp/sp-dev-solutions/d3815add98c1b8641724e74fd97814276ed7a901/solutions/ColumnFormatter/docs/documentation/docs/assets/SaveToLibrary.png -------------------------------------------------------------------------------- /solutions/ColumnFormatter/docs/documentation/docs/assets/SelectFullWidth.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnp/sp-dev-solutions/d3815add98c1b8641724e74fd97814276ed7a901/solutions/ColumnFormatter/docs/documentation/docs/assets/SelectFullWidth.png -------------------------------------------------------------------------------- /solutions/ColumnFormatter/docs/documentation/docs/assets/SideBySide.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnp/sp-dev-solutions/d3815add98c1b8641724e74fd97814276ed7a901/solutions/ColumnFormatter/docs/documentation/docs/assets/SideBySide.png -------------------------------------------------------------------------------- /solutions/ColumnFormatter/docs/documentation/docs/assets/SubProperties.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnp/sp-dev-solutions/d3815add98c1b8641724e74fd97814276ed7a901/solutions/ColumnFormatter/docs/documentation/docs/assets/SubProperties.png -------------------------------------------------------------------------------- /solutions/ColumnFormatter/docs/documentation/docs/assets/UpdateDeploy.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnp/sp-dev-solutions/d3815add98c1b8641724e74fd97814276ed7a901/solutions/ColumnFormatter/docs/documentation/docs/assets/UpdateDeploy.png -------------------------------------------------------------------------------- /solutions/ColumnFormatter/docs/documentation/docs/assets/UpdateReplaceSolution.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnp/sp-dev-solutions/d3815add98c1b8641724e74fd97814276ed7a901/solutions/ColumnFormatter/docs/documentation/docs/assets/UpdateReplaceSolution.png -------------------------------------------------------------------------------- /solutions/ColumnFormatter/docs/documentation/docs/assets/WelcomeScreen.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnp/sp-dev-solutions/d3815add98c1b8641724e74fd97814276ed7a901/solutions/ColumnFormatter/docs/documentation/docs/assets/WelcomeScreen.png -------------------------------------------------------------------------------- /solutions/ColumnFormatter/docs/documentation/docs/assets/WizardActionLink.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnp/sp-dev-solutions/d3815add98c1b8641724e74fd97814276ed7a901/solutions/ColumnFormatter/docs/documentation/docs/assets/WizardActionLink.png -------------------------------------------------------------------------------- /solutions/ColumnFormatter/docs/documentation/docs/assets/WizardCheckboxes.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnp/sp-dev-solutions/d3815add98c1b8641724e74fd97814276ed7a901/solutions/ColumnFormatter/docs/documentation/docs/assets/WizardCheckboxes.png -------------------------------------------------------------------------------- /solutions/ColumnFormatter/docs/documentation/docs/assets/WizardCurrentUser.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnp/sp-dev-solutions/d3815add98c1b8641724e74fd97814276ed7a901/solutions/ColumnFormatter/docs/documentation/docs/assets/WizardCurrentUser.png -------------------------------------------------------------------------------- /solutions/ColumnFormatter/docs/documentation/docs/assets/WizardDataBars.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnp/sp-dev-solutions/d3815add98c1b8641724e74fd97814276ed7a901/solutions/ColumnFormatter/docs/documentation/docs/assets/WizardDataBars.png -------------------------------------------------------------------------------- /solutions/ColumnFormatter/docs/documentation/docs/assets/WizardDataBars_Range.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnp/sp-dev-solutions/d3815add98c1b8641724e74fd97814276ed7a901/solutions/ColumnFormatter/docs/documentation/docs/assets/WizardDataBars_Range.gif -------------------------------------------------------------------------------- /solutions/ColumnFormatter/docs/documentation/docs/assets/WizardDataBars_ValueDisplay.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnp/sp-dev-solutions/d3815add98c1b8641724e74fd97814276ed7a901/solutions/ColumnFormatter/docs/documentation/docs/assets/WizardDataBars_ValueDisplay.gif -------------------------------------------------------------------------------- /solutions/ColumnFormatter/docs/documentation/docs/assets/WizardDonut.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnp/sp-dev-solutions/d3815add98c1b8641724e74fd97814276ed7a901/solutions/ColumnFormatter/docs/documentation/docs/assets/WizardDonut.png -------------------------------------------------------------------------------- /solutions/ColumnFormatter/docs/documentation/docs/assets/WizardDonut_Display.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnp/sp-dev-solutions/d3815add98c1b8641724e74fd97814276ed7a901/solutions/ColumnFormatter/docs/documentation/docs/assets/WizardDonut_Display.gif -------------------------------------------------------------------------------- /solutions/ColumnFormatter/docs/documentation/docs/assets/WizardDonut_Range.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnp/sp-dev-solutions/d3815add98c1b8641724e74fd97814276ed7a901/solutions/ColumnFormatter/docs/documentation/docs/assets/WizardDonut_Range.gif -------------------------------------------------------------------------------- /solutions/ColumnFormatter/docs/documentation/docs/assets/WizardDonut_ValueDisplay.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnp/sp-dev-solutions/d3815add98c1b8641724e74fd97814276ed7a901/solutions/ColumnFormatter/docs/documentation/docs/assets/WizardDonut_ValueDisplay.gif -------------------------------------------------------------------------------- /solutions/ColumnFormatter/docs/documentation/docs/assets/WizardFlow_SeeFlows.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnp/sp-dev-solutions/d3815add98c1b8641724e74fd97814276ed7a901/solutions/ColumnFormatter/docs/documentation/docs/assets/WizardFlow_SeeFlows.png -------------------------------------------------------------------------------- /solutions/ColumnFormatter/docs/documentation/docs/assets/WizardMailTo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnp/sp-dev-solutions/d3815add98c1b8641724e74fd97814276ed7a901/solutions/ColumnFormatter/docs/documentation/docs/assets/WizardMailTo.png -------------------------------------------------------------------------------- /solutions/ColumnFormatter/docs/documentation/docs/assets/WizardNumberTrending.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnp/sp-dev-solutions/d3815add98c1b8641724e74fd97814276ed7a901/solutions/ColumnFormatter/docs/documentation/docs/assets/WizardNumberTrending.png -------------------------------------------------------------------------------- /solutions/ColumnFormatter/docs/documentation/docs/assets/WizardOverdue.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnp/sp-dev-solutions/d3815add98c1b8641724e74fd97814276ed7a901/solutions/ColumnFormatter/docs/documentation/docs/assets/WizardOverdue.png -------------------------------------------------------------------------------- /solutions/ColumnFormatter/docs/documentation/docs/assets/WizardOverdueTask.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnp/sp-dev-solutions/d3815add98c1b8641724e74fd97814276ed7a901/solutions/ColumnFormatter/docs/documentation/docs/assets/WizardOverdueTask.png -------------------------------------------------------------------------------- /solutions/ColumnFormatter/docs/documentation/docs/assets/WizardRoundImage.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnp/sp-dev-solutions/d3815add98c1b8641724e74fd97814276ed7a901/solutions/ColumnFormatter/docs/documentation/docs/assets/WizardRoundImage.png -------------------------------------------------------------------------------- /solutions/ColumnFormatter/docs/documentation/docs/assets/WizardRoundImagePerson.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnp/sp-dev-solutions/d3815add98c1b8641724e74fd97814276ed7a901/solutions/ColumnFormatter/docs/documentation/docs/assets/WizardRoundImagePerson.png -------------------------------------------------------------------------------- /solutions/ColumnFormatter/docs/documentation/docs/assets/WizardSeverity.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnp/sp-dev-solutions/d3815add98c1b8641724e74fd97814276ed7a901/solutions/ColumnFormatter/docs/documentation/docs/assets/WizardSeverity.png -------------------------------------------------------------------------------- /solutions/ColumnFormatter/docs/documentation/docs/assets/WizardStartFlow.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnp/sp-dev-solutions/d3815add98c1b8641724e74fd97814276ed7a901/solutions/ColumnFormatter/docs/documentation/docs/assets/WizardStartFlow.png -------------------------------------------------------------------------------- /solutions/ColumnFormatter/docs/documentation/docs/assets/WizardStartFlow_GetId.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnp/sp-dev-solutions/d3815add98c1b8641724e74fd97814276ed7a901/solutions/ColumnFormatter/docs/documentation/docs/assets/WizardStartFlow_GetId.png -------------------------------------------------------------------------------- /solutions/ColumnFormatter/docs/documentation/docs/assets/WizardStartFlow_Options.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnp/sp-dev-solutions/d3815add98c1b8641724e74fd97814276ed7a901/solutions/ColumnFormatter/docs/documentation/docs/assets/WizardStartFlow_Options.gif -------------------------------------------------------------------------------- /solutions/ColumnFormatter/docs/documentation/docs/assets/WizardTinyMap.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnp/sp-dev-solutions/d3815add98c1b8641724e74fd97814276ed7a901/solutions/ColumnFormatter/docs/documentation/docs/assets/WizardTinyMap.png -------------------------------------------------------------------------------- /solutions/ColumnFormatter/docs/documentation/docs/assets/WizardTwitterPic.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnp/sp-dev-solutions/d3815add98c1b8641724e74fd97814276ed7a901/solutions/ColumnFormatter/docs/documentation/docs/assets/WizardTwitterPic.png -------------------------------------------------------------------------------- /solutions/ColumnFormatter/docs/documentation/docs/assets/WizardTwitterPic_Options.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnp/sp-dev-solutions/d3815add98c1b8641724e74fd97814276ed7a901/solutions/ColumnFormatter/docs/documentation/docs/assets/WizardTwitterPic_Options.gif -------------------------------------------------------------------------------- /solutions/ColumnFormatter/docs/documentation/docs/assets/icons/BarChartHorizontal.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnp/sp-dev-solutions/d3815add98c1b8641724e74fd97814276ed7a901/solutions/ColumnFormatter/docs/documentation/docs/assets/icons/BarChartHorizontal.png -------------------------------------------------------------------------------- /solutions/ColumnFormatter/docs/documentation/docs/assets/icons/CheckboxComposite.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnp/sp-dev-solutions/d3815add98c1b8641724e74fd97814276ed7a901/solutions/ColumnFormatter/docs/documentation/docs/assets/icons/CheckboxComposite.png -------------------------------------------------------------------------------- /solutions/ColumnFormatter/docs/documentation/docs/assets/icons/DonutChart.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnp/sp-dev-solutions/d3815add98c1b8641724e74fd97814276ed7a901/solutions/ColumnFormatter/docs/documentation/docs/assets/icons/DonutChart.png -------------------------------------------------------------------------------- /solutions/ColumnFormatter/docs/documentation/docs/assets/icons/Feedback.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnp/sp-dev-solutions/d3815add98c1b8641724e74fd97814276ed7a901/solutions/ColumnFormatter/docs/documentation/docs/assets/icons/Feedback.png -------------------------------------------------------------------------------- /solutions/ColumnFormatter/docs/documentation/docs/assets/icons/Flow.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnp/sp-dev-solutions/d3815add98c1b8641724e74fd97814276ed7a901/solutions/ColumnFormatter/docs/documentation/docs/assets/icons/Flow.png -------------------------------------------------------------------------------- /solutions/ColumnFormatter/docs/documentation/docs/assets/icons/Info.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnp/sp-dev-solutions/d3815add98c1b8641724e74fd97814276ed7a901/solutions/ColumnFormatter/docs/documentation/docs/assets/icons/Info.png -------------------------------------------------------------------------------- /solutions/ColumnFormatter/docs/documentation/docs/assets/icons/Lightbulb.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnp/sp-dev-solutions/d3815add98c1b8641724e74fd97814276ed7a901/solutions/ColumnFormatter/docs/documentation/docs/assets/icons/Lightbulb.png -------------------------------------------------------------------------------- /solutions/ColumnFormatter/docs/documentation/docs/assets/icons/Mail.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnp/sp-dev-solutions/d3815add98c1b8641724e74fd97814276ed7a901/solutions/ColumnFormatter/docs/documentation/docs/assets/icons/Mail.png -------------------------------------------------------------------------------- /solutions/ColumnFormatter/docs/documentation/docs/assets/icons/MapPin.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnp/sp-dev-solutions/d3815add98c1b8641724e74fd97814276ed7a901/solutions/ColumnFormatter/docs/documentation/docs/assets/icons/MapPin.png -------------------------------------------------------------------------------- /solutions/ColumnFormatter/docs/documentation/docs/assets/icons/ReminderPerson.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnp/sp-dev-solutions/d3815add98c1b8641724e74fd97814276ed7a901/solutions/ColumnFormatter/docs/documentation/docs/assets/icons/ReminderPerson.png -------------------------------------------------------------------------------- /solutions/ColumnFormatter/docs/documentation/docs/assets/icons/RingerOff.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnp/sp-dev-solutions/d3815add98c1b8641724e74fd97814276ed7a901/solutions/ColumnFormatter/docs/documentation/docs/assets/icons/RingerOff.png -------------------------------------------------------------------------------- /solutions/ColumnFormatter/docs/documentation/docs/assets/icons/Soccer.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnp/sp-dev-solutions/d3815add98c1b8641724e74fd97814276ed7a901/solutions/ColumnFormatter/docs/documentation/docs/assets/icons/Soccer.png -------------------------------------------------------------------------------- /solutions/ColumnFormatter/docs/documentation/docs/assets/icons/Sort.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnp/sp-dev-solutions/d3815add98c1b8641724e74fd97814276ed7a901/solutions/ColumnFormatter/docs/documentation/docs/assets/icons/Sort.png -------------------------------------------------------------------------------- /solutions/ColumnFormatter/docs/documentation/docs/assets/icons/Warning.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnp/sp-dev-solutions/d3815add98c1b8641724e74fd97814276ed7a901/solutions/ColumnFormatter/docs/documentation/docs/assets/icons/Warning.png -------------------------------------------------------------------------------- /solutions/ColumnFormatter/docs/documentation/docs/assets/icons/iconRenderingSettings.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnp/sp-dev-solutions/d3815add98c1b8641724e74fd97814276ed7a901/solutions/ColumnFormatter/docs/documentation/docs/assets/icons/iconRenderingSettings.png -------------------------------------------------------------------------------- /solutions/ColumnFormatter/docs/documentation/docs/assets/sharepoint.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnp/sp-dev-solutions/d3815add98c1b8641724e74fd97814276ed7a901/solutions/ColumnFormatter/docs/documentation/docs/assets/sharepoint.png -------------------------------------------------------------------------------- /solutions/ColumnFormatter/docs/documentation/docs/wizards/mail-to.md: -------------------------------------------------------------------------------- 1 | # Mail To 2 | 3 | Creates a link to launch an email. 4 | 5 | ![Mail To Wizard](../assets/WizardMailTo.png) 6 | 7 | ## How to use this wizard 8 | 9 | _Coming Soon_ 10 | 11 | ## Supported column types 12 | - Person 13 | - Hyperlink 14 | 15 | ## Icon 16 | 17 | ![Icon](../assets/icons/Mail.png) 18 | 19 | > [Wizards](./index.md) 20 | 21 | > Go [Home](../index.md) 22 | 23 | ![](https://pnptelemetry.azurewebsites.net/sp-dev-solutions/solutions/ColumnFormatter/wiki/Wizards/MailTo) -------------------------------------------------------------------------------- /solutions/ColumnFormatter/docs/documentation/docs/wizards/severity.md: -------------------------------------------------------------------------------- 1 | # Severity 2 | 3 | Conditionally applies the severity styles based on the field's value. 4 | 5 | ![Severity Wizard](../assets/WizardSeverity.png) 6 | 7 | ## How to use this wizard 8 | 9 | _Coming Soon_ 10 | 11 | ## Supported column types 12 | - Text 13 | - Choice 14 | - Lookup 15 | 16 | ## Icon 17 | 18 | ![Icon](../assets/icons/Info.png) 19 | 20 | > [Wizards](./index.md) 21 | 22 | > Go [Home](../index.md) 23 | 24 | ![](https://pnptelemetry.azurewebsites.net/sp-dev-solutions/solutions/ColumnFormatter/wiki/Wizards/Severity) -------------------------------------------------------------------------------- /solutions/ColumnFormatter/gulpfile.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | const gulp = require('gulp'); 4 | const build = require('@microsoft/sp-build-web'); 5 | build.addSuppression(`Warning - [sass] The local CSS class 'ms-Grid' is not camelCase and will not be type-safe.`); 6 | 7 | build.initialize(gulp); 8 | -------------------------------------------------------------------------------- /solutions/ColumnFormatter/sharepoint/AppIcon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnp/sp-dev-solutions/d3815add98c1b8641724e74fd97814276ed7a901/solutions/ColumnFormatter/sharepoint/AppIcon.png -------------------------------------------------------------------------------- /solutions/ColumnFormatter/src/webparts/columnFormatter/components/Panels/Data/SampleValues/SampleText.tsx: -------------------------------------------------------------------------------- 1 | import { TextField } from 'office-ui-fabric-react/lib/TextField'; 2 | import * as React from 'react'; 3 | 4 | export interface ISampleTextProps { 5 | value: string; 6 | onChanged: (newValue:string) => void; 7 | } 8 | 9 | export class SampleText extends React.Component { 10 | public render(): React.ReactElement { 11 | return ( 12 |
13 | 14 |
15 | ); 16 | } 17 | } -------------------------------------------------------------------------------- /solutions/ColumnFormatter/src/webparts/columnFormatter/helpers/Utilities.ts: -------------------------------------------------------------------------------- 1 | import { IDropdownOption } from 'office-ui-fabric-react/lib/Dropdown'; 2 | 3 | export const DropdownSort = (a:IDropdownOption,b:IDropdownOption) => { 4 | return a.text.localeCompare(b.text); 5 | }; -------------------------------------------------------------------------------- /solutions/ContactManagement/.gitattributes: -------------------------------------------------------------------------------- 1 | * text=auto -------------------------------------------------------------------------------- /solutions/ContactManagement/.gitignore: -------------------------------------------------------------------------------- 1 | # Logs 2 | logs 3 | *.log 4 | npm-debug.log* 5 | 6 | # Dependency directories 7 | node_modules 8 | 9 | # Build generated files 10 | dist 11 | lib 12 | solution 13 | temp 14 | *.sppkg 15 | 16 | # Coverage directory used by tools like istanbul 17 | coverage 18 | 19 | # OSX 20 | .DS_Store 21 | 22 | # Visual Studio files 23 | .ntvs_analysis.dat 24 | .vs 25 | bin 26 | obj 27 | 28 | # Resx Generated Code 29 | *.resx.ts 30 | 31 | # Styles Generated Code 32 | *.scss.ts 33 | -------------------------------------------------------------------------------- /solutions/ContactManagement/.npmignore: -------------------------------------------------------------------------------- 1 | # Folders 2 | .vscode 3 | coverage 4 | node_modules 5 | sharepoint 6 | src 7 | temp 8 | 9 | # Files 10 | *.csproj 11 | .git* 12 | .yo-rc.json 13 | gulpfile.js 14 | tsconfig.json 15 | -------------------------------------------------------------------------------- /solutions/ContactManagement/.vscode/extensions.json: -------------------------------------------------------------------------------- 1 | { 2 | "recommendations": [ 3 | "msjsdiag.debugger-for-chrome" 4 | ] 5 | } -------------------------------------------------------------------------------- /solutions/ContactManagement/.yo-rc.json: -------------------------------------------------------------------------------- 1 | { 2 | "@microsoft/generator-sharepoint": { 3 | "version": "1.10.0", 4 | "isDomainIsolated": false, 5 | "isCreatingSolution": true, 6 | "packageManager": "npm", 7 | "componentType": "webpart", 8 | "environment": "spo", 9 | "libraryName": "crm", 10 | "libraryId": "7e571ffc-e6a5-443e-8bbb-78d0ddbee6a0", 11 | "framework": "react" 12 | } 13 | } -------------------------------------------------------------------------------- /solutions/ContactManagement/assets/contactmanagement-teams.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnp/sp-dev-solutions/d3815add98c1b8641724e74fd97814276ed7a901/solutions/ContactManagement/assets/contactmanagement-teams.png -------------------------------------------------------------------------------- /solutions/ContactManagement/assets/contactmanagement.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnp/sp-dev-solutions/d3815add98c1b8641724e74fd97814276ed7a901/solutions/ContactManagement/assets/contactmanagement.png -------------------------------------------------------------------------------- /solutions/ContactManagement/assets/contactmanagementform.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnp/sp-dev-solutions/d3815add98c1b8641724e74fd97814276ed7a901/solutions/ContactManagement/assets/contactmanagementform.png -------------------------------------------------------------------------------- /solutions/ContactManagement/config/config.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "https://developer.microsoft.com/json-schemas/spfx-build/config.2.0.schema.json", 3 | "version": "2.0", 4 | "bundles": { 5 | "crm-web-part": { 6 | "components": [ 7 | { 8 | "entrypoint": "./lib/webparts/crm/CrmWebPart.js", 9 | "manifest": "./src/webparts/crm/CrmWebPart.manifest.json" 10 | } 11 | ] 12 | } 13 | }, 14 | "externals": {}, 15 | "localizedResources": { 16 | "crmStrings": "lib/webparts/crm/loc/{locale}.js" 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /solutions/ContactManagement/config/copy-assets.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "https://developer.microsoft.com/json-schemas/spfx-build/copy-assets.schema.json", 3 | "deployCdnPath": "temp/deploy" 4 | } 5 | -------------------------------------------------------------------------------- /solutions/ContactManagement/config/deploy-azure-storage.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "https://developer.microsoft.com/json-schemas/spfx-build/deploy-azure-storage.schema.json", 3 | "workingDir": "./temp/deploy/", 4 | "account": "", 5 | "container": "contact-management", 6 | "accessKey": "" 7 | } -------------------------------------------------------------------------------- /solutions/ContactManagement/config/serve.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "https://developer.microsoft.com/json-schemas/core-build/serve.schema.json", 3 | "port": 4321, 4 | "initialPage": "https://localhost:5432/workbench", 5 | "https": true, 6 | "api": { 7 | "port": 5432, 8 | "entryPath": "node_modules/@microsoft/sp-webpart-workbench/lib/api/" 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /solutions/ContactManagement/config/write-manifests.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "https://developer.microsoft.com/json-schemas/spfx-build/write-manifests.schema.json", 3 | "cdnBasePath": "" 4 | } -------------------------------------------------------------------------------- /solutions/ContactManagement/gulpfile.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | const gulp = require('gulp'); 4 | const build = require('@microsoft/sp-build-web'); 5 | build.addSuppression(`Warning - [sass] The local CSS class 'ms-Grid' is not camelCase and will not be type-safe.`); 6 | 7 | build.initialize(gulp); 8 | -------------------------------------------------------------------------------- /solutions/ContactManagement/sharepoint/assets/upgradeactions.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /solutions/ContactManagement/src/biz/Constants.ts: -------------------------------------------------------------------------------- 1 | export class Constants{ 2 | public static readonly ContactManagementOrganizationListTitle: string = "Organizations"; 3 | public static readonly ContactManagementContactsListTitle: string = "Contacts"; 4 | public static readonly ContactManagementTagListTitle: string = "Tags"; 5 | } -------------------------------------------------------------------------------- /solutions/ContactManagement/src/data/ISPField.ts: -------------------------------------------------------------------------------- 1 | // Copyright (c) Microsoft Corporation. All rights reserved. 2 | // Licensed under the MIT license. 3 | 4 | import { FieldTypeKind } from './FieldTypeKind'; 5 | 6 | export interface ISPField { 7 | Title: string; 8 | FieldTypeKind?: FieldTypeKind; 9 | InternalName: string; 10 | Id?: string; 11 | Choices?: string[]; 12 | RichText?: boolean; 13 | MaxLength?: number; 14 | AllowMultipleValues?: boolean; 15 | LookupList?: string; /* this is the GUID of the list */ 16 | } -------------------------------------------------------------------------------- /solutions/ContactManagement/src/data/ISPList.ts: -------------------------------------------------------------------------------- 1 | // Copyright (c) Microsoft Corporation. All rights reserved. 2 | // Licensed under the MIT license. 3 | 4 | import { ISPField } from './ISPField'; 5 | 6 | export interface ISPListList { 7 | value: ISPList[]; 8 | } 9 | 10 | export interface ISPList { 11 | Title: string; 12 | ListItemEntityTypeFullName?: string; 13 | Id?: string; 14 | ListItemCount? : number; 15 | Fields?: ISPField[]; 16 | } -------------------------------------------------------------------------------- /solutions/ContactManagement/src/data/ISPView.ts: -------------------------------------------------------------------------------- 1 | // Copyright (c) Microsoft Corporation. All rights reserved. 2 | // Licensed under the MIT license. 3 | 4 | import Query from './Query'; 5 | 6 | export interface ISPView { 7 | query: Query; 8 | title: string; 9 | } -------------------------------------------------------------------------------- /solutions/ContactManagement/src/data/ISharePointItem.ts: -------------------------------------------------------------------------------- 1 | // Copyright (c) Microsoft Corporation. All rights reserved. 2 | // Licensed under the MIT license. 3 | 4 | export interface ISharePointItem { 5 | Title: string; 6 | Id: number; 7 | Modified?: Date; 8 | Created?: Date; 9 | AuthorId?: number; 10 | EditorId?: number; 11 | } 12 | -------------------------------------------------------------------------------- /solutions/ContactManagement/src/data/ITag.ts: -------------------------------------------------------------------------------- 1 | // Copyright (c) Microsoft Corporation. All rights reserved. 2 | // Licensed under the MIT license. 3 | 4 | import { ISharePointItem } from '../data/ISharePointItem'; 5 | 6 | export interface ITagList { 7 | value: ITag[]; 8 | } 9 | 10 | export interface ITag extends ISharePointItem 11 | { 12 | } -------------------------------------------------------------------------------- /solutions/ContactManagement/src/data/Person.ts: -------------------------------------------------------------------------------- 1 | // Copyright (c) Microsoft Corporation. All rights reserved. 2 | // Licensed under the MIT license. 3 | 4 | import { IPerson } from './IPerson'; 5 | import SharePointItem from './SharePointItem'; 6 | 7 | export default class Person extends SharePointItem implements IPerson { 8 | public FullName: string; 9 | public FirstName: string; 10 | public Company: string; 11 | public OrganizationId?: number; 12 | public Comments?: string; 13 | } 14 | -------------------------------------------------------------------------------- /solutions/ContactManagement/src/data/SPUrl.ts: -------------------------------------------------------------------------------- 1 | // Copyright (c) Microsoft Corporation. All rights reserved. 2 | // Licensed under the MIT license. 3 | 4 | export default class SPUrl { 5 | public Url: string; 6 | public Description: string; 7 | } 8 | -------------------------------------------------------------------------------- /solutions/ContactManagement/src/data/SharePointItem.ts: -------------------------------------------------------------------------------- 1 | // Copyright (c) Microsoft Corporation. All rights reserved. 2 | // Licensed under the MIT license. 3 | 4 | import { ISharePointItem } from './ISharePointItem'; 5 | 6 | export default class SharePointItem implements ISharePointItem { 7 | public Title: string; 8 | public Type: string; 9 | public Id: number; 10 | public Modified: Date; 11 | public Created: Date; 12 | public AuthorId: number; 13 | public EditorId: number; 14 | } 15 | -------------------------------------------------------------------------------- /solutions/ContactManagement/src/dataProviders/DataError.ts: -------------------------------------------------------------------------------- 1 | // Copyright (c) Microsoft Corporation. All rights reserved. 2 | // Licensed under the MIT license. 3 | 4 | export enum DataProviderErrorCodes 5 | { 6 | Unknown = 0, 7 | OrganizationListDoesNotExist = 1, 8 | PersonListDoesNotExist = 2, 9 | TagListDoesNotExist = 3, 10 | FieldNotFound = 4, 11 | FieldNotConifguredProperly = 5 12 | } 13 | 14 | export default class DataError 15 | { 16 | public id: number; 17 | public message: string; 18 | public code: number; 19 | } -------------------------------------------------------------------------------- /solutions/ContactManagement/src/dataProviders/IOrganizationSet.ts: -------------------------------------------------------------------------------- 1 | // Copyright (c) Microsoft Corporation. All rights reserved. 2 | // Licensed under the MIT license. 3 | 4 | import { IOrganization } from '../data/IOrganization'; 5 | 6 | export interface IOrganizationSet 7 | { 8 | key : string; 9 | organizations : IOrganization[]; 10 | 11 | apply(newOrgs : IOrganization[], removeAndAdd : boolean); 12 | } -------------------------------------------------------------------------------- /solutions/ContactManagement/src/dataProviders/ITagSet.ts: -------------------------------------------------------------------------------- 1 | // Copyright (c) Microsoft Corporation. All rights reserved. 2 | // Licensed under the MIT license. 3 | 4 | import { 5 | ITag 6 | } from '../data/ITag'; 7 | 8 | export interface ITagSet 9 | { 10 | key : string; 11 | tags : ITag[]; 12 | 13 | apply(newTag : ITag[], removeAndAdd : boolean); 14 | } -------------------------------------------------------------------------------- /solutions/ContactManagement/src/dataProviders/TagSetChange.ts: -------------------------------------------------------------------------------- 1 | // Copyright (c) Microsoft Corporation. All rights reserved. 2 | // Licensed under the MIT license. 3 | 4 | import { ITag } from '../data/ITag'; 5 | 6 | export default class TagSetChange { 7 | public removedItems: ITag[]; 8 | public changedItems: ITag[]; 9 | public addedItems: ITag[]; 10 | 11 | constructor() 12 | { 13 | this.removedItems = new Array(); 14 | this.changedItems = new Array(); 15 | this.addedItems = new Array(); 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /solutions/ContactManagement/src/index.ts: -------------------------------------------------------------------------------- 1 | // A file is required to be in the root of the /src directory by the TypeScript compiler 2 | 3 | -------------------------------------------------------------------------------- /solutions/ContactManagement/src/pnp-preset.ts: -------------------------------------------------------------------------------- 1 | // source: https://github.com/pnp/pnpjs/blob/version-2/samples/project-preset/src/pnp-preset.ts 2 | 3 | import { SPRest } from "@pnp/sp"; 4 | 5 | import "@pnp/sp/webs"; 6 | import "@pnp/sp/lists"; 7 | import "@pnp/sp/items"; 8 | import "@pnp/sp/fields"; 9 | import "@pnp/sp/site-users"; 10 | import "@pnp/sp/site-groups/web"; 11 | import "@pnp/sp/security/list"; 12 | 13 | export const sp = new SPRest(); -------------------------------------------------------------------------------- /solutions/ContactManagement/src/utilities/UrlUtility.ts: -------------------------------------------------------------------------------- 1 | // Copyright (c) Microsoft Corporation. All rights reserved. 2 | // Licensed under the MIT license. 3 | 4 | export default class UrlUtility 5 | { 6 | public static ensureUrlEndsWithSlash(url: string) : string { 7 | 8 | if (url[url.length - 1] != '/') 9 | { 10 | url += '/'; 11 | } 12 | 13 | return url; 14 | } 15 | } -------------------------------------------------------------------------------- /solutions/ContactManagement/src/webparts/crm/ICrmComponentProps.ts: -------------------------------------------------------------------------------- 1 | // Copyright (c) Microsoft Corporation. All rights reserved. 2 | // Licensed under the MIT license. 3 | 4 | import CrmManager from '../../data/CrmManager'; 5 | 6 | export interface ICrmComponentProps { 7 | manager : CrmManager; 8 | } 9 | -------------------------------------------------------------------------------- /solutions/ContactManagement/src/webparts/crm/ICrmWebPartProps.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnp/sp-dev-solutions/d3815add98c1b8641724e74fd97814276ed7a901/solutions/ContactManagement/src/webparts/crm/ICrmWebPartProps.ts -------------------------------------------------------------------------------- /solutions/ContactManagement/src/webparts/crm/components/tests/Crm.test.ts: -------------------------------------------------------------------------------- 1 | /// 2 | 3 | import { assert } from 'chai'; 4 | 5 | describe('CrmWebPart', () => { 6 | it('should do something', () => { 7 | assert.ok(true); 8 | }); 9 | }); 10 | -------------------------------------------------------------------------------- /solutions/ContactManagement/teams/098f096d-b64c-4b3c-9be0-ccb486bc9710_color.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnp/sp-dev-solutions/d3815add98c1b8641724e74fd97814276ed7a901/solutions/ContactManagement/teams/098f096d-b64c-4b3c-9be0-ccb486bc9710_color.png -------------------------------------------------------------------------------- /solutions/ContactManagement/teams/098f096d-b64c-4b3c-9be0-ccb486bc9710_outline.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnp/sp-dev-solutions/d3815add98c1b8641724e74fd97814276ed7a901/solutions/ContactManagement/teams/098f096d-b64c-4b3c-9be0-ccb486bc9710_outline.png -------------------------------------------------------------------------------- /solutions/ContactManagement/tests.js: -------------------------------------------------------------------------------- 1 | var context = require.context('.', true, /.+\.test\.js?$/); 2 | 3 | context.keys().forEach(context); 4 | 5 | module.exports = context; 6 | -------------------------------------------------------------------------------- /solutions/InstagramWebPart/.gitignore: -------------------------------------------------------------------------------- 1 | # Logs 2 | logs 3 | *.log 4 | npm-debug.log* 5 | 6 | # Dependency directories 7 | node_modules 8 | 9 | # Build generated files 10 | dist 11 | lib 12 | solution 13 | temp 14 | *.sppkg 15 | 16 | # Coverage directory used by tools like istanbul 17 | coverage 18 | 19 | # OSX 20 | .DS_Store 21 | 22 | # Visual Studio files 23 | .ntvs_analysis.dat 24 | .vs 25 | bin 26 | obj 27 | 28 | # Resx Generated Code 29 | *.resx.ts 30 | 31 | # Styles Generated Code 32 | *.scss.ts 33 | -------------------------------------------------------------------------------- /solutions/InstagramWebPart/.vscode/extensions.json: -------------------------------------------------------------------------------- 1 | { 2 | "recommendations": [ 3 | "msjsdiag.debugger-for-chrome" 4 | ] 5 | } -------------------------------------------------------------------------------- /solutions/InstagramWebPart/.vscode/settings.json: -------------------------------------------------------------------------------- 1 | // Place your settings in this file to overwrite default and user settings. 2 | { 3 | // Configure glob patterns for excluding files and folders in the file explorer. 4 | "files.exclude": { 5 | "**/.git": true, 6 | "**/.DS_Store": true, 7 | "**/bower_components": true, 8 | "**/coverage": true, 9 | "**/lib-amd": true, 10 | "src/**/*.scss.ts": true 11 | }, 12 | "typescript.tsdk": ".\\node_modules\\typescript\\lib" 13 | } -------------------------------------------------------------------------------- /solutions/InstagramWebPart/.yo-rc.json: -------------------------------------------------------------------------------- 1 | { 2 | "@microsoft/generator-sharepoint": { 3 | "isCreatingSolution": true, 4 | "environment": "spo", 5 | "version": "1.7.0-dev.1", 6 | "libraryName": "insta-webpart", 7 | "libraryId": "7ce362ee-19a4-4c94-8b1d-bb86aeae6f9e", 8 | "packageManager": "npm", 9 | "componentType": "webpart" 10 | } 11 | } -------------------------------------------------------------------------------- /solutions/InstagramWebPart/assets/InstagramWebPartIntroVideo.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnp/sp-dev-solutions/d3815add98c1b8641724e74fd97814276ed7a901/solutions/InstagramWebPart/assets/InstagramWebPartIntroVideo.gif -------------------------------------------------------------------------------- /solutions/InstagramWebPart/config/copy-assets.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "https://developer.microsoft.com/json-schemas/spfx-build/copy-assets.schema.json", 3 | "deployCdnPath": "temp/deploy" 4 | } 5 | -------------------------------------------------------------------------------- /solutions/InstagramWebPart/config/deploy-azure-storage.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "https://developer.microsoft.com/json-schemas/spfx-build/deploy-azure-storage.schema.json", 3 | "workingDir": "./temp/deploy/", 4 | "account": "", 5 | "container": "insta-webpart", 6 | "accessKey": "" 7 | } -------------------------------------------------------------------------------- /solutions/InstagramWebPart/config/package-solution.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "https://developer.microsoft.com/json-schemas/spfx-build/package-solution.schema.json", 3 | "solution": { 4 | "name": "insta-webpart-client-side-solution", 5 | "id": "7ce362ee-19a4-4c94-8b1d-bb86aeae6f9e", 6 | "version": "1.0.0.0", 7 | "includeClientSideAssets": true, 8 | "skipFeatureDeployment": true 9 | }, 10 | "paths": { 11 | "zippedPackage": "solution/insta-webpart.sppkg" 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /solutions/InstagramWebPart/config/serve.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "https://developer.microsoft.com/json-schemas/core-build/serve.schema.json", 3 | "port": 4321, 4 | "https": true, 5 | "initialPage": "https://localhost:5432/workbench", 6 | "api": { 7 | "port": 5432, 8 | "entryPath": "node_modules/@microsoft/sp-webpart-workbench/lib/api/" 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /solutions/InstagramWebPart/config/write-manifests.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "https://developer.microsoft.com/json-schemas/spfx-build/write-manifests.schema.json", 3 | "cdnBasePath": "" 4 | } -------------------------------------------------------------------------------- /solutions/InstagramWebPart/gulpfile.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | const gulp = require('gulp'); 4 | const build = require('@microsoft/sp-build-web'); 5 | build.addSuppression(`Warning - [sass] The local CSS class 'ms-Grid' is not camelCase and will not be type-safe.`); 6 | 7 | build.initialize(gulp); 8 | -------------------------------------------------------------------------------- /solutions/InstagramWebPart/src/index.ts: -------------------------------------------------------------------------------- 1 | // A file is required to be in the root of the /src directory by the TypeScript compiler 2 | -------------------------------------------------------------------------------- /solutions/InstagramWebPart/src/webparts/instagram/components/IInstagramProps.ts: -------------------------------------------------------------------------------- 1 | import { DisplayMode } from "@microsoft/sp-core-library"; 2 | import { IFeedResponse } from "../IFeedResponse"; 3 | 4 | export interface IInstagramProps { 5 | accessToken?: string; 6 | authUrl?: string; 7 | containerWidth: number; 8 | feed?: IFeedResponse; 9 | needsConfiguration: boolean; 10 | displayMode: DisplayMode; 11 | title: string; 12 | updateProperty: (value: string) => void; 13 | configure: () => void; 14 | } 15 | -------------------------------------------------------------------------------- /solutions/InstagramWebPart/src/webparts/instagram/components/assets/icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnp/sp-dev-solutions/d3815add98c1b8641724e74fd97814276ed7a901/solutions/InstagramWebPart/src/webparts/instagram/components/assets/icon.png -------------------------------------------------------------------------------- /solutions/InstagramWebPart/src/webparts/instagram/components/assets/instagram-logo-80.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnp/sp-dev-solutions/d3815add98c1b8641724e74fd97814276ed7a901/solutions/InstagramWebPart/src/webparts/instagram/components/assets/instagram-logo-80.png -------------------------------------------------------------------------------- /solutions/InstagramWebPart/src/webparts/instagram/components/assets/slick/ajax-loader.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnp/sp-dev-solutions/d3815add98c1b8641724e74fd97814276ed7a901/solutions/InstagramWebPart/src/webparts/instagram/components/assets/slick/ajax-loader.gif -------------------------------------------------------------------------------- /solutions/InstagramWebPart/src/webparts/instagram/components/assets/slick/fonts/slick.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnp/sp-dev-solutions/d3815add98c1b8641724e74fd97814276ed7a901/solutions/InstagramWebPart/src/webparts/instagram/components/assets/slick/fonts/slick.eot -------------------------------------------------------------------------------- /solutions/InstagramWebPart/src/webparts/instagram/components/assets/slick/fonts/slick.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnp/sp-dev-solutions/d3815add98c1b8641724e74fd97814276ed7a901/solutions/InstagramWebPart/src/webparts/instagram/components/assets/slick/fonts/slick.ttf -------------------------------------------------------------------------------- /solutions/InstagramWebPart/src/webparts/instagram/components/assets/slick/fonts/slick.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnp/sp-dev-solutions/d3815add98c1b8641724e74fd97814276ed7a901/solutions/InstagramWebPart/src/webparts/instagram/components/assets/slick/fonts/slick.woff -------------------------------------------------------------------------------- /solutions/InstagramWebPart/src/webparts/instagram/components/themedFabric.Common.module.scss: -------------------------------------------------------------------------------- 1 | @import "~office-ui-fabric-react/dist/sass/References.scss"; 2 | @import "./themeOverrides.module.scss"; 3 | -------------------------------------------------------------------------------- /solutions/InventoryCheckOut/.gitattributes: -------------------------------------------------------------------------------- 1 | * text=auto -------------------------------------------------------------------------------- /solutions/InventoryCheckOut/.gitignore: -------------------------------------------------------------------------------- 1 | # Logs 2 | logs 3 | *.log 4 | npm-debug.log* 5 | 6 | # Dependency directories 7 | node_modules 8 | 9 | # Build generated files 10 | dist 11 | lib 12 | solution 13 | temp 14 | *.sppkg 15 | 16 | # Coverage directory used by tools like istanbul 17 | coverage 18 | 19 | # OSX 20 | .DS_Store 21 | 22 | # Visual Studio files 23 | .ntvs_analysis.dat 24 | .vs 25 | bin 26 | obj 27 | 28 | # Resx Generated Code 29 | *.resx.ts 30 | 31 | # Styles Generated Code 32 | *.scss.ts 33 | -------------------------------------------------------------------------------- /solutions/InventoryCheckOut/.npmignore: -------------------------------------------------------------------------------- 1 | # Folders 2 | .vscode 3 | coverage 4 | node_modules 5 | sharepoint 6 | src 7 | temp 8 | 9 | # Files 10 | *.csproj 11 | .git* 12 | .yo-rc.json 13 | gulpfile.js 14 | tsconfig.json 15 | -------------------------------------------------------------------------------- /solutions/InventoryCheckOut/.vscode/extensions.json: -------------------------------------------------------------------------------- 1 | { 2 | "recommendations": [ 3 | "msjsdiag.debugger-for-chrome" 4 | ] 5 | } -------------------------------------------------------------------------------- /solutions/InventoryCheckOut/.yo-rc.json: -------------------------------------------------------------------------------- 1 | { 2 | "@microsoft/generator-sharepoint": { 3 | "version": "1.10.0", 4 | "libraryName": "inventory-check-out", 5 | "libraryId": "409e89a1-db89-4b0f-b599-fa67cc22c273", 6 | "environment": "spo", 7 | "isDomainIsolated": false, 8 | "isCreatingSolution": true, 9 | "packageManager": "npm", 10 | "componentType": "webpart" 11 | } 12 | } -------------------------------------------------------------------------------- /solutions/InventoryCheckOut/assets/cross-country-skiing ski sets.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnp/sp-dev-solutions/d3815add98c1b8641724e74fd97814276ed7a901/solutions/InventoryCheckOut/assets/cross-country-skiing ski sets.png -------------------------------------------------------------------------------- /solutions/InventoryCheckOut/assets/inflatable water sports equipment.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnp/sp-dev-solutions/d3815add98c1b8641724e74fd97814276ed7a901/solutions/InventoryCheckOut/assets/inflatable water sports equipment.png -------------------------------------------------------------------------------- /solutions/InventoryCheckOut/assets/internal-frame-hiking.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnp/sp-dev-solutions/d3815add98c1b8641724e74fd97814276ed7a901/solutions/InventoryCheckOut/assets/internal-frame-hiking.png -------------------------------------------------------------------------------- /solutions/InventoryCheckOut/assets/inventorycheckout.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnp/sp-dev-solutions/d3815add98c1b8641724e74fd97814276ed7a901/solutions/InventoryCheckOut/assets/inventorycheckout.png -------------------------------------------------------------------------------- /solutions/InventoryCheckOut/assets/inventorycheckoutform.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnp/sp-dev-solutions/d3815add98c1b8641724e74fd97814276ed7a901/solutions/InventoryCheckOut/assets/inventorycheckoutform.png -------------------------------------------------------------------------------- /solutions/InventoryCheckOut/assets/inventorycheckoutteams.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnp/sp-dev-solutions/d3815add98c1b8641724e74fd97814276ed7a901/solutions/InventoryCheckOut/assets/inventorycheckoutteams.png -------------------------------------------------------------------------------- /solutions/InventoryCheckOut/assets/paddleboards.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnp/sp-dev-solutions/d3815add98c1b8641724e74fd97814276ed7a901/solutions/InventoryCheckOut/assets/paddleboards.png -------------------------------------------------------------------------------- /solutions/InventoryCheckOut/config/copy-assets.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "https://developer.microsoft.com/json-schemas/spfx-build/copy-assets.schema.json", 3 | "deployCdnPath": "temp/deploy" 4 | } 5 | -------------------------------------------------------------------------------- /solutions/InventoryCheckOut/config/deploy-azure-storage.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "https://developer.microsoft.com/json-schemas/spfx-build/deploy-azure-storage.schema.json", 3 | "workingDir": "./temp/deploy/", 4 | "account": "", 5 | "container": "inventory-check-out", 6 | "accessKey": "" 7 | } -------------------------------------------------------------------------------- /solutions/InventoryCheckOut/config/package-solution.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "https://developer.microsoft.com/json-schemas/spfx-build/package-solution.schema.json", 3 | "solution": { 4 | "name": "Inventory and Check-out Tracking", 5 | "id": "409e89a1-db89-4b0f-b599-fa67cc22c273", 6 | "version": "1.0.14.0", 7 | "isDomainIsolated": false, 8 | "includeClientSideAssets": true 9 | }, 10 | "paths": { 11 | "zippedPackage": "solution/inventory-check-out.sppkg" 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /solutions/InventoryCheckOut/config/serve.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "https://developer.microsoft.com/json-schemas/core-build/serve.schema.json", 3 | "port": 4321, 4 | "initialPage": "https://localhost:5432/workbench", 5 | "https": true, 6 | "api": { 7 | "port": 5432, 8 | "entryPath": "node_modules/@microsoft/sp-webpart-workbench/lib/api/" 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /solutions/InventoryCheckOut/config/write-manifests.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "https://developer.microsoft.com/json-schemas/spfx-build/write-manifests.schema.json", 3 | "cdnBasePath": "" 4 | } -------------------------------------------------------------------------------- /solutions/InventoryCheckOut/gulpfile.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | const gulp = require('gulp'); 4 | const build = require('@microsoft/sp-build-web'); 5 | build.addSuppression(`Warning - [sass] The local CSS class 'ms-Grid' is not camelCase and will not be type-safe.`); 6 | 7 | build.initialize(gulp); 8 | -------------------------------------------------------------------------------- /solutions/InventoryCheckOut/src/index.ts: -------------------------------------------------------------------------------- 1 | // A file is required to be in the root of the /src directory by the TypeScript compiler 2 | 3 | -------------------------------------------------------------------------------- /solutions/InventoryCheckOut/src/libraries/index.ts: -------------------------------------------------------------------------------- 1 | //export * from "./solutions/SharePointUtility"; -------------------------------------------------------------------------------- /solutions/InventoryCheckOut/src/pnp-preset.ts: -------------------------------------------------------------------------------- 1 | // source: https://github.com/pnp/pnpjs/blob/version-2/samples/project-preset/src/pnp-preset.ts 2 | 3 | import { SPRest } from "@pnp/sp"; 4 | 5 | import "@pnp/sp/webs"; 6 | import "@pnp/sp/lists"; 7 | import "@pnp/sp/items"; 8 | import "@pnp/sp/fields"; 9 | import "@pnp/sp/site-users"; 10 | import "@pnp/sp/site-groups/web"; 11 | 12 | export const sp = new SPRest(); -------------------------------------------------------------------------------- /solutions/InventoryCheckOut/src/webparts/inventoryCheckOutWebPart/IInventoryCheckOutWebPartWebPartProps.ts: -------------------------------------------------------------------------------- 1 | // Copyright (c) Microsoft Corporation. All rights reserved. 2 | // Licensed under the MIT license. 3 | 4 | export interface IInventoryCheckOutWebPartWebPartProps { 5 | description: string; 6 | standardCheckoutLength:string; 7 | locations:string; 8 | allowCheckoutsIntheFuture:boolean; 9 | } 10 | -------------------------------------------------------------------------------- /solutions/InventoryCheckOut/src/webparts/inventoryCheckOutWebPart/components/CheckInDialog/CheckInDialog.module.scss: -------------------------------------------------------------------------------- 1 | .checkInDialog{ 2 | margin: 0; 3 | min-width: 600px; 4 | max-width: 800px; 5 | min-height: 500px; 6 | .item{ margin: 20px 0;} 7 | .row{color: red;} 8 | } -------------------------------------------------------------------------------- /solutions/InventoryCheckOut/src/webparts/inventoryCheckOutWebPart/components/CheckInDialog/ICheckInDialogState.ts: -------------------------------------------------------------------------------- 1 | // Copyright (c) Microsoft Corporation. All rights reserved. 2 | // Licensed under the MIT license. 3 | 4 | import { ICheckOut } from '../../models/InventoryCheckOutModel'; 5 | 6 | interface ICheckInDialogState { 7 | item: ICheckOut; 8 | submitting?: boolean; 9 | errorMessage?:string; 10 | } 11 | export default ICheckInDialogState; -------------------------------------------------------------------------------- /solutions/InventoryCheckOut/src/webparts/inventoryCheckOutWebPart/components/CheckOutList/ICheckOutListProps.ts: -------------------------------------------------------------------------------- 1 | // Copyright (c) Microsoft Corporation. All rights reserved. 2 | // Licensed under the MIT license. 3 | 4 | import { ICheckOut } from "../../models/InventoryCheckOutModel"; 5 | import {CheckOutEditOperationCallback} from '../../models/ItemOperationCallback'; 6 | interface ICheckOutListProps { 7 | checkouts: ICheckOut[]; 8 | checkOutEditIconClickCallback: CheckOutEditOperationCallback; 9 | checkOutMarkconClickCallback: CheckOutEditOperationCallback; 10 | } 11 | export default ICheckOutListProps; -------------------------------------------------------------------------------- /solutions/InventoryCheckOut/src/webparts/inventoryCheckOutWebPart/components/CheckOutListItem/ICheckOutListItemProps.ts: -------------------------------------------------------------------------------- 1 | // Copyright (c) Microsoft Corporation. All rights reserved. 2 | // Licensed under the MIT license. 3 | 4 | import { ICheckOut } from '../../models/InventoryCheckOutModel'; 5 | import { CheckOutEditOperationCallback } from '../../models/ItemOperationCallback'; 6 | 7 | interface ICheckOutListItemProps { 8 | item: ICheckOut; 9 | onEdit: CheckOutEditOperationCallback; 10 | onCheckIn: CheckOutEditOperationCallback; 11 | } 12 | 13 | export default ICheckOutListItemProps; -------------------------------------------------------------------------------- /solutions/InventoryCheckOut/src/webparts/inventoryCheckOutWebPart/components/CheckOutNewDialog/CheckOutNewDialogState.ts: -------------------------------------------------------------------------------- 1 | // Copyright (c) Microsoft Corporation. All rights reserved. 2 | // Licensed under the MIT license. 3 | 4 | import { IPerson, ICheckOut } from "../../models/InventoryCheckOutModel"; 5 | 6 | interface ICheckOutNewDialogState { 7 | showDialog: boolean; 8 | isNewForm: boolean; 9 | item: ICheckOut; 10 | statuses: string[]; 11 | users: IPerson[]; 12 | errorMessages: string[]; 13 | submitting: boolean; 14 | } 15 | 16 | export default ICheckOutNewDialogState; -------------------------------------------------------------------------------- /solutions/InventoryCheckOut/src/webparts/inventoryCheckOutWebPart/components/DeleteInvDialog/DeleteInvDialogProps.ts: -------------------------------------------------------------------------------- 1 | // Copyright (c) Microsoft Corporation. All rights reserved. 2 | // Licensed under the MIT license. 3 | 4 | interface DeleteInvDialogProps { 5 | showDialog: boolean; 6 | itemDeleteConfirmOperationCallback: any; 7 | title:string; 8 | } 9 | 10 | export default DeleteInvDialogProps; -------------------------------------------------------------------------------- /solutions/InventoryCheckOut/src/webparts/inventoryCheckOutWebPart/components/InvNewDialog/InvNewDialogProps.ts: -------------------------------------------------------------------------------- 1 | // Copyright (c) Microsoft Corporation. All rights reserved. 2 | // Licensed under the MIT license. 3 | 4 | import { IInventoryItem } from "../../models/InventoryCheckOutModel"; 5 | 6 | interface InvNewDialogProps { 7 | item?: IInventoryItem; 8 | isOpen: boolean; 9 | isNew: boolean; 10 | location:string; 11 | itemSaveOperationCallback: any; 12 | itemCancelOperationCallback: any; 13 | itemValidOperationCallback: any; 14 | } 15 | 16 | export default InvNewDialogProps; -------------------------------------------------------------------------------- /solutions/InventoryCheckOut/src/webparts/inventoryCheckOutWebPart/components/InventoryItemCard/IInventoryItemCardProps.ts: -------------------------------------------------------------------------------- 1 | // Copyright (c) Microsoft Corporation. All rights reserved. 2 | // Licensed under the MIT license. 3 | 4 | import { IInventoryItem } from "../../models/InventoryCheckOutModel"; 5 | 6 | interface IInventoryItemCardProps { 7 | item:IInventoryItem; 8 | onClickEvent:any; 9 | } 10 | 11 | export default IInventoryItemCardProps; -------------------------------------------------------------------------------- /solutions/InventoryCheckOut/src/webparts/inventoryCheckOutWebPart/components/InventoryList/IInventoryListProps.ts: -------------------------------------------------------------------------------- 1 | // Copyright (c) Microsoft Corporation. All rights reserved. 2 | // Licensed under the MIT license. 3 | 4 | import { IInventoryItem } from "../../models/InventoryCheckOutModel"; 5 | 6 | interface IInventoryListProps { 7 | myCheckoutItems:IInventoryItem[]; 8 | allItems:IInventoryItem[]; 9 | onClickEvent:any; 10 | } 11 | 12 | export default IInventoryListProps; -------------------------------------------------------------------------------- /solutions/InventoryCheckOut/src/webparts/inventoryCheckOutWebPart/components/InventoryList/InventoryList.module.scss: -------------------------------------------------------------------------------- 1 | .inventoryList{ 2 | .inventoryListTitle { 3 | padding-bottom: 4px; 4 | } 5 | ul { 6 | margin: 12px 6px; 7 | 8 | list-style-type: none !important; 9 | -webkit-padding-start:6px; 10 | li{list-style-type: none !important;display:block;cursor: pointer;} 11 | } 12 | .mycheckoutitems { 13 | padding-left:12px !important; 14 | -webkit-padding-start:20px; 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /solutions/InventoryCheckOut/src/webparts/inventoryCheckOutWebPart/loc/en-us.js: -------------------------------------------------------------------------------- 1 | define([], function() { 2 | return { 3 | "PropertyPaneDescription": "Description", 4 | "BasicGroupName": "Group Name", 5 | "DescriptionFieldLabel": "Description Field" 6 | } 7 | }); -------------------------------------------------------------------------------- /solutions/InventoryCheckOut/src/webparts/inventoryCheckOutWebPart/loc/mystrings.d.ts: -------------------------------------------------------------------------------- 1 | declare interface IInventoryCheckOutWebPartStrings { 2 | PropertyPaneDescription: string; 3 | BasicGroupName: string; 4 | DescriptionFieldLabel: string; 5 | } 6 | 7 | declare module 'inventoryCheckOutWebPartStrings' { 8 | const strings: IInventoryCheckOutWebPartStrings; 9 | export = strings; 10 | } 11 | -------------------------------------------------------------------------------- /solutions/InventoryCheckOut/src/webparts/inventoryCheckOutWebPart/tests/InventoryCheckOutWebPart.test.ts: -------------------------------------------------------------------------------- 1 | /// 2 | 3 | import { assert } from 'chai'; 4 | 5 | describe('InventoryCheckOutWebPartWebPart', () => { 6 | it('should do something', () => { 7 | assert.ok(true); 8 | }); 9 | }); 10 | -------------------------------------------------------------------------------- /solutions/InventoryCheckOut/teams/5034eacb-edff-4372-b956-dd98bce7f6d6_color.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnp/sp-dev-solutions/d3815add98c1b8641724e74fd97814276ed7a901/solutions/InventoryCheckOut/teams/5034eacb-edff-4372-b956-dd98bce7f6d6_color.png -------------------------------------------------------------------------------- /solutions/InventoryCheckOut/teams/5034eacb-edff-4372-b956-dd98bce7f6d6_outline.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnp/sp-dev-solutions/d3815add98c1b8641724e74fd97814276ed7a901/solutions/InventoryCheckOut/teams/5034eacb-edff-4372-b956-dd98bce7f6d6_outline.png -------------------------------------------------------------------------------- /solutions/LeadsLOBSolution/assets/messaging-extension.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnp/sp-dev-solutions/d3815add98c1b8641724e74fd97814276ed7a901/solutions/LeadsLOBSolution/assets/messaging-extension.gif -------------------------------------------------------------------------------- /solutions/LeadsLOBSolution/assets/personal-app-solution.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnp/sp-dev-solutions/d3815add98c1b8641724e74fd97814276ed7a901/solutions/LeadsLOBSolution/assets/personal-app-solution.png -------------------------------------------------------------------------------- /solutions/LeadsLOBSolution/assets/teams-tab-solution.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnp/sp-dev-solutions/d3815add98c1b8641724e74fd97814276ed7a901/solutions/LeadsLOBSolution/assets/teams-tab-solution.png -------------------------------------------------------------------------------- /solutions/LeadsLOBSolution/assets/webpart-solution.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnp/sp-dev-solutions/d3815add98c1b8641724e74fd97814276ed7a901/solutions/LeadsLOBSolution/assets/webpart-solution.png -------------------------------------------------------------------------------- /solutions/LeadsLOBSolution/bot/.deployment: -------------------------------------------------------------------------------- 1 | [config] 2 | command = deploy.cmd -------------------------------------------------------------------------------- /solutions/LeadsLOBSolution/bot/.gitignore: -------------------------------------------------------------------------------- 1 | # do not include the node modules in Git 2 | node_modules 3 | 4 | # do not include the package in Git 5 | package 6 | 7 | # do not include the Connectors Json Db file 8 | connectors.json 9 | 10 | # do not include dist files 11 | dist 12 | -------------------------------------------------------------------------------- /solutions/LeadsLOBSolution/bot/.yo-rc.json: -------------------------------------------------------------------------------- 1 | { 2 | "generator-teams": { 3 | "promptValues": { 4 | "developer": "Microsoft 365 PnP", 5 | "unitTestsEnabled": false, 6 | "useAzureAppInsights": false 7 | }, 8 | "libraryName": "leadsBot", 9 | "generator-version": "2.13.0" 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /solutions/LeadsLOBSolution/bot/src/app/TeamsAppsComponents.ts: -------------------------------------------------------------------------------- 1 | // Components will be added here 2 | export const nonce = {}; // Do not remove! 3 | // Automatically added for the leadsBot bot 4 | export * from "./leadsBot/LeadsBot"; 5 | -------------------------------------------------------------------------------- /solutions/LeadsLOBSolution/bot/src/app/leadsBot/dialogs/HelpDialog.ts: -------------------------------------------------------------------------------- 1 | import { Dialog, DialogContext, DialogTurnResult } from "botbuilder-dialogs"; 2 | 3 | export default class HelpDialog extends Dialog { 4 | constructor(dialogId: string) { 5 | super(dialogId); 6 | } 7 | 8 | public async beginDialog(context: DialogContext, options?: any): Promise { 9 | context.context.sendActivity(`I'm just a friendly but rather stupid bot, and right now I don't have any valuable help for you!`); 10 | return await context.endDialog(); 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /solutions/LeadsLOBSolution/bot/src/app/leadsBot/dialogs/WelcomeDialog.ts: -------------------------------------------------------------------------------- 1 | const WelcomeCard = require("./WelcomeCard.json"); 2 | 3 | export default WelcomeCard; 4 | -------------------------------------------------------------------------------- /solutions/LeadsLOBSolution/bot/src/app/scripts/client.ts: -------------------------------------------------------------------------------- 1 | // Default entry point for client scripts 2 | // Automatically generated 3 | // Please avoid from modifying to much... 4 | 5 | -------------------------------------------------------------------------------- /solutions/LeadsLOBSolution/bot/src/app/web/assets/icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnp/sp-dev-solutions/d3815add98c1b8641724e74fd97814276ed7a901/solutions/LeadsLOBSolution/bot/src/app/web/assets/icon.png -------------------------------------------------------------------------------- /solutions/LeadsLOBSolution/bot/src/manifest/icon-color.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnp/sp-dev-solutions/d3815add98c1b8641724e74fd97814276ed7a901/solutions/LeadsLOBSolution/bot/src/manifest/icon-color.png -------------------------------------------------------------------------------- /solutions/LeadsLOBSolution/bot/src/manifest/icon-outline.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnp/sp-dev-solutions/d3815add98c1b8641724e74fd97814276ed7a901/solutions/LeadsLOBSolution/bot/src/manifest/icon-outline.png -------------------------------------------------------------------------------- /solutions/LeadsLOBSolution/bot/tsconfig-client.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | "module": "commonjs", 4 | "target": "es5", 5 | "moduleResolution": "node", 6 | "noImplicitAny": false, 7 | "strictNullChecks": true, 8 | "jsx": "react", 9 | "sourceMap": true 10 | }, 11 | "include": [ 12 | "src/app/scripts", 13 | "src/*.d.ts" 14 | ], 15 | "exclude": [ 16 | "node_modules" 17 | ] 18 | } -------------------------------------------------------------------------------- /solutions/LeadsLOBSolution/bot/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | "module": "commonjs", 4 | "target": "es6", 5 | "moduleResolution": "node", 6 | "noImplicitAny": false, 7 | "strictNullChecks": true, 8 | "jsx": "react", 9 | "sourceMap": true, 10 | "experimentalDecorators": true, 11 | "resolveJsonModule": true, 12 | }, 13 | "exclude": [ 14 | "node_modules" 15 | ] 16 | } -------------------------------------------------------------------------------- /solutions/LeadsLOBSolution/webpart/.gitignore: -------------------------------------------------------------------------------- 1 | # Logs 2 | logs 3 | *.log 4 | npm-debug.log* 5 | 6 | # Dependency directories 7 | node_modules 8 | 9 | # Build generated files 10 | dist 11 | lib 12 | temp 13 | debug 14 | 15 | # Coverage directory used by tools like istanbul 16 | coverage 17 | 18 | # OSX 19 | .DS_Store 20 | 21 | # Visual Studio files 22 | .ntvs_analysis.dat 23 | .vs 24 | bin 25 | obj 26 | 27 | # Resx Generated Code 28 | *.resx.ts 29 | 30 | # Styles Generated Code 31 | *.scss.ts 32 | -------------------------------------------------------------------------------- /solutions/LeadsLOBSolution/webpart/.vscode/extensions.json: -------------------------------------------------------------------------------- 1 | { 2 | "recommendations": [ 3 | "msjsdiag.debugger-for-chrome" 4 | ] 5 | } -------------------------------------------------------------------------------- /solutions/LeadsLOBSolution/webpart/.vscode/settings.json: -------------------------------------------------------------------------------- 1 | // Place your settings in this file to overwrite default and user settings. 2 | { 3 | // Configure glob patterns for excluding files and folders in the file explorer. 4 | "files.exclude": { 5 | "**/.git": true, 6 | "**/.DS_Store": true, 7 | "**/bower_components": true, 8 | "**/coverage": true, 9 | "**/lib-amd": true, 10 | "src/**/*.scss.ts": true 11 | }, 12 | "typescript.tsdk": ".\\node_modules\\typescript\\lib" 13 | } -------------------------------------------------------------------------------- /solutions/LeadsLOBSolution/webpart/.yo-rc.json: -------------------------------------------------------------------------------- 1 | { 2 | "@microsoft/generator-sharepoint": { 3 | "plusBeta": true, 4 | "isCreatingSolution": false, 5 | "environment": "spo", 6 | "version": "1.10.0", 7 | "libraryName": "leads-lob", 8 | "libraryId": "2dc4f7fe-cd2e-4f2a-8a92-86acc494e909", 9 | "packageManager": "npm", 10 | "isDomainIsolated": false, 11 | "componentType": "webpart" 12 | } 13 | } -------------------------------------------------------------------------------- /solutions/LeadsLOBSolution/webpart/config/copy-assets.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "https://developer.microsoft.com/json-schemas/spfx-build/copy-assets.schema.json", 3 | "deployCdnPath": "temp/deploy" 4 | } 5 | -------------------------------------------------------------------------------- /solutions/LeadsLOBSolution/webpart/config/deploy-azure-storage.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "https://developer.microsoft.com/json-schemas/spfx-build/deploy-azure-storage.schema.json", 3 | "workingDir": "./temp/deploy/", 4 | "account": "", 5 | "container": "leads-lob", 6 | "accessKey": "" 7 | } -------------------------------------------------------------------------------- /solutions/LeadsLOBSolution/webpart/config/serve.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "https://developer.microsoft.com/json-schemas/core-build/serve.schema.json", 3 | "port": 4321, 4 | "https": true, 5 | "initialPage": "https://localhost:5432/workbench", 6 | "api": { 7 | "port": 5432, 8 | "entryPath": "node_modules/@microsoft/sp-webpart-workbench/lib/api/" 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /solutions/LeadsLOBSolution/webpart/config/write-manifests.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "https://developer.microsoft.com/json-schemas/spfx-build/write-manifests.schema.json", 3 | "cdnBasePath": "" 4 | } -------------------------------------------------------------------------------- /solutions/LeadsLOBSolution/webpart/gulpfile.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | const gulp = require('gulp'); 4 | const build = require('@microsoft/sp-build-web'); 5 | build.addSuppression(`Warning - [sass] The local CSS class 'ms-Grid' is not camelCase and will not be type-safe.`); 6 | 7 | build.initialize(gulp); 8 | -------------------------------------------------------------------------------- /solutions/LeadsLOBSolution/webpart/src/Lead.ts: -------------------------------------------------------------------------------- 1 | export interface Lead { 2 | account: string; 3 | change: number; 4 | comments: LeadComment[]; 5 | createdBy: Person; 6 | createdOn: string; 7 | description?: string; 8 | id: string; 9 | percentComplete: number; 10 | requiresAttention?: boolean; 11 | title: string; 12 | url?: string; 13 | } 14 | 15 | export interface LeadComment { 16 | comment: string; 17 | createdBy: Person; 18 | date: string; 19 | } 20 | 21 | export interface Person { 22 | email: string; 23 | name: string; 24 | } -------------------------------------------------------------------------------- /solutions/LeadsLOBSolution/webpart/src/index.ts: -------------------------------------------------------------------------------- 1 | // A file is required to be in the root of the /src directory by the TypeScript compiler 2 | -------------------------------------------------------------------------------- /solutions/LeadsLOBSolution/webpart/src/webparts/leads/components/ILeadsProps.ts: -------------------------------------------------------------------------------- 1 | export interface ILeadsProps { 2 | description: string; 3 | } 4 | -------------------------------------------------------------------------------- /solutions/LeadsLOBSolution/webpart/src/webparts/leads/components/LeadCardActions/ILeadCardActionsProps.ts: -------------------------------------------------------------------------------- 1 | import { IButtonProps } from "office-ui-fabric-react/lib/Button"; 2 | 3 | export interface ILeadCardActionsProps { 4 | actions: IButtonProps[]; 5 | percentComplete: number; 6 | change: number; 7 | } 8 | -------------------------------------------------------------------------------- /solutions/LeadsLOBSolution/webpart/src/webparts/leads/components/LeadCardActions/index.ts: -------------------------------------------------------------------------------- 1 | export * from './LeadCardActions'; 2 | export * from './ILeadCardActionsProps'; -------------------------------------------------------------------------------- /solutions/LeadsLOBSolution/webpart/src/webparts/leads/components/LeadCardPreview/ILeadCardPreviewProps.ts: -------------------------------------------------------------------------------- 1 | import { IDocumentCardPreviewImage } from "office-ui-fabric-react/lib/DocumentCard"; 2 | 3 | export interface ILeadCardPreviewProps { 4 | previewItems: IDocumentCardPreviewImage[]; 5 | } -------------------------------------------------------------------------------- /solutions/LeadsLOBSolution/webpart/src/webparts/leads/components/LeadCardPreview/index.ts: -------------------------------------------------------------------------------- 1 | export * from './LeadCardPreview'; 2 | export * from './ILeadCardPreviewProps'; -------------------------------------------------------------------------------- /solutions/LeadsLOBSolution/webpart/src/webparts/leads/components/Leads/ILeadsProps.ts: -------------------------------------------------------------------------------- 1 | import { HttpClient, MSGraphClient } from "@microsoft/sp-http"; 2 | import * as microsoftTeams from '@microsoft/teams-js'; 3 | import { LeadView } from ".."; 4 | 5 | export interface ILeadsProps { 6 | demo: boolean; 7 | httpClient: HttpClient; 8 | host?: any; 9 | leadsApiUrl: string; 10 | msGraphClient: MSGraphClient; 11 | needsConfiguration: boolean; 12 | teamsContext?: typeof microsoftTeams; 13 | view?: LeadView; 14 | } 15 | -------------------------------------------------------------------------------- /solutions/LeadsLOBSolution/webpart/src/webparts/leads/components/Leads/ILeadsState.ts: -------------------------------------------------------------------------------- 1 | import { LeadView } from ".."; 2 | import { Lead } from "../../../../Lead"; 3 | 4 | export interface ILeadsState { 5 | loading: boolean; 6 | error: string | undefined; 7 | leads: Lead[]; 8 | reminderCreating: boolean; 9 | reminderCreatingResult?: string; 10 | reminderDate?: Date; 11 | reminderDialogVisible: boolean; 12 | selectedLead?: Lead; 13 | submitCardDialogVisible: boolean; 14 | view: LeadView; 15 | } -------------------------------------------------------------------------------- /solutions/LeadsLOBSolution/webpart/src/webparts/leads/components/Leads/LeadView.ts: -------------------------------------------------------------------------------- 1 | export enum LeadView { 2 | new, 3 | mostProbable, 4 | recentComments, 5 | requireAttention 6 | } -------------------------------------------------------------------------------- /solutions/LeadsLOBSolution/webpart/src/webparts/leads/components/Leads/index.ts: -------------------------------------------------------------------------------- 1 | export * from './Leads'; 2 | export * from './ILeadsProps'; 3 | export * from './ILeadsState'; 4 | export * from './LeadView'; -------------------------------------------------------------------------------- /solutions/LeadsLOBSolution/webpart/src/webparts/leads/components/index.ts: -------------------------------------------------------------------------------- 1 | export * from './LeadCardActions'; 2 | export * from './LeadCardPreview'; 3 | export * from './Leads'; -------------------------------------------------------------------------------- /solutions/LeadsLOBSolution/webpart/src/webparts/leads/loc/en-us.js: -------------------------------------------------------------------------------- 1 | define([], function() { 2 | return { 3 | "PropertyPaneDescription": "Description", 4 | "BasicGroupName": "Group Name", 5 | "DescriptionFieldLabel": "Description Field" 6 | } 7 | }); -------------------------------------------------------------------------------- /solutions/LeadsLOBSolution/webpart/src/webparts/leads/loc/mystrings.d.ts: -------------------------------------------------------------------------------- 1 | declare interface ILeadsWebPartStrings { 2 | PropertyPaneDescription: string; 3 | BasicGroupName: string; 4 | DescriptionFieldLabel: string; 5 | } 6 | 7 | declare module 'LeadsWebPartStrings' { 8 | const strings: ILeadsWebPartStrings; 9 | export = strings; 10 | } 11 | -------------------------------------------------------------------------------- /solutions/LeadsLOBSolution/webpart/src/webparts/leadsSettings/components/LeadsSettings/ILeadsSettingsProps.ts: -------------------------------------------------------------------------------- 1 | import { HttpClient, SPHttpClient } from "@microsoft/sp-http"; 2 | 3 | export interface ILeadsSettingsProps { 4 | httpClient: HttpClient; 5 | spHttpClient: SPHttpClient; 6 | webUrl: string; 7 | } 8 | -------------------------------------------------------------------------------- /solutions/LeadsLOBSolution/webpart/src/webparts/leadsSettings/components/LeadsSettings/ILeadsSettingsState.ts: -------------------------------------------------------------------------------- 1 | import { LeadsSettings } from "../../../../LeadsSettings"; 2 | 3 | export interface ILeadsSettingsState extends LeadsSettings { 4 | apiUrl?: string; 5 | connectionStatus?: string; 6 | demo: boolean; 7 | needsConfiguration: boolean; 8 | quarterlyOnly: boolean; 9 | region?: string; 10 | } -------------------------------------------------------------------------------- /solutions/LeadsLOBSolution/webpart/src/webparts/leadsSettings/components/LeadsSettings/LeadsSettings.module.scss: -------------------------------------------------------------------------------- 1 | @import '~office-ui-fabric-react/dist/sass/References.scss'; 2 | 3 | .leadsSettings { 4 | max-width: 400px; 5 | 6 | .title { 7 | @include ms-font-xxl; 8 | padding-bottom: 0.5em; 9 | } 10 | 11 | .section { 12 | margin: 1em 0; 13 | -webkit-margin-collapse: separate; 14 | } 15 | 16 | .subTitle { 17 | @include ms-font-l; 18 | margin-bottom: 0.5em; 19 | } 20 | 21 | button.testConnection { 22 | margin-top: 0.5em; 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /solutions/LeadsLOBSolution/webpart/src/webparts/leadsSettings/components/LeadsSettings/index.ts: -------------------------------------------------------------------------------- 1 | export * from './ILeadsSettingsProps'; 2 | export * from './ILeadsSettingsState'; 3 | export * from './LeadsSettings'; -------------------------------------------------------------------------------- /solutions/LeadsLOBSolution/webpart/src/webparts/leadsSettings/loc/en-us.js: -------------------------------------------------------------------------------- 1 | define([], function() { 2 | return { 3 | "PropertyPaneDescription": "Description", 4 | "BasicGroupName": "Group Name", 5 | "DescriptionFieldLabel": "Description Field" 6 | } 7 | }); -------------------------------------------------------------------------------- /solutions/LeadsLOBSolution/webpart/src/webparts/leadsSettings/loc/mystrings.d.ts: -------------------------------------------------------------------------------- 1 | declare interface ILeadsSettingsWebPartStrings { 2 | PropertyPaneDescription: string; 3 | BasicGroupName: string; 4 | DescriptionFieldLabel: string; 5 | } 6 | 7 | declare module 'LeadsSettingsWebPartStrings' { 8 | const strings: ILeadsSettingsWebPartStrings; 9 | export = strings; 10 | } 11 | -------------------------------------------------------------------------------- /solutions/LeadsLOBSolution/webpart/teams/LeadsManagement.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnp/sp-dev-solutions/d3815add98c1b8641724e74fd97814276ed7a901/solutions/LeadsLOBSolution/webpart/teams/LeadsManagement.zip -------------------------------------------------------------------------------- /solutions/LeadsLOBSolution/webpart/teams/e81a1b68-686e-412f-90ac-cb80f2544398_color.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnp/sp-dev-solutions/d3815add98c1b8641724e74fd97814276ed7a901/solutions/LeadsLOBSolution/webpart/teams/e81a1b68-686e-412f-90ac-cb80f2544398_color.png -------------------------------------------------------------------------------- /solutions/LeadsLOBSolution/webpart/teams/e81a1b68-686e-412f-90ac-cb80f2544398_outline.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnp/sp-dev-solutions/d3815add98c1b8641724e74fd97814276ed7a901/solutions/LeadsLOBSolution/webpart/teams/e81a1b68-686e-412f-90ac-cb80f2544398_outline.png -------------------------------------------------------------------------------- /solutions/LinksAndHandlebarsTemplate/.vscode/settings.json: -------------------------------------------------------------------------------- 1 | { 2 | "typescript.tsdk": "node_modules\\typescript\\lib" 3 | } -------------------------------------------------------------------------------- /solutions/LinksAndHandlebarsTemplate/.yo-rc.json: -------------------------------------------------------------------------------- 1 | { 2 | "@microsoft/generator-sharepoint": { 3 | "isCreatingSolution": false, 4 | "environment": "spo", 5 | "version": "1.12.1", 6 | "libraryName": "hub-web-parts", 7 | "libraryId": "520c2090-be2a-4538-b2b0-fd3eeca0cea0", 8 | "packageManager": "npm", 9 | "isDomainIsolated": false, 10 | "componentType": "webpart" 11 | } 12 | } -------------------------------------------------------------------------------- /solutions/LinksAndHandlebarsTemplate/assets/box_button.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnp/sp-dev-solutions/d3815add98c1b8641724e74fd97814276ed7a901/solutions/LinksAndHandlebarsTemplate/assets/box_button.png -------------------------------------------------------------------------------- /solutions/LinksAndHandlebarsTemplate/assets/featured_content.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnp/sp-dev-solutions/d3815add98c1b8641724e74fd97814276ed7a901/solutions/LinksAndHandlebarsTemplate/assets/featured_content.png -------------------------------------------------------------------------------- /solutions/LinksAndHandlebarsTemplate/assets/featured_content_small_column.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnp/sp-dev-solutions/d3815add98c1b8641724e74fd97814276ed7a901/solutions/LinksAndHandlebarsTemplate/assets/featured_content_small_column.png -------------------------------------------------------------------------------- /solutions/LinksAndHandlebarsTemplate/assets/featured_content_stacked.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnp/sp-dev-solutions/d3815add98c1b8641724e74fd97814276ed7a901/solutions/LinksAndHandlebarsTemplate/assets/featured_content_stacked.png -------------------------------------------------------------------------------- /solutions/LinksAndHandlebarsTemplate/assets/hub_links_edit_item.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnp/sp-dev-solutions/d3815add98c1b8641724e74fd97814276ed7a901/solutions/LinksAndHandlebarsTemplate/assets/hub_links_edit_item.png -------------------------------------------------------------------------------- /solutions/LinksAndHandlebarsTemplate/assets/hub_links_grouped.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnp/sp-dev-solutions/d3815add98c1b8641724e74fd97814276ed7a901/solutions/LinksAndHandlebarsTemplate/assets/hub_links_grouped.png -------------------------------------------------------------------------------- /solutions/LinksAndHandlebarsTemplate/assets/hub_links_icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnp/sp-dev-solutions/d3815add98c1b8641724e74fd97814276ed7a901/solutions/LinksAndHandlebarsTemplate/assets/hub_links_icon.png -------------------------------------------------------------------------------- /solutions/LinksAndHandlebarsTemplate/assets/hub_links_list.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnp/sp-dev-solutions/d3815add98c1b8641724e74fd97814276ed7a901/solutions/LinksAndHandlebarsTemplate/assets/hub_links_list.png -------------------------------------------------------------------------------- /solutions/LinksAndHandlebarsTemplate/assets/hub_template.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnp/sp-dev-solutions/d3815add98c1b8641724e74fd97814276ed7a901/solutions/LinksAndHandlebarsTemplate/assets/hub_template.png -------------------------------------------------------------------------------- /solutions/LinksAndHandlebarsTemplate/config/copy-assets.json: -------------------------------------------------------------------------------- 1 | { 2 | "deployCdnPath": "./release/assets/" 3 | } -------------------------------------------------------------------------------- /solutions/LinksAndHandlebarsTemplate/config/deploy-azure-storage.json: -------------------------------------------------------------------------------- 1 | { 2 | "workingDir": "./release/assets/", 3 | "account": "", 4 | "container": "", 5 | "accessKey": "" 6 | } -------------------------------------------------------------------------------- /solutions/LinksAndHandlebarsTemplate/config/serve.json: -------------------------------------------------------------------------------- 1 | { 2 | "port": 4321, 3 | "initialPage": "https://localhost:5432/workbench", 4 | "https": true, 5 | "api": { 6 | "port": 5432, 7 | "entryPath": "node_modules/@microsoft/sp-webpart-workbench/lib/api/" 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /solutions/LinksAndHandlebarsTemplate/config/write-manifests.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "https://dev.office.com/json-schemas/spfx-build/write-manifests.schema.json", 3 | "cdnBasePath": "" 4 | } -------------------------------------------------------------------------------- /solutions/LinksAndHandlebarsTemplate/hub-web-parts.sppkg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnp/sp-dev-solutions/d3815add98c1b8641724e74fd97814276ed7a901/solutions/LinksAndHandlebarsTemplate/hub-web-parts.sppkg -------------------------------------------------------------------------------- /solutions/LinksAndHandlebarsTemplate/src/components/LinkPickerPanel/ApprovedImageLibs.config: -------------------------------------------------------------------------------- 1 | [{ 2 | "libUrl": "https://.sharepoint.com//_api/web/lists/getbytitle('ApprovedImages')/items?$select=FieldValuesAsText/FileRef,FieldValuesAsText/FileLeafRef,Title&$expand=FieldValuesAsText", 3 | "cdnUrl": "" 4 | }] -------------------------------------------------------------------------------- /solutions/LinksAndHandlebarsTemplate/src/components/LinkPickerPanel/ILinkPickerPanel.ts: -------------------------------------------------------------------------------- 1 | export interface ILinkPickerChoice { 2 | name: string; 3 | url: string; 4 | } 5 | 6 | export interface ILinkPickerPanel { 7 | pickLink: () => Promise; 8 | } -------------------------------------------------------------------------------- /solutions/LinksAndHandlebarsTemplate/src/components/WebPartTitle/WebPartTitle.module.scss: -------------------------------------------------------------------------------- 1 | .wpheader { 2 | font-size: (20 / 16) * 1rem; 3 | font-weight: 600; 4 | 5 | &>div[contenteditable="true"] { 6 | display: inline-block; 7 | 8 | padding: .25em .5em .35em 0; 9 | 10 | outline: 1px dotted #ababab; 11 | width: 100%; 12 | } 13 | } -------------------------------------------------------------------------------- /solutions/LinksAndHandlebarsTemplate/src/index.ts: -------------------------------------------------------------------------------- 1 | // A file is required to be in the root of the /src directory by the TypeScript compiler 2 | -------------------------------------------------------------------------------- /solutions/LinksAndHandlebarsTemplate/src/webparts/hubLinks/components/layouts/HubLinksLayout.ts: -------------------------------------------------------------------------------- 1 | import { IHubLinksItem, HubLinksGroupItem } from '../IHubLinksItem'; 2 | 3 | export enum HubLinksLayout{ 4 | RoundIconItemLayout, 5 | ListLayout, 6 | GroupedListLayout, 7 | TileLayout, 8 | SquareIconItemLayout 9 | } 10 | 11 | export interface IHubLinksLayout{ 12 | render(items:IHubLinksItem[] | HubLinksGroupItem[], isEditMode: boolean):JSX.Element; 13 | } -------------------------------------------------------------------------------- /solutions/LinksAndHandlebarsTemplate/teams/01c3854e-1d25-4325-8891-fbb4c5bfe1aa_color.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnp/sp-dev-solutions/d3815add98c1b8641724e74fd97814276ed7a901/solutions/LinksAndHandlebarsTemplate/teams/01c3854e-1d25-4325-8891-fbb4c5bfe1aa_color.png -------------------------------------------------------------------------------- /solutions/LinksAndHandlebarsTemplate/teams/01c3854e-1d25-4325-8891-fbb4c5bfe1aa_outline.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnp/sp-dev-solutions/d3815add98c1b8641724e74fd97814276ed7a901/solutions/LinksAndHandlebarsTemplate/teams/01c3854e-1d25-4325-8891-fbb4c5bfe1aa_outline.png -------------------------------------------------------------------------------- /solutions/LinksAndHandlebarsTemplate/teams/4a8180df-c6b5-413e-a7cf-e5f4af80b1bf_color.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnp/sp-dev-solutions/d3815add98c1b8641724e74fd97814276ed7a901/solutions/LinksAndHandlebarsTemplate/teams/4a8180df-c6b5-413e-a7cf-e5f4af80b1bf_color.png -------------------------------------------------------------------------------- /solutions/LinksAndHandlebarsTemplate/teams/4a8180df-c6b5-413e-a7cf-e5f4af80b1bf_outline.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnp/sp-dev-solutions/d3815add98c1b8641724e74fd97814276ed7a901/solutions/LinksAndHandlebarsTemplate/teams/4a8180df-c6b5-413e-a7cf-e5f4af80b1bf_outline.png -------------------------------------------------------------------------------- /solutions/LinksAndHandlebarsTemplate/teams/6e7296cf-4ba1-4c8e-8d21-41fe5f23900b_color.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnp/sp-dev-solutions/d3815add98c1b8641724e74fd97814276ed7a901/solutions/LinksAndHandlebarsTemplate/teams/6e7296cf-4ba1-4c8e-8d21-41fe5f23900b_color.png -------------------------------------------------------------------------------- /solutions/LinksAndHandlebarsTemplate/teams/6e7296cf-4ba1-4c8e-8d21-41fe5f23900b_outline.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnp/sp-dev-solutions/d3815add98c1b8641724e74fd97814276ed7a901/solutions/LinksAndHandlebarsTemplate/teams/6e7296cf-4ba1-4c8e-8d21-41fe5f23900b_outline.png -------------------------------------------------------------------------------- /solutions/LinksAndHandlebarsTemplate/teams/925b8fdb-3c50-4035-b15e-1baf4c15e994_color.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnp/sp-dev-solutions/d3815add98c1b8641724e74fd97814276ed7a901/solutions/LinksAndHandlebarsTemplate/teams/925b8fdb-3c50-4035-b15e-1baf4c15e994_color.png -------------------------------------------------------------------------------- /solutions/LinksAndHandlebarsTemplate/teams/925b8fdb-3c50-4035-b15e-1baf4c15e994_outline.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnp/sp-dev-solutions/d3815add98c1b8641724e74fd97814276ed7a901/solutions/LinksAndHandlebarsTemplate/teams/925b8fdb-3c50-4035-b15e-1baf4c15e994_outline.png -------------------------------------------------------------------------------- /solutions/MultilingualPages/Converter/MultilingualPagesConverter/locals.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnp/sp-dev-solutions/d3815add98c1b8641724e74fd97814276ed7a901/solutions/MultilingualPages/Converter/MultilingualPagesConverter/locals.json -------------------------------------------------------------------------------- /solutions/MultilingualPages/LanguageSettings.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnp/sp-dev-solutions/d3815add98c1b8641724e74fd97814276ed7a901/solutions/MultilingualPages/LanguageSettings.png -------------------------------------------------------------------------------- /solutions/MultilingualPages/SPFxExt/.gitignore: -------------------------------------------------------------------------------- 1 | # Logs 2 | logs 3 | *.log 4 | npm-debug.log* 5 | 6 | # Dependency directories 7 | node_modules 8 | 9 | # Build generated files 10 | dist 11 | lib 12 | solution 13 | temp 14 | *.sppkg 15 | 16 | # Coverage directory used by tools like istanbul 17 | coverage 18 | 19 | # OSX 20 | .DS_Store 21 | 22 | # Visual Studio files 23 | .ntvs_analysis.dat 24 | .vs 25 | bin 26 | obj 27 | 28 | # Resx Generated Code 29 | *.resx.ts 30 | 31 | # Styles Generated Code 32 | *.scss.ts 33 | -------------------------------------------------------------------------------- /solutions/MultilingualPages/SPFxExt/.yo-rc.json: -------------------------------------------------------------------------------- 1 | { 2 | "@microsoft/generator-sharepoint": { 3 | "isCreatingSolution": false, 4 | "environment": "spo", 5 | "version": "1.9.1", 6 | "libraryName": "multilingual-sp-fx-ext", 7 | "libraryId": "07280005-a4b4-4d18-9154-4d7290d40f99", 8 | "packageManager": "npm", 9 | "isDomainIsolated": false, 10 | "componentType": "webpart" 11 | } 12 | } -------------------------------------------------------------------------------- /solutions/MultilingualPages/SPFxExt/assets/ML_1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnp/sp-dev-solutions/d3815add98c1b8641724e74fd97814276ed7a901/solutions/MultilingualPages/SPFxExt/assets/ML_1.png -------------------------------------------------------------------------------- /solutions/MultilingualPages/SPFxExt/assets/ML_10.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnp/sp-dev-solutions/d3815add98c1b8641724e74fd97814276ed7a901/solutions/MultilingualPages/SPFxExt/assets/ML_10.png -------------------------------------------------------------------------------- /solutions/MultilingualPages/SPFxExt/assets/ML_11.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnp/sp-dev-solutions/d3815add98c1b8641724e74fd97814276ed7a901/solutions/MultilingualPages/SPFxExt/assets/ML_11.png -------------------------------------------------------------------------------- /solutions/MultilingualPages/SPFxExt/assets/ML_12.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnp/sp-dev-solutions/d3815add98c1b8641724e74fd97814276ed7a901/solutions/MultilingualPages/SPFxExt/assets/ML_12.png -------------------------------------------------------------------------------- /solutions/MultilingualPages/SPFxExt/assets/ML_13.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnp/sp-dev-solutions/d3815add98c1b8641724e74fd97814276ed7a901/solutions/MultilingualPages/SPFxExt/assets/ML_13.png -------------------------------------------------------------------------------- /solutions/MultilingualPages/SPFxExt/assets/ML_14.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnp/sp-dev-solutions/d3815add98c1b8641724e74fd97814276ed7a901/solutions/MultilingualPages/SPFxExt/assets/ML_14.png -------------------------------------------------------------------------------- /solutions/MultilingualPages/SPFxExt/assets/ML_2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnp/sp-dev-solutions/d3815add98c1b8641724e74fd97814276ed7a901/solutions/MultilingualPages/SPFxExt/assets/ML_2.png -------------------------------------------------------------------------------- /solutions/MultilingualPages/SPFxExt/assets/ML_3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnp/sp-dev-solutions/d3815add98c1b8641724e74fd97814276ed7a901/solutions/MultilingualPages/SPFxExt/assets/ML_3.png -------------------------------------------------------------------------------- /solutions/MultilingualPages/SPFxExt/assets/ML_4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnp/sp-dev-solutions/d3815add98c1b8641724e74fd97814276ed7a901/solutions/MultilingualPages/SPFxExt/assets/ML_4.png -------------------------------------------------------------------------------- /solutions/MultilingualPages/SPFxExt/assets/ML_5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnp/sp-dev-solutions/d3815add98c1b8641724e74fd97814276ed7a901/solutions/MultilingualPages/SPFxExt/assets/ML_5.png -------------------------------------------------------------------------------- /solutions/MultilingualPages/SPFxExt/assets/ML_6.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnp/sp-dev-solutions/d3815add98c1b8641724e74fd97814276ed7a901/solutions/MultilingualPages/SPFxExt/assets/ML_6.png -------------------------------------------------------------------------------- /solutions/MultilingualPages/SPFxExt/assets/ML_7.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnp/sp-dev-solutions/d3815add98c1b8641724e74fd97814276ed7a901/solutions/MultilingualPages/SPFxExt/assets/ML_7.png -------------------------------------------------------------------------------- /solutions/MultilingualPages/SPFxExt/assets/ML_8.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnp/sp-dev-solutions/d3815add98c1b8641724e74fd97814276ed7a901/solutions/MultilingualPages/SPFxExt/assets/ML_8.png -------------------------------------------------------------------------------- /solutions/MultilingualPages/SPFxExt/assets/ML_9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnp/sp-dev-solutions/d3815add98c1b8641724e74fd97814276ed7a901/solutions/MultilingualPages/SPFxExt/assets/ML_9.png -------------------------------------------------------------------------------- /solutions/MultilingualPages/SPFxExt/config/copy-assets.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "https://developer.microsoft.com/json-schemas/spfx-build/copy-assets.schema.json", 3 | "deployCdnPath": "temp/deploy" 4 | } 5 | -------------------------------------------------------------------------------- /solutions/MultilingualPages/SPFxExt/config/deploy-azure-storage.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "https://developer.microsoft.com/json-schemas/spfx-build/deploy-azure-storage.schema.json", 3 | "workingDir": "./temp/deploy/", 4 | "account": "", 5 | "container": "multilingual-sp-fx-ext", 6 | "accessKey": "" 7 | } -------------------------------------------------------------------------------- /solutions/MultilingualPages/SPFxExt/config/write-manifests.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "https://developer.microsoft.com/json-schemas/spfx-build/write-manifests.schema.json", 3 | "cdnBasePath": "" 4 | } -------------------------------------------------------------------------------- /solutions/MultilingualPages/SPFxExt/gulpfile.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | if(process.argv.indexOf('dist') !== -1){ 4 | process.argv.push("--ship"); 5 | } 6 | 7 | const gulp = require('gulp'); 8 | const gulpSequence = require('gulp-sequence'); 9 | const build = require('@microsoft/sp-build-web'); 10 | build.addSuppression(`Warning - [sass] The local CSS class 'ms-Grid' is not camelCase and will not be type-safe.`); 11 | 12 | gulp.task('dist', gulpSequence('clean', 'bundle', 'package-solution')); 13 | 14 | build.initialize(gulp); 15 | 16 | -------------------------------------------------------------------------------- /solutions/MultilingualPages/SPFxExt/sharepoint/assets/clientsideinstance.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /solutions/MultilingualPages/SPFxExt/sharepoint/assets/elements.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 8 | 9 | -------------------------------------------------------------------------------- /solutions/MultilingualPages/SPFxExt/src/common/components/LinkPickerPanel/ILinkPickerPanel.ts: -------------------------------------------------------------------------------- 1 | export interface ILinkPickerChoice { 2 | name: string; 3 | url: string; 4 | } 5 | 6 | export interface ILinkPickerPanel { 7 | pickLink: () => Promise; 8 | } -------------------------------------------------------------------------------- /solutions/MultilingualPages/SPFxExt/src/extensions/multilingualExtension/loc/en-us.js: -------------------------------------------------------------------------------- 1 | define([], function() { 2 | return { 3 | "Title": "MultilingualExtensionApplicationCustomizer" 4 | } 5 | }); -------------------------------------------------------------------------------- /solutions/MultilingualPages/SPFxExt/src/extensions/multilingualExtension/loc/myStrings.d.ts: -------------------------------------------------------------------------------- 1 | declare interface IMultilingualExtensionApplicationCustomizerStrings { 2 | Title: string; 3 | } 4 | 5 | declare module 'MultilingualExtensionApplicationCustomizerStrings' { 6 | const strings: IMultilingualExtensionApplicationCustomizerStrings; 7 | export = strings; 8 | } 9 | -------------------------------------------------------------------------------- /solutions/MultilingualPages/SPFxExt/src/index.ts: -------------------------------------------------------------------------------- 1 | // A file is required to be in the root of the /src directory by the TypeScript compiler 2 | -------------------------------------------------------------------------------- /solutions/MultilingualPages/SPFxExt/src/webparts/multilingualRedirector/components/IMultilingualRedirectorProps.ts: -------------------------------------------------------------------------------- 1 | export interface IMultilingualRedirectorProps { 2 | description: string; 3 | } 4 | -------------------------------------------------------------------------------- /solutions/MultilingualPages/SPFxExt/src/webparts/multilingualRedirector/components/MultilingualRedirector.module.scss: -------------------------------------------------------------------------------- 1 | @import '~office-ui-fabric-react/dist/sass/References.scss'; 2 | 3 | .multilingualRedirector { 4 | .propLanguage { 5 | display: flex; 6 | 7 | align-content: flex-start; 8 | flex: 1; 9 | flex-wrap: nowrap; 10 | 11 | .propLangValue { 12 | flex-grow: 1; 13 | } 14 | 15 | .propLangButton { 16 | width: 35px; 17 | margin-left: 5px; 18 | align-self: flex-end; 19 | } 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /solutions/MultilingualPages/SPFxExt/src/webparts/multilingualRedirector/loc/en-us.js: -------------------------------------------------------------------------------- 1 | define([], function() { 2 | return { 3 | "PropertyPaneDescription": "Description", 4 | "BasicGroupName": "Group Name", 5 | "DescriptionFieldLabel": "Description Field" 6 | } 7 | }); -------------------------------------------------------------------------------- /solutions/MultilingualPages/SPFxExt/src/webparts/multilingualRedirector/loc/mystrings.d.ts: -------------------------------------------------------------------------------- 1 | declare interface IMultilingualRedirectorWebPartStrings { 2 | PropertyPaneDescription: string; 3 | BasicGroupName: string; 4 | DescriptionFieldLabel: string; 5 | } 6 | 7 | declare module 'MultilingualRedirectorWebPartStrings' { 8 | const strings: IMultilingualRedirectorWebPartStrings; 9 | export = strings; 10 | } 11 | -------------------------------------------------------------------------------- /solutions/MultilingualPages/SPFxExt/teams/tab20x20.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnp/sp-dev-solutions/d3815add98c1b8641724e74fd97814276ed7a901/solutions/MultilingualPages/SPFxExt/teams/tab20x20.png -------------------------------------------------------------------------------- /solutions/MultilingualPages/SPFxExt/teams/tab96x96.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnp/sp-dev-solutions/d3815add98c1b8641724e74fd97814276ed7a901/solutions/MultilingualPages/SPFxExt/teams/tab96x96.png -------------------------------------------------------------------------------- /solutions/PagesAPISolution/Csharp/MSGraphPagesAPI.csproj: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | Exe 5 | net6.0 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | -------------------------------------------------------------------------------- /solutions/PagesAPISolution/NodeJS/.gitignore: -------------------------------------------------------------------------------- 1 | debug/ -------------------------------------------------------------------------------- /solutions/PagesAPISolution/NodeJS/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "nodejs-pages-api-sample", 3 | "version": "1.0.0", 4 | "description": "", 5 | "main": "index.js", 6 | "type": "module", 7 | "scripts": { 8 | "start": "npx ts-node app.ts" 9 | }, 10 | "author": "", 11 | "license": "MIT", 12 | "dependencies": { 13 | "chalk": "^5.2.0", 14 | "dotenv": "^16.3.1", 15 | "node-fetch": "^2.6.1" 16 | }, 17 | "devDependencies": { 18 | "@tsconfig/node16": "^1.0.3", 19 | "@types/node-fetch": "^2.6.2", 20 | "ts-node": "^10.9.1", 21 | "typescript": "^4.9.3" 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /solutions/PagesAPISolution/SPFX/.gitignore: -------------------------------------------------------------------------------- 1 | # Logs 2 | logs 3 | *.log 4 | npm-debug.log* 5 | 6 | # Dependency directories 7 | node_modules 8 | 9 | # Build generated files 10 | dist 11 | lib 12 | release 13 | solution 14 | temp 15 | *.sppkg 16 | .heft 17 | 18 | # Coverage directory used by tools like istanbul 19 | coverage 20 | 21 | # OSX 22 | .DS_Store 23 | 24 | # Visual Studio files 25 | .ntvs_analysis.dat 26 | .vs 27 | bin 28 | obj 29 | 30 | # Resx Generated Code 31 | *.resx.ts 32 | 33 | # Styles Generated Code 34 | *.scss.ts 35 | -------------------------------------------------------------------------------- /solutions/PagesAPISolution/SPFX/.npmignore: -------------------------------------------------------------------------------- 1 | !dist 2 | config 3 | 4 | gulpfile.js 5 | 6 | release 7 | src 8 | temp 9 | 10 | tsconfig.json 11 | tslint.json 12 | 13 | *.log 14 | 15 | .yo-rc.json 16 | .vscode 17 | -------------------------------------------------------------------------------- /solutions/PagesAPISolution/SPFX/assets/PagesAPIWebPart.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnp/sp-dev-solutions/d3815add98c1b8641724e74fd97814276ed7a901/solutions/PagesAPISolution/SPFX/assets/PagesAPIWebPart.gif -------------------------------------------------------------------------------- /solutions/PagesAPISolution/SPFX/assets/apiAccess.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnp/sp-dev-solutions/d3815add98c1b8641724e74fd97814276ed7a901/solutions/PagesAPISolution/SPFX/assets/apiAccess.png -------------------------------------------------------------------------------- /solutions/PagesAPISolution/SPFX/assets/approveAccess.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnp/sp-dev-solutions/d3815add98c1b8641724e74fd97814276ed7a901/solutions/PagesAPISolution/SPFX/assets/approveAccess.png -------------------------------------------------------------------------------- /solutions/PagesAPISolution/SPFX/config/deploy-azure-storage.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "https://developer.microsoft.com/json-schemas/spfx-build/deploy-azure-storage.schema.json", 3 | "workingDir": "./release/assets/", 4 | "account": "", 5 | "container": "pages-api-solution", 6 | "accessKey": "" 7 | } -------------------------------------------------------------------------------- /solutions/PagesAPISolution/SPFX/config/sass.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "https://developer.microsoft.com/json-schemas/core-build/sass.schema.json" 3 | } -------------------------------------------------------------------------------- /solutions/PagesAPISolution/SPFX/config/serve.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "https://developer.microsoft.com/json-schemas/spfx-build/spfx-serve.schema.json", 3 | "port": 4321, 4 | "https": true, 5 | "initialPage": "https://localhost:5432/workbench" 6 | } 7 | -------------------------------------------------------------------------------- /solutions/PagesAPISolution/SPFX/config/write-manifests.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "https://developer.microsoft.com/json-schemas/spfx-build/write-manifests.schema.json", 3 | "cdnBasePath": "" 4 | } -------------------------------------------------------------------------------- /solutions/PagesAPISolution/SPFX/gulpfile.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | const build = require('@microsoft/sp-build-web'); 4 | 5 | build.addSuppression(`Warning - [sass] The local CSS class 'ms-Grid' is not camelCase and will not be type-safe.`); 6 | 7 | var getTasks = build.rig.getTasks; 8 | build.rig.getTasks = function () { 9 | var result = getTasks.call(build.rig); 10 | 11 | result.set('serve', result.get('serve-deprecated')); 12 | 13 | return result; 14 | }; 15 | 16 | build.initialize(require('gulp')); 17 | -------------------------------------------------------------------------------- /solutions/PagesAPISolution/SPFX/src/index.ts: -------------------------------------------------------------------------------- 1 | // A file is required to be in the root of the /src directory by the TypeScript compiler 2 | -------------------------------------------------------------------------------- /solutions/PagesAPISolution/SPFX/src/webparts/pagesApiWebPart/components/IPagesApiWebPartProps.ts: -------------------------------------------------------------------------------- 1 | import { Guid } from '@microsoft/sp-core-library'; 2 | import { MSGraphClientFactory } from '@microsoft/sp-http'; 3 | 4 | export interface IPagesApiWebPartProps { 5 | msGraphClientFactory: MSGraphClientFactory, 6 | description: string; 7 | isDarkTheme: boolean; 8 | hasTeamsContext: boolean; 9 | userDisplayName: string; 10 | siteId: Guid; 11 | } 12 | -------------------------------------------------------------------------------- /solutions/PagesAPISolution/assets/preview-scenario1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnp/sp-dev-solutions/d3815add98c1b8641724e74fd97814276ed7a901/solutions/PagesAPISolution/assets/preview-scenario1.png -------------------------------------------------------------------------------- /solutions/PagesAPISolution/assets/preview-scenario2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnp/sp-dev-solutions/d3815add98c1b8641724e74fd97814276ed7a901/solutions/PagesAPISolution/assets/preview-scenario2.png -------------------------------------------------------------------------------- /solutions/PagesAPISolution/assets/preview-scenario3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnp/sp-dev-solutions/d3815add98c1b8641724e74fd97814276ed7a901/solutions/PagesAPISolution/assets/preview-scenario3.png -------------------------------------------------------------------------------- /solutions/PagesAPISolution/assets/preview-scenario4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnp/sp-dev-solutions/d3815add98c1b8641724e74fd97814276ed7a901/solutions/PagesAPISolution/assets/preview-scenario4.png -------------------------------------------------------------------------------- /solutions/SiteDesignsStudio/.gitignore: -------------------------------------------------------------------------------- 1 | # Logs 2 | logs 3 | *.log 4 | npm-debug.log* 5 | 6 | # Dependency directories 7 | node_modules 8 | 9 | # Build generated files 10 | dist 11 | lib 12 | solution 13 | temp 14 | *.sppkg 15 | 16 | # Include .sppkg from /package 17 | !/package/site-designs-studio.sppkg 18 | 19 | # Coverage directory used by tools like istanbul 20 | coverage 21 | 22 | # OSX 23 | .DS_Store 24 | 25 | # Visual Studio files 26 | .ntvs_analysis.dat 27 | .vs 28 | bin 29 | obj 30 | 31 | # Resx Generated Code 32 | *.resx.ts 33 | 34 | # Styles Generated Code 35 | *.scss.ts 36 | -------------------------------------------------------------------------------- /solutions/SiteDesignsStudio/.vscode/extensions.json: -------------------------------------------------------------------------------- 1 | { 2 | "recommendations": [ 3 | "msjsdiag.debugger-for-chrome" 4 | ] 5 | } -------------------------------------------------------------------------------- /solutions/SiteDesignsStudio/.vscode/settings.json: -------------------------------------------------------------------------------- 1 | // Place your settings in this file to overwrite default and user settings. 2 | { 3 | // Configure glob patterns for excluding files and folders in the file explorer. 4 | "files.exclude": { 5 | "**/.git": true, 6 | "**/.DS_Store": true, 7 | "**/bower_components": true, 8 | "**/coverage": true, 9 | "**/lib-amd": true, 10 | "src/**/*.scss.ts": true 11 | }, 12 | "typescript.tsdk": ".\\node_modules\\typescript\\lib" 13 | } -------------------------------------------------------------------------------- /solutions/SiteDesignsStudio/.yo-rc.json: -------------------------------------------------------------------------------- 1 | { 2 | "@microsoft/generator-sharepoint": { 3 | "version": "1.4.1", 4 | "libraryName": "site-designs-studio", 5 | "libraryId": "726ee504-f145-43a2-99ea-b378bb4ae9ba", 6 | "environment": "spo" 7 | } 8 | } -------------------------------------------------------------------------------- /solutions/SiteDesignsStudio/config/copy-assets.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "https://dev.office.com/json-schemas/spfx-build/copy-assets.schema.json", 3 | "deployCdnPath": "temp/deploy" 4 | } 5 | -------------------------------------------------------------------------------- /solutions/SiteDesignsStudio/config/deploy-azure-storage.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "https://dev.office.com/json-schemas/spfx-build/deploy-azure-storage.schema.json", 3 | "workingDir": "./temp/deploy/", 4 | "account": "", 5 | "container": "site-designs-studio", 6 | "accessKey": "" 7 | } -------------------------------------------------------------------------------- /solutions/SiteDesignsStudio/config/package-solution.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "https://dev.office.com/json-schemas/spfx-build/package-solution.schema.json", 3 | "solution": { 4 | "name": "Site Designs Studio", 5 | "id": "0fca3b54-f16b-45e0-8970-1df13f2aeb83", 6 | "version": "1.3.0.0", 7 | "includeClientSideAssets": true, 8 | "skipFeatureDeployment": true 9 | }, 10 | "paths": { 11 | "zippedPackage": "solution/site-designs-studio.sppkg" 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /solutions/SiteDesignsStudio/config/serve.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "https://dev.office.com/json-schemas/core-build/serve.schema.json", 3 | "port": 4321, 4 | "https": true, 5 | "initialPage": "https://localhost:5432/workbench", 6 | "api": { 7 | "port": 5432, 8 | "entryPath": "node_modules/@microsoft/sp-webpart-workbench/lib/api/" 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /solutions/SiteDesignsStudio/config/write-manifests.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "https://dev.office.com/json-schemas/spfx-build/write-manifests.schema.json", 3 | "cdnBasePath": "" 4 | } -------------------------------------------------------------------------------- /solutions/SiteDesignsStudio/dev_assets/schema_loc_resources.xlsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnp/sp-dev-solutions/d3815add98c1b8641724e74fd97814276ed7a901/solutions/SiteDesignsStudio/dev_assets/schema_loc_resources.xlsx -------------------------------------------------------------------------------- /solutions/SiteDesignsStudio/docs/assets/add-action.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnp/sp-dev-solutions/d3815add98c1b8641724e74fd97814276ed7a901/solutions/SiteDesignsStudio/docs/assets/add-action.png -------------------------------------------------------------------------------- /solutions/SiteDesignsStudio/docs/assets/designs.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnp/sp-dev-solutions/d3815add98c1b8641724e74fd97814276ed7a901/solutions/SiteDesignsStudio/docs/assets/designs.png -------------------------------------------------------------------------------- /solutions/SiteDesignsStudio/docs/assets/edit-sitedesign.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnp/sp-dev-solutions/d3815add98c1b8641724e74fd97814276ed7a901/solutions/SiteDesignsStudio/docs/assets/edit-sitedesign.png -------------------------------------------------------------------------------- /solutions/SiteDesignsStudio/gulpfile.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | const gulp = require('gulp'); 4 | const build = require('@microsoft/sp-build-web'); 5 | build.addSuppression(`Warning - [sass] The local CSS class 'ms-Grid' is not camelCase and will not be type-safe.`); 6 | 7 | build.initialize(gulp); 8 | -------------------------------------------------------------------------------- /solutions/SiteDesignsStudio/package/package.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnp/sp-dev-solutions/d3815add98c1b8641724e74fd97814276ed7a901/solutions/SiteDesignsStudio/package/package.zip -------------------------------------------------------------------------------- /solutions/SiteDesignsStudio/package/site-designs-studio.sppkg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnp/sp-dev-solutions/d3815add98c1b8641724e74fd97814276ed7a901/solutions/SiteDesignsStudio/package/site-designs-studio.sppkg -------------------------------------------------------------------------------- /solutions/SiteDesignsStudio/src/webparts/siteDesignsStudio/components/ISiteDesignsStudioProps.ts: -------------------------------------------------------------------------------- 1 | import ServiceScope from '@microsoft/sp-core-library/lib/serviceScope/ServiceScope'; 2 | 3 | export interface IServiceConsumerComponentProps { 4 | serviceScope: ServiceScope; 5 | } 6 | 7 | export interface ISiteDesignsStudioProps extends IServiceConsumerComponentProps { 8 | useWizardActionGenerators: boolean; 9 | useWizardPropertyEditors: boolean; 10 | } 11 | -------------------------------------------------------------------------------- /solutions/SiteDesignsStudio/src/webparts/siteDesignsStudio/components/wizards/Wizards.module.scss: -------------------------------------------------------------------------------- 1 | @import '~@microsoft/sp-office-ui-fabric-core/dist/sass/SPFabricCore.scss'; 2 | 3 | .wizard { 4 | .createListWizard { 5 | .fieldsList { 6 | height: 40vh; 7 | overflow-y: auto; 8 | border-right: 1px solid $ms-color-themeDark; 9 | } 10 | 11 | .contentTypesList { 12 | height: 25vh; 13 | overflow-y: auto; 14 | } 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /solutions/SiteDesignsStudio/src/webparts/siteDesignsStudio/models/IApp.ts: -------------------------------------------------------------------------------- 1 | export interface IApp { 2 | id: string; 3 | title: string; 4 | } 5 | -------------------------------------------------------------------------------- /solutions/SiteDesignsStudio/src/webparts/siteDesignsStudio/models/IHubSite.ts: -------------------------------------------------------------------------------- 1 | export interface IHubSite { 2 | id: string; 3 | title: string; 4 | } 5 | -------------------------------------------------------------------------------- /solutions/SiteDesignsStudio/src/webparts/siteDesignsStudio/models/IList.ts: -------------------------------------------------------------------------------- 1 | export interface IField { 2 | Id: string; 3 | Title: string; 4 | InternalName: string; 5 | Type: string; 6 | Group: string; 7 | CustomFormatter: any; 8 | Required: boolean; 9 | Xml: string; 10 | } 11 | 12 | export interface IContentType { 13 | Description: string; 14 | Group: string; 15 | Id: string; 16 | Name: string; 17 | } 18 | 19 | export interface IList { 20 | Id: string; 21 | Title: string; 22 | Description: string; 23 | BaseTemplate: number; 24 | IsLibrary: boolean; 25 | } 26 | -------------------------------------------------------------------------------- /solutions/SiteDesignsStudio/src/webparts/siteDesignsStudio/models/ISiteScriptActionUIWrapper.ts: -------------------------------------------------------------------------------- 1 | import { ISiteScriptAction } from './ISiteScript'; 2 | 3 | export interface ISiteScriptActionUIWrapper { 4 | key: string; 5 | action: ISiteScriptAction; 6 | subactions: ISiteScriptActionUIWrapper[]; 7 | isExpanded: boolean; 8 | parentActionKey?: string; 9 | } 10 | -------------------------------------------------------------------------------- /solutions/SiteDesignsStudio/src/webparts/siteDesignsStudio/models/ITheme.ts: -------------------------------------------------------------------------------- 1 | export interface ITheme { 2 | name: string; 3 | } 4 | -------------------------------------------------------------------------------- /solutions/SolutionsLibrary/.gitattributes: -------------------------------------------------------------------------------- 1 | * text=auto -------------------------------------------------------------------------------- /solutions/SolutionsLibrary/.gitignore: -------------------------------------------------------------------------------- 1 | # Logs 2 | logs 3 | *.log 4 | npm-debug.log* 5 | 6 | # Dependency directories 7 | node_modules 8 | 9 | # Build generated files 10 | dist 11 | lib 12 | solution 13 | temp 14 | *.sppkg 15 | 16 | # Coverage directory used by tools like istanbul 17 | coverage 18 | 19 | # OSX 20 | .DS_Store 21 | 22 | # Visual Studio files 23 | .ntvs_analysis.dat 24 | .vs 25 | bin 26 | obj 27 | 28 | # Resx Generated Code 29 | *.resx.ts 30 | 31 | # Styles Generated Code 32 | *.scss.ts 33 | -------------------------------------------------------------------------------- /solutions/SolutionsLibrary/.npmignore: -------------------------------------------------------------------------------- 1 | # Folders 2 | .vscode 3 | coverage 4 | node_modules 5 | sharepoint 6 | src 7 | temp 8 | 9 | # Files 10 | *.csproj 11 | .git* 12 | .yo-rc.json 13 | gulpfile.js 14 | tsconfig.json 15 | -------------------------------------------------------------------------------- /solutions/SolutionsLibrary/.yo-rc.json: -------------------------------------------------------------------------------- 1 | { 2 | "@microsoft/generator-sharepoint": { 3 | "libraryName": "spca", 4 | "framework": "react", 5 | "version": "1.0.2", 6 | "libraryId": "fda66e22-a8d8-4263-9c41-5b54c1ef16e1" 7 | } 8 | } -------------------------------------------------------------------------------- /solutions/SolutionsLibrary/config/serve.json: -------------------------------------------------------------------------------- 1 | { 2 | "port": 4321, 3 | "initialPage": "https://localhost:5432/workbench", 4 | "https": true, 5 | "api": { 6 | "port": 5432, 7 | "entryPath": "node_modules/@microsoft/sp-webpart-workbench/lib/api/" 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /solutions/SolutionsLibrary/gulpfile.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | const gulp = require('gulp'); 4 | const build = require('@microsoft/sp-build-web'); 5 | // require('./gulpfile-spcaf'); 6 | 7 | build.initialize(gulp); 8 | -------------------------------------------------------------------------------- /solutions/SolutionsLibrary/src/index.ts: -------------------------------------------------------------------------------- 1 | export * from "./solutions/sharepointUtility"; 2 | -------------------------------------------------------------------------------- /solutions/SolutionsLibrary/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | "target": "es5", 4 | "forceConsistentCasingInFileNames": true, 5 | "module": "commonjs", 6 | "jsx": "react", 7 | "declaration": true, 8 | "sourceMap": true, 9 | "types": [ 10 | "es6-promise", 11 | "es6-collections", 12 | "webpack-env" 13 | ] 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /solutions/TimeAway/.editorconfig: -------------------------------------------------------------------------------- 1 | # EditorConfig helps developers define and maintain consistent 2 | # coding styles between different editors and IDEs 3 | # editorconfig.org 4 | 5 | root = true 6 | 7 | 8 | [*] 9 | 10 | # change these settings to your own preference 11 | indent_style = space 12 | indent_size = 2 13 | 14 | # we recommend you to keep these unchanged 15 | end_of_line = lf 16 | charset = utf-8 17 | trim_trailing_whitespace = true 18 | insert_final_newline = true 19 | 20 | [*.md] 21 | trim_trailing_whitespace = false 22 | 23 | [{package,bower}.json] 24 | indent_style = space 25 | indent_size = 2 -------------------------------------------------------------------------------- /solutions/TimeAway/.gitattributes: -------------------------------------------------------------------------------- 1 | * text=auto -------------------------------------------------------------------------------- /solutions/TimeAway/.gitignore: -------------------------------------------------------------------------------- 1 | # Logs 2 | logs 3 | *.log 4 | npm-debug.log* 5 | 6 | # Dependency directories 7 | node_modules 8 | 9 | # Build generated files 10 | dist 11 | lib 12 | solution 13 | temp 14 | *.sppkg 15 | 16 | # Coverage directory used by tools like istanbul 17 | coverage 18 | 19 | # OSX 20 | .DS_Store 21 | 22 | # Visual Studio files 23 | .ntvs_analysis.dat 24 | .vs 25 | bin 26 | obj 27 | 28 | # Resx Generated Code 29 | *.resx.ts 30 | 31 | # Styles Generated Code 32 | *.scss.ts 33 | -------------------------------------------------------------------------------- /solutions/TimeAway/.npmignore: -------------------------------------------------------------------------------- 1 | # Folders 2 | .vscode 3 | coverage 4 | node_modules 5 | sharepoint 6 | src 7 | temp 8 | 9 | # Files 10 | *.csproj 11 | .git* 12 | .yo-rc.json 13 | gulpfile.js 14 | tsconfig.json 15 | -------------------------------------------------------------------------------- /solutions/TimeAway/.vscode/extensions.json: -------------------------------------------------------------------------------- 1 | { 2 | "recommendations": [ 3 | "msjsdiag.debugger-for-chrome" 4 | ] 5 | } -------------------------------------------------------------------------------- /solutions/TimeAway/.yo-rc.json: -------------------------------------------------------------------------------- 1 | { 2 | "@microsoft/generator-sharepoint": { 3 | "libraryName": "spca", 4 | "version": "1.10.0", 5 | "libraryId": "fda66e22-a8d8-4263-9c41-5b54c1ef16e1", 6 | "isDomainIsolated": false, 7 | "isCreatingSolution": true, 8 | "packageManager": "npm", 9 | "componentType": "webpart", 10 | "environment": "spo" 11 | } 12 | } -------------------------------------------------------------------------------- /solutions/TimeAway/assets/timeaway-teams.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnp/sp-dev-solutions/d3815add98c1b8641724e74fd97814276ed7a901/solutions/TimeAway/assets/timeaway-teams.png -------------------------------------------------------------------------------- /solutions/TimeAway/assets/timeaway.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnp/sp-dev-solutions/d3815add98c1b8641724e74fd97814276ed7a901/solutions/TimeAway/assets/timeaway.png -------------------------------------------------------------------------------- /solutions/TimeAway/config/copy-assets.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "https://developer.microsoft.com/json-schemas/spfx-build/copy-assets.schema.json", 3 | "deployCdnPath": "temp/deploy" 4 | } 5 | -------------------------------------------------------------------------------- /solutions/TimeAway/config/deploy-azure-storage.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "https://developer.microsoft.com/json-schemas/spfx-build/deploy-azure-storage.schema.json", 3 | "workingDir": "./temp/deploy/", 4 | "account": "", 5 | "container": "time-away", 6 | "accessKey": "" 7 | } -------------------------------------------------------------------------------- /solutions/TimeAway/config/package-solution.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "https://developer.microsoft.com/json-schemas/spfx-build/package-solution.schema.json", 3 | "solution": { 4 | "name": "Time Away Tracking", 5 | "id": "fda66e22-a8d8-4263-9c41-5b54c1ef16e1", 6 | "version": "1.0.13.0", 7 | "iconPath": "timeawayicon.png", 8 | "isDomainIsolated": false, 9 | "includeClientSideAssets": true 10 | }, 11 | "paths": { 12 | "zippedPackage": "solution/time-away.sppkg" 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /solutions/TimeAway/config/serve.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "https://developer.microsoft.com/json-schemas/core-build/serve.schema.json", 3 | "port": 4321, 4 | "initialPage": "https://localhost:5432/workbench", 5 | "https": true, 6 | "api": { 7 | "port": 5432, 8 | "entryPath": "node_modules/@microsoft/sp-webpart-workbench/lib/api/" 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /solutions/TimeAway/config/write-manifests.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "https://developer.microsoft.com/json-schemas/spfx-build/write-manifests.schema.json", 3 | "cdnBasePath": "" 4 | } -------------------------------------------------------------------------------- /solutions/TimeAway/gulpfile.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | const gulp = require('gulp'); 4 | const build = require('@microsoft/sp-build-web'); 5 | build.addSuppression(`Warning - [sass] The local CSS class 'ms-Grid' is not camelCase and will not be type-safe.`); 6 | 7 | build.initialize(gulp); 8 | -------------------------------------------------------------------------------- /solutions/TimeAway/sharepoint/timeawayicon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnp/sp-dev-solutions/d3815add98c1b8641724e74fd97814276ed7a901/solutions/TimeAway/sharepoint/timeawayicon.png -------------------------------------------------------------------------------- /solutions/TimeAway/src/index.ts: -------------------------------------------------------------------------------- 1 | // A file is required to be in the root of the /src directory by the TypeScript compiler 2 | 3 | -------------------------------------------------------------------------------- /solutions/TimeAway/src/libraries/components/Container/IMyTimeAwayContainerProps.ts: -------------------------------------------------------------------------------- 1 | import { IMyTimeAwayDataProvider } from '../../dataProviders/IMyTimeAwayDataProvider'; 2 | import { TimePeriod } from "../../models/timeAwayModel"; 3 | import { IWebPartContext } from '@microsoft/sp-webpart-base'; 4 | 5 | export interface IMyTimeAwayContainerProps { 6 | period: TimePeriod; 7 | dataProvider: IMyTimeAwayDataProvider; 8 | context: IWebPartContext; 9 | isInitialized: boolean; 10 | } 11 | -------------------------------------------------------------------------------- /solutions/TimeAway/src/libraries/components/Container/IMyTimeAwayContainerState.ts: -------------------------------------------------------------------------------- 1 | import { IMyTimeAwayItem } from "../../models/timeAwayModel"; 2 | import { TimePeriod } from "../../models/timeAwayModel"; 3 | import { TimeAwayDialogType } from "../../models/timeAwayModel"; 4 | 5 | interface IMyTimeAwayContainerState { 6 | period?: TimePeriod; 7 | items?: IMyTimeAwayItem[]; 8 | showDialogType?: TimeAwayDialogType; 9 | isHaveAdminPermission?: boolean; 10 | submitting?: boolean; 11 | isInitialized?: boolean; 12 | } 13 | 14 | export default IMyTimeAwayContainerState; -------------------------------------------------------------------------------- /solutions/TimeAway/src/libraries/components/Container/MyTimeAwayContainer.module.scss: -------------------------------------------------------------------------------- 1 | .page{ 2 | margin: 0; 3 | i{ 4 | color: black!important; 5 | } 6 | button:before{ 7 | height: 0!important; 8 | } 9 | div[role="tabpanel"]{ 10 | padding: 0 8px!important; 11 | margin-left: 10px!important; 12 | } 13 | .addNewAction > div > span { 14 | color: #2488d8 !important; 15 | } 16 | .error{ 17 | color: red; 18 | } 19 | } -------------------------------------------------------------------------------- /solutions/TimeAway/src/libraries/components/CreateDialog/ITimeAwayCreateDialogProp.ts: -------------------------------------------------------------------------------- 1 | import { IMyTimeAwayItem } from "../../models/timeAwayModel"; 2 | import { ItemValidOperationCallback, ItemPromiseOperationCallback } from "../../models/ItemOperationCallback"; 3 | 4 | interface ITimeAwayCreateDialogProp { 5 | item?: IMyTimeAwayItem; 6 | isOpen: boolean; 7 | itemSaveOperationCallback: ItemPromiseOperationCallback; 8 | itemValidOperationCallback: ItemValidOperationCallback; 9 | } 10 | 11 | export default ITimeAwayCreateDialogProp; -------------------------------------------------------------------------------- /solutions/TimeAway/src/libraries/components/CreateDialog/ITimeAwayCreateDialogState.ts: -------------------------------------------------------------------------------- 1 | import { IMyTimeAwayItem } from "../../models/timeAwayModel"; 2 | 3 | interface ITimeAwayCreateDialogState { 4 | showDialog: boolean; 5 | isNewForm: boolean; 6 | item: IMyTimeAwayItem; 7 | errorMessage: string; 8 | submitting: boolean; 9 | } 10 | 11 | export default ITimeAwayCreateDialogState; -------------------------------------------------------------------------------- /solutions/TimeAway/src/libraries/components/DeleteDialog/IMyTimeAwayDeleteDialogProps.ts: -------------------------------------------------------------------------------- 1 | import { ItemConfirmOperationCallback } from "../../models/ItemOperationCallback"; 2 | 3 | interface IMyTimeAwayDeleteDialogProps { 4 | showDialog: boolean; 5 | itemDeleteConfirmOperationCallback: ItemConfirmOperationCallback; 6 | } 7 | 8 | export default IMyTimeAwayDeleteDialogProps; -------------------------------------------------------------------------------- /solutions/TimeAway/src/libraries/components/DeleteDialog/IMyTimeAwayDeleteDialogState.ts: -------------------------------------------------------------------------------- 1 | interface IMyTimeAwayDeleteDialogState { 2 | showDialog: boolean; 3 | } 4 | export default IMyTimeAwayDeleteDialogState; -------------------------------------------------------------------------------- /solutions/TimeAway/src/libraries/components/List/IMyTimeAwayListProps.ts: -------------------------------------------------------------------------------- 1 | import { IMyTimeAwayItem } from "../../models/timeAwayModel"; 2 | import { ItemOperationCallback } from "../../models/ItemOperationCallback"; 3 | interface IMyTimeAwayListProps{ 4 | items: IMyTimeAwayItem[]; 5 | itemDeleteIconClickCallback: ItemOperationCallback; 6 | itemEditIconClickCallback: ItemOperationCallback; 7 | } 8 | 9 | export default IMyTimeAwayListProps; 10 | -------------------------------------------------------------------------------- /solutions/TimeAway/src/libraries/components/List/MyTimeAwayList.module.scss: -------------------------------------------------------------------------------- 1 | .mytimeawaylist{ 2 | margin: 0; 3 | 4 | button:nth-child(2){ 5 | position: absolute; 6 | right: 62px; 7 | top: -3px; 8 | min-width: 32px!important; 9 | } 10 | 11 | button:nth-child(3){ 12 | position: absolute; 13 | right: 10px; 14 | top: -3px; 15 | min-width: 32px!important; 16 | } 17 | } -------------------------------------------------------------------------------- /solutions/TimeAway/src/libraries/components/ListItem/IMyTimeAwayListItemProps.ts: -------------------------------------------------------------------------------- 1 | import { IMyTimeAwayItem } from "../../models/timeAwayModel"; 2 | import { ItemOperationCallback } from "../../models/ItemOperationCallback"; 3 | 4 | interface IMyTimeAwayListItemProps { 5 | item: IMyTimeAwayItem; 6 | itemDeleteIconClickCallback: ItemOperationCallback; 7 | itemEditIconClickCallback: ItemOperationCallback; 8 | } 9 | 10 | export default IMyTimeAwayListItemProps; -------------------------------------------------------------------------------- /solutions/TimeAway/src/libraries/components/ListItem/IMyTimeAwayListItemState.ts: -------------------------------------------------------------------------------- 1 | import { IMyTimeAwayItem } from "../../models/timeAwayModel"; 2 | 3 | interface IMyTimeAwayListItemState { 4 | item: IMyTimeAwayItem; 5 | } 6 | 7 | export default IMyTimeAwayListItemState; -------------------------------------------------------------------------------- /solutions/TimeAway/src/libraries/models/ItemOperationCallback.ts: -------------------------------------------------------------------------------- 1 | import { IMyTimeAwayItem, TimePeriod } from "./timeAwayModel"; 2 | 3 | export type ItemTabOperationCallback = (period: TimePeriod) => void; 4 | export type ItemConfirmOperationCallback = () => void; 5 | export type ItemOperationCallback = (item: IMyTimeAwayItem) => void; 6 | export type ItemPromiseOperationCallback = (item: IMyTimeAwayItem) => Promise; 7 | export type ItemValidOperationCallback = (item: IMyTimeAwayItem) => Promise; 8 | export type ItemGetItemsCallback = (period: TimePeriod) => IMyTimeAwayItem[]; 9 | -------------------------------------------------------------------------------- /solutions/TimeAway/src/libraries/provisioning/Constants.ts: -------------------------------------------------------------------------------- 1 | import { TimePeriod } from "../models/timeAwayModel"; 2 | 3 | export class Constants{ 4 | public static readonly Default_DateTimeFormat:string = "HH MM SS MM DD YYYY"; 5 | public static readonly TimeAwayListTitle:string = "Time Away"; 6 | public static readonly LockCreateListKey: string = "Time Away Lock SP create list key"; 7 | public static readonly Default_TimePeriod = TimePeriod.Current; 8 | } -------------------------------------------------------------------------------- /solutions/TimeAway/src/pnp-preset.ts: -------------------------------------------------------------------------------- 1 | // source: https://github.com/pnp/pnpjs/blob/version-2/samples/project-preset/src/pnp-preset.ts 2 | 3 | import { SPRest } from "@pnp/sp"; 4 | 5 | import "@pnp/sp/webs"; 6 | import "@pnp/sp/lists"; 7 | import "@pnp/sp/items"; 8 | import "@pnp/sp/fields"; 9 | import "@pnp/sp/site-users"; 10 | import "@pnp/sp/site-groups/web"; 11 | 12 | export const sp = new SPRest(); -------------------------------------------------------------------------------- /solutions/TimeAway/src/webparts/myTimeAway/IMyTimeAwayWebPartProps.ts: -------------------------------------------------------------------------------- 1 | // Copyright (c) Microsoft Corporation. All rights reserved. 2 | // Licensed under the MIT license. 3 | 4 | interface IMyTimeAwayWebPartProps { 5 | normalWeekToggleField: boolean; 6 | } 7 | export default IMyTimeAwayWebPartProps; -------------------------------------------------------------------------------- /solutions/TimeAway/src/webparts/myTimeAway/loc/en-us.js: -------------------------------------------------------------------------------- 1 | define([], function() { 2 | return { 3 | } 4 | }); -------------------------------------------------------------------------------- /solutions/TimeAway/src/webparts/myTimeAway/loc/mystrings.d.ts: -------------------------------------------------------------------------------- 1 | declare interface IMyTimeAwayStrings { 2 | } 3 | 4 | declare module 'myTimeAwayStrings' { 5 | const strings: IMyTimeAwayStrings; 6 | export = strings; 7 | } 8 | -------------------------------------------------------------------------------- /solutions/TimeAway/src/webparts/myTimeAway/tests/MyTimeAway.test.ts: -------------------------------------------------------------------------------- 1 | /// 2 | 3 | import { assert } from 'chai'; 4 | 5 | describe('MyTimeAwayWebPart', () => { 6 | it('should do something', () => { 7 | assert.ok(true); 8 | }); 9 | }); 10 | -------------------------------------------------------------------------------- /solutions/TimeAway/src/webparts/timeAwaySummary/ITimeAwaySummaryWebPartProps.ts: -------------------------------------------------------------------------------- 1 | // Copyright (c) Microsoft Corporation. All rights reserved. 2 | // Licensed under the MIT license. 3 | 4 | export interface ITimeAwaySummaryWebPartProps { 5 | normalWeekToggleField: boolean; 6 | statusToggleField: boolean; 7 | myTimeAwayToggleField: boolean; 8 | } 9 | -------------------------------------------------------------------------------- /solutions/TimeAway/src/webparts/timeAwaySummary/components/day/ITimeAwaySummaryDayProps.ts: -------------------------------------------------------------------------------- 1 | // Copyright (c) Microsoft Corporation. All rights reserved. 2 | // Licensed under the MIT license. 3 | 4 | import {TimeAwaySummaryItem} from "../../models/TimeAwaySummaryItem"; 5 | 6 | interface ITimeAwaySummaryDayProps { 7 | item: TimeAwaySummaryItem; 8 | } 9 | 10 | export default ITimeAwaySummaryDayProps; -------------------------------------------------------------------------------- /solutions/TimeAway/src/webparts/timeAwaySummary/components/list/ITimeAwaySummaryListProps.ts: -------------------------------------------------------------------------------- 1 | // Copyright (c) Microsoft Corporation. All rights reserved. 2 | // Licensed under the MIT license. 3 | 4 | import { ITimeAwaySummaryDataProvider } from '../../dataProviders/ITimeAwaySummaryDataProvider'; 5 | import { 6 | WeekType, Phase 7 | } from '../../../../libraries/index'; 8 | 9 | interface ITimeAwaySummaryListProps { 10 | weekType: WeekType; 11 | phase: Phase; 12 | dataProvider: ITimeAwaySummaryDataProvider; 13 | statusFilter: boolean; 14 | } 15 | 16 | export default ITimeAwaySummaryListProps; -------------------------------------------------------------------------------- /solutions/TimeAway/src/webparts/timeAwaySummary/components/list/TimeAwaySummaryList.module.scss: -------------------------------------------------------------------------------- 1 | .timeawaySummaryList 2 | { 3 | .list 4 | { 5 | display:table; 6 | } 7 | } -------------------------------------------------------------------------------- /solutions/TimeAway/src/webparts/timeAwaySummary/components/week/ITimeAwaySummaryWeekProps.ts: -------------------------------------------------------------------------------- 1 | // Copyright (c) Microsoft Corporation. All rights reserved. 2 | // Licensed under the MIT license. 3 | 4 | import { 5 | WeekType, Phase 6 | } from '../../../../libraries/index'; 7 | 8 | interface ITimeAwaySummaryWeekProps { 9 | weekType: WeekType; 10 | phase: Phase; 11 | } 12 | 13 | export default ITimeAwaySummaryWeekProps; -------------------------------------------------------------------------------- /solutions/TimeAway/src/webparts/timeAwaySummary/dataProviders/ITimeAwaySummaryDataProvider.ts: -------------------------------------------------------------------------------- 1 | // Copyright (c) Microsoft Corporation. All rights reserved. 2 | // Licensed under the MIT license. 3 | 4 | import {TimeAwaySummaryItem} from "../models/TimeAwaySummaryItem"; 5 | import { 6 | WeekType, Phase 7 | } from '../../../libraries/index'; 8 | 9 | export interface ITimeAwaySummaryDataProvider { 10 | getTimeAwaySummaryList(weekType: WeekType, phase: Phase, statusFilter: boolean): Promise; 11 | } 12 | -------------------------------------------------------------------------------- /solutions/TimeAway/src/webparts/timeAwaySummary/loc/en-us.js: -------------------------------------------------------------------------------- 1 | define([], function() { 2 | return { 3 | } 4 | }); -------------------------------------------------------------------------------- /solutions/TimeAway/src/webparts/timeAwaySummary/loc/mystrings.d.ts: -------------------------------------------------------------------------------- 1 | declare interface ITimeAwaySummaryStrings { 2 | } 3 | 4 | declare module 'timeAwaySummaryStrings' { 5 | const strings: ITimeAwaySummaryStrings; 6 | export = strings; 7 | } 8 | -------------------------------------------------------------------------------- /solutions/TimeAway/src/webparts/timeAwaySummary/tests/TimeAwaySummary.test.ts: -------------------------------------------------------------------------------- 1 | /// 2 | 3 | import { assert } from 'chai'; 4 | 5 | describe('TimeAwaySummaryWebPart', () => { 6 | it('should do something', () => { 7 | assert.ok(true); 8 | }); 9 | }); 10 | -------------------------------------------------------------------------------- /solutions/TimeAway/teams/36fdabcd-20fd-4630-a536-80495dfcfc0b_color.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnp/sp-dev-solutions/d3815add98c1b8641724e74fd97814276ed7a901/solutions/TimeAway/teams/36fdabcd-20fd-4630-a536-80495dfcfc0b_color.png -------------------------------------------------------------------------------- /solutions/TimeAway/teams/36fdabcd-20fd-4630-a536-80495dfcfc0b_outline.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnp/sp-dev-solutions/d3815add98c1b8641724e74fd97814276ed7a901/solutions/TimeAway/teams/36fdabcd-20fd-4630-a536-80495dfcfc0b_outline.png -------------------------------------------------------------------------------- /solutions/TimeAway/teams/cc3ff58a-edf7-44ba-a47c-7daa593e1b93_color.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnp/sp-dev-solutions/d3815add98c1b8641724e74fd97814276ed7a901/solutions/TimeAway/teams/cc3ff58a-edf7-44ba-a47c-7daa593e1b93_color.png -------------------------------------------------------------------------------- /solutions/TimeAway/teams/cc3ff58a-edf7-44ba-a47c-7daa593e1b93_outline.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnp/sp-dev-solutions/d3815add98c1b8641724e74fd97814276ed7a901/solutions/TimeAway/teams/cc3ff58a-edf7-44ba-a47c-7daa593e1b93_outline.png -------------------------------------------------------------------------------- /solutions/flows-formatters-pages-siteScripts/BRK3080.pptx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnp/sp-dev-solutions/d3815add98c1b8641724e74fd97814276ed7a901/solutions/flows-formatters-pages-siteScripts/BRK3080.pptx -------------------------------------------------------------------------------- /solutions/flows-formatters-pages-siteScripts/images/homePage.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnp/sp-dev-solutions/d3815add98c1b8641724e74fd97814276ed7a901/solutions/flows-formatters-pages-siteScripts/images/homePage.PNG -------------------------------------------------------------------------------- /solutions/flows-formatters-pages-siteScripts/images/studentPage.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnp/sp-dev-solutions/d3815add98c1b8641724e74fd97814276ed7a901/solutions/flows-formatters-pages-siteScripts/images/studentPage.PNG -------------------------------------------------------------------------------- /solutions/flows-formatters-pages-siteScripts/images/uber-flow-create-flow-action.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnp/sp-dev-solutions/d3815add98c1b8641724e74fd97814276ed7a901/solutions/flows-formatters-pages-siteScripts/images/uber-flow-create-flow-action.PNG -------------------------------------------------------------------------------- /solutions/flows-formatters-pages-siteScripts/images/uber-flow-get-flow-definition-content-action.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnp/sp-dev-solutions/d3815add98c1b8641724e74fd97814276ed7a901/solutions/flows-formatters-pages-siteScripts/images/uber-flow-get-flow-definition-content-action.PNG -------------------------------------------------------------------------------- /solutions/flows-formatters-pages-siteScripts/images/uber-flow-getAllFlowDefinitions-action.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnp/sp-dev-solutions/d3815add98c1b8641724e74fd97814276ed7a901/solutions/flows-formatters-pages-siteScripts/images/uber-flow-getAllFlowDefinitions-action.PNG -------------------------------------------------------------------------------- /solutions/flows-formatters-pages-siteScripts/images/uber-flow-on-http.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnp/sp-dev-solutions/d3815add98c1b8641724e74fd97814276ed7a901/solutions/flows-formatters-pages-siteScripts/images/uber-flow-on-http.PNG -------------------------------------------------------------------------------- /solutions/flows-formatters-pages-siteScripts/images/uber-flow-sharepoint-connection-name.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnp/sp-dev-solutions/d3815add98c1b8641724e74fd97814276ed7a901/solutions/flows-formatters-pages-siteScripts/images/uber-flow-sharepoint-connection-name.PNG -------------------------------------------------------------------------------- /solutions/flows-formatters-pages-siteScripts/images/view-format-assignment-grades.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnp/sp-dev-solutions/d3815add98c1b8641724e74fd97814276ed7a901/solutions/flows-formatters-pages-siteScripts/images/view-format-assignment-grades.PNG -------------------------------------------------------------------------------- /solutions/flows-formatters-pages-siteScripts/images/view-format-assignments.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnp/sp-dev-solutions/d3815add98c1b8641724e74fd97814276ed7a901/solutions/flows-formatters-pages-siteScripts/images/view-format-assignments.PNG -------------------------------------------------------------------------------- /solutions/flows-formatters-pages-siteScripts/images/view-format-student.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnp/sp-dev-solutions/d3815add98c1b8641724e74fd97814276ed7a901/solutions/flows-formatters-pages-siteScripts/images/view-format-student.PNG -------------------------------------------------------------------------------- /solutions/flows-formatters-pages-siteScripts/uber-flow-definition/uber-flow-definition.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnp/sp-dev-solutions/d3815add98c1b8641724e74fd97814276ed7a901/solutions/flows-formatters-pages-siteScripts/uber-flow-definition/uber-flow-definition.zip -------------------------------------------------------------------------------- /solutions/global-footer/.editorconfig: -------------------------------------------------------------------------------- 1 | # EditorConfig helps developers define and maintain consistent 2 | # coding styles between different editors and IDEs 3 | # editorconfig.org 4 | 5 | root = true 6 | 7 | 8 | [*] 9 | 10 | # change these settings to your own preference 11 | indent_style = space 12 | indent_size = 2 13 | 14 | # we recommend you to keep these unchanged 15 | end_of_line = lf 16 | charset = utf-8 17 | trim_trailing_whitespace = true 18 | insert_final_newline = true 19 | 20 | [*.md] 21 | trim_trailing_whitespace = false 22 | 23 | [{package,bower}.json] 24 | indent_style = space 25 | indent_size = 2 -------------------------------------------------------------------------------- /solutions/global-footer/.gitignore: -------------------------------------------------------------------------------- 1 | # Logs 2 | logs 3 | *.log 4 | npm-debug.log* 5 | 6 | # Dependency directories 7 | node_modules 8 | 9 | # Build generated files 10 | dist 11 | lib 12 | solution 13 | temp 14 | #*.sppkg 15 | 16 | # Coverage directory used by tools like istanbul 17 | coverage 18 | 19 | # OSX 20 | .DS_Store 21 | 22 | # Visual Studio files 23 | .ntvs_analysis.dat 24 | .vs 25 | bin 26 | obj 27 | 28 | # Resx Generated Code 29 | *.resx.ts 30 | 31 | # Styles Generated Code 32 | *.scss.ts 33 | -------------------------------------------------------------------------------- /solutions/global-footer/.vscode/extensions.json: -------------------------------------------------------------------------------- 1 | { 2 | "recommendations": [ 3 | "msjsdiag.debugger-for-chrome" 4 | ] 5 | } -------------------------------------------------------------------------------- /solutions/global-footer/.vscode/settings.json: -------------------------------------------------------------------------------- 1 | // Place your settings in this file to overwrite default and user settings. 2 | { 3 | // Configure glob patterns for excluding files and folders in the file explorer. 4 | "files.exclude": { 5 | "**/.git": true, 6 | "**/.DS_Store": true, 7 | "**/bower_components": true, 8 | "**/coverage": true, 9 | "**/lib-amd": true, 10 | "src/**/*.scss.ts": true 11 | }, 12 | "typescript.tsdk": ".\\node_modules\\typescript\\lib", 13 | "editor.tabSize": 2 14 | } -------------------------------------------------------------------------------- /solutions/global-footer/.yo-rc.json: -------------------------------------------------------------------------------- 1 | { 2 | "@microsoft/generator-sharepoint": { 3 | "isCreatingSolution": true, 4 | "environment": "spo", 5 | "version": "1.6.0", 6 | "libraryName": "spfx-global-footer", 7 | "libraryId": "c3e26ca0-f21f-454f-bbc1-a9150f60c2d0", 8 | "packageManager": "npm", 9 | "componentType": "extension", 10 | "extensionType": "ApplicationCustomizer" 11 | } 12 | } -------------------------------------------------------------------------------- /solutions/global-footer/assets/app-catalog-site-contents-option.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnp/sp-dev-solutions/d3815add98c1b8641724e74fd97814276ed7a901/solutions/global-footer/assets/app-catalog-site-contents-option.png -------------------------------------------------------------------------------- /solutions/global-footer/assets/app-catalog-tenant-wide-extensions-option.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnp/sp-dev-solutions/d3815add98c1b8641724e74fd97814276ed7a901/solutions/global-footer/assets/app-catalog-tenant-wide-extensions-option.png -------------------------------------------------------------------------------- /solutions/global-footer/assets/global-footer-marketing.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnp/sp-dev-solutions/d3815add98c1b8641724e74fd97814276ed7a901/solutions/global-footer/assets/global-footer-marketing.png -------------------------------------------------------------------------------- /solutions/global-footer/assets/solution-trust-prompt.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnp/sp-dev-solutions/d3815add98c1b8641724e74fd97814276ed7a901/solutions/global-footer/assets/solution-trust-prompt.png -------------------------------------------------------------------------------- /solutions/global-footer/assets/tenant-wide-extension-edit-item.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnp/sp-dev-solutions/d3815add98c1b8641724e74fd97814276ed7a901/solutions/global-footer/assets/tenant-wide-extension-edit-item.png -------------------------------------------------------------------------------- /solutions/global-footer/assets/tenant-wide-extensions-edit-button.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnp/sp-dev-solutions/d3815add98c1b8641724e74fd97814276ed7a901/solutions/global-footer/assets/tenant-wide-extensions-edit-button.png -------------------------------------------------------------------------------- /solutions/global-footer/config/copy-assets.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "https://developer.microsoft.com/json-schemas/spfx-build/copy-assets.schema.json", 3 | "deployCdnPath": "temp/deploy" 4 | } 5 | -------------------------------------------------------------------------------- /solutions/global-footer/config/deploy-azure-storage.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "https://developer.microsoft.com/json-schemas/spfx-build/deploy-azure-storage.schema.json", 3 | "workingDir": "./temp/deploy/", 4 | "account": "", 5 | "container": "spfx-global-footer", 6 | "accessKey": "" 7 | } -------------------------------------------------------------------------------- /solutions/global-footer/config/write-manifests.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "https://developer.microsoft.com/json-schemas/spfx-build/write-manifests.schema.json", 3 | "cdnBasePath": "" 4 | } -------------------------------------------------------------------------------- /solutions/global-footer/gulpfile.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | const gulp = require('gulp'); 4 | const build = require('@microsoft/sp-build-web'); 5 | build.addSuppression(`Warning - [sass] The local CSS class 'ms-Grid' is not camelCase and will not be type-safe.`); 6 | 7 | build.initialize(gulp); 8 | -------------------------------------------------------------------------------- /solutions/global-footer/sharepoint/assets/elements.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 8 | 9 | -------------------------------------------------------------------------------- /solutions/global-footer/sharepoint/solution/spfx-global-footer.sppkg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnp/sp-dev-solutions/d3815add98c1b8641724e74fd97814276ed7a901/solutions/global-footer/sharepoint/solution/spfx-global-footer.sppkg -------------------------------------------------------------------------------- /solutions/global-footer/src/extensions/globalFooter/Link.ts: -------------------------------------------------------------------------------- 1 | export interface Link { 2 | icon?: string; 3 | title: string; 4 | url: string; 5 | } -------------------------------------------------------------------------------- /solutions/global-footer/src/extensions/globalFooter/components/GlobalFooter.module.scss: -------------------------------------------------------------------------------- 1 | @import '~@microsoft/sp-office-ui-fabric-core/dist/sass/SPFabricCore.scss'; 2 | 3 | .globalFooter { 4 | background-color: $ms-color-neutralLighter; 5 | color: $ms-color-neutralPrimary; 6 | 7 | .commandBar { 8 | width: 100%; 9 | } 10 | 11 | .label { 12 | margin-left: 10em; 13 | font-style: italic; 14 | 15 | &:hover { 16 | background-color: inherit; 17 | } 18 | } 19 | } -------------------------------------------------------------------------------- /solutions/global-footer/src/extensions/globalFooter/components/GlobalFooterProps.ts: -------------------------------------------------------------------------------- 1 | import { Link } from ".."; 2 | 3 | export interface GlobalFooterProps { 4 | label?: string; 5 | links: Link[]; 6 | } -------------------------------------------------------------------------------- /solutions/global-footer/src/extensions/globalFooter/components/index.ts: -------------------------------------------------------------------------------- 1 | export * from './GlobalFooter'; 2 | export * from './GlobalFooterProps'; -------------------------------------------------------------------------------- /solutions/global-footer/src/extensions/globalFooter/index.ts: -------------------------------------------------------------------------------- 1 | export * from './Link'; -------------------------------------------------------------------------------- /solutions/global-footer/src/extensions/globalFooter/loc/en-us.js: -------------------------------------------------------------------------------- 1 | define([], function() { 2 | return { 3 | "Title": "GlobalFooterApplicationCustomizer" 4 | } 5 | }); -------------------------------------------------------------------------------- /solutions/global-footer/src/extensions/globalFooter/loc/myStrings.d.ts: -------------------------------------------------------------------------------- 1 | declare interface IGlobalFooterApplicationCustomizerStrings { 2 | Title: string; 3 | } 4 | 5 | declare module 'GlobalFooterApplicationCustomizerStrings' { 6 | const strings: IGlobalFooterApplicationCustomizerStrings; 7 | export = strings; 8 | } 9 | -------------------------------------------------------------------------------- /solutions/global-footer/src/index.ts: -------------------------------------------------------------------------------- 1 | // A file is required to be in the root of the /src directory by the TypeScript compiler 2 | -------------------------------------------------------------------------------- /solutions/sp2019-capabilities/.gitignore: -------------------------------------------------------------------------------- 1 | # Logs 2 | logs 3 | *.log 4 | npm-debug.log* 5 | 6 | # Dependency directories 7 | node_modules 8 | 9 | # Build generated files 10 | dist 11 | lib 12 | temp 13 | *.sppkg 14 | 15 | # Coverage directory used by tools like istanbul 16 | coverage 17 | 18 | # OSX 19 | .DS_Store 20 | 21 | # Visual Studio files 22 | .ntvs_analysis.dat 23 | .vs 24 | bin 25 | obj 26 | 27 | # Resx Generated Code 28 | *.resx.ts 29 | 30 | # Styles Generated Code 31 | *.scss.ts 32 | -------------------------------------------------------------------------------- /solutions/sp2019-capabilities/.vscode/extensions.json: -------------------------------------------------------------------------------- 1 | { 2 | "recommendations": [ 3 | "msjsdiag.debugger-for-chrome" 4 | ] 5 | } -------------------------------------------------------------------------------- /solutions/sp2019-capabilities/.vscode/settings.json: -------------------------------------------------------------------------------- 1 | // Place your settings in this file to overwrite default and user settings. 2 | { 3 | // Configure glob patterns for excluding files and folders in the file explorer. 4 | "files.exclude": { 5 | "**/.git": true, 6 | "**/.DS_Store": true, 7 | "**/bower_components": true, 8 | "**/coverage": true, 9 | "**/lib-amd": true, 10 | "src/**/*.scss.ts": true 11 | }, 12 | "typescript.tsdk": ".\\node_modules\\typescript\\lib" 13 | } -------------------------------------------------------------------------------- /solutions/sp2019-capabilities/.yo-rc.json: -------------------------------------------------------------------------------- 1 | { 2 | "@microsoft/generator-sharepoint": { 3 | "isCreatingSolution": false, 4 | "environment": "onprem19", 5 | "version": "1.7.0", 6 | "libraryName": "sp-2019-capabilities", 7 | "libraryId": "b9b5a5ef-0450-4e61-ad85-14a344ba915f", 8 | "packageManager": "npm", 9 | "componentType": "webpart" 10 | } 11 | } -------------------------------------------------------------------------------- /solutions/sp2019-capabilities/assets/footer-marketing.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnp/sp-dev-solutions/d3815add98c1b8641724e74fd97814276ed7a901/solutions/sp2019-capabilities/assets/footer-marketing.png -------------------------------------------------------------------------------- /solutions/sp2019-capabilities/assets/todo-basic-demo.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnp/sp-dev-solutions/d3815add98c1b8641724e74fd97814276ed7a901/solutions/sp2019-capabilities/assets/todo-basic-demo.gif -------------------------------------------------------------------------------- /solutions/sp2019-capabilities/config/copy-assets.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "https://developer.microsoft.com/json-schemas/spfx-build/copy-assets.schema.json", 3 | "deployCdnPath": "temp/deploy" 4 | } 5 | -------------------------------------------------------------------------------- /solutions/sp2019-capabilities/config/deploy-azure-storage.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "https://developer.microsoft.com/json-schemas/spfx-build/deploy-azure-storage.schema.json", 3 | "workingDir": "./temp/deploy/", 4 | "account": "", 5 | "container": "sp-2019-capabilities", 6 | "accessKey": "" 7 | } -------------------------------------------------------------------------------- /solutions/sp2019-capabilities/config/write-manifests.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "https://developer.microsoft.com/json-schemas/spfx-build/write-manifests.schema.json", 3 | "cdnBasePath": "" 4 | } -------------------------------------------------------------------------------- /solutions/sp2019-capabilities/gulpfile.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | const gulp = require('gulp'); 4 | const build = require('@microsoft/sp-build-web'); 5 | build.addSuppression(`Warning - [sass] The local CSS class 'ms-Grid' is not camelCase and will not be type-safe.`); 6 | 7 | build.initialize(gulp); 8 | -------------------------------------------------------------------------------- /solutions/sp2019-capabilities/sharepoint/assets/ClientSideInstance.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 8 | 9 | -------------------------------------------------------------------------------- /solutions/sp2019-capabilities/src/extensions/footer/Link.ts: -------------------------------------------------------------------------------- 1 | export interface Link { 2 | icon?: string; 3 | title: string; 4 | url: string; 5 | } -------------------------------------------------------------------------------- /solutions/sp2019-capabilities/src/extensions/footer/components/Footer.module.scss: -------------------------------------------------------------------------------- 1 | @import '~@microsoft/sp-office-ui-fabric-core/dist/sass/SPFabricCore.scss'; 2 | 3 | .footer { 4 | background-color: $ms-color-neutralLighter; 5 | color: $ms-color-neutralPrimary; 6 | 7 | .commandBar { 8 | width: 100%; 9 | } 10 | 11 | .label { 12 | margin-left: 10em; 13 | font-style: italic; 14 | 15 | &:hover { 16 | background-color: inherit; 17 | } 18 | } 19 | } -------------------------------------------------------------------------------- /solutions/sp2019-capabilities/src/extensions/footer/components/FooterProps.ts: -------------------------------------------------------------------------------- 1 | import { Link } from ".."; 2 | 3 | export interface FooterProps { 4 | label?: string; 5 | links: Link[]; 6 | } -------------------------------------------------------------------------------- /solutions/sp2019-capabilities/src/extensions/footer/components/index.ts: -------------------------------------------------------------------------------- 1 | export * from './Footer'; 2 | export * from './FooterProps'; -------------------------------------------------------------------------------- /solutions/sp2019-capabilities/src/extensions/footer/index.ts: -------------------------------------------------------------------------------- 1 | export * from './Link'; -------------------------------------------------------------------------------- /solutions/sp2019-capabilities/src/extensions/footer/loc/en-us.js: -------------------------------------------------------------------------------- 1 | define([], function() { 2 | return { 3 | "Title": "FooterApplicationCustomizer" 4 | } 5 | }); -------------------------------------------------------------------------------- /solutions/sp2019-capabilities/src/extensions/footer/loc/myStrings.d.ts: -------------------------------------------------------------------------------- 1 | declare interface IFooterApplicationCustomizerStrings { 2 | Title: string; 3 | } 4 | 5 | declare module 'FooterApplicationCustomizerStrings' { 6 | const strings: IFooterApplicationCustomizerStrings; 7 | export = strings; 8 | } 9 | -------------------------------------------------------------------------------- /solutions/sp2019-capabilities/src/index.ts: -------------------------------------------------------------------------------- 1 | // A file is required to be in the root of the /src directory by the TypeScript compiler 2 | -------------------------------------------------------------------------------- /solutions/sp2019-capabilities/src/webparts/sp2019ToDoWebPart/components/ConfigurationView/ConfigurationView.module.scss: -------------------------------------------------------------------------------- 1 | .configurationView { 2 | display: table; 3 | 4 | .textField { 5 | display: table-cell; 6 | width: 100%; 7 | 8 | input { 9 | height: 32px; 10 | min-width: 80px; 11 | } 12 | } 13 | .configureButtonCell { 14 | display: table-cell; 15 | vertical-align: top; 16 | 17 | .configureButton { 18 | margin-left: 10px; 19 | white-space: nowrap; 20 | height: 32px; 21 | } 22 | } 23 | } -------------------------------------------------------------------------------- /solutions/sp2019-capabilities/src/webparts/sp2019ToDoWebPart/components/ConfigurationView/IConfigurationViewProps.ts: -------------------------------------------------------------------------------- 1 | interface IConfigurationViewProps { 2 | icon?: string; 3 | iconText?: string; 4 | description?: string; 5 | buttonLabel?: string; 6 | onConfigure?: () => void; 7 | } 8 | 9 | export default IConfigurationViewProps; -------------------------------------------------------------------------------- /solutions/sp2019-capabilities/src/webparts/sp2019ToDoWebPart/components/ConfigurationView/IConfigurationViewState.ts: -------------------------------------------------------------------------------- 1 | interface IConfigurationViewState { 2 | } 3 | 4 | export default IConfigurationViewState; -------------------------------------------------------------------------------- /solutions/sp2019-capabilities/src/webparts/sp2019ToDoWebPart/components/TodoContainer/ITodoContainerProps.ts: -------------------------------------------------------------------------------- 1 | import { DisplayMode } from '@microsoft/sp-core-library'; 2 | import ITodoDataProvider from '../../dataProviders/ITodoDataProvider'; 3 | 4 | interface ITodoContainerProps { 5 | dataProvider: ITodoDataProvider; 6 | webPartDisplayMode: DisplayMode; 7 | configureStartCallback: () => void; 8 | } 9 | 10 | export default ITodoContainerProps; -------------------------------------------------------------------------------- /solutions/sp2019-capabilities/src/webparts/sp2019ToDoWebPart/components/TodoContainer/ITodoContainerState.ts: -------------------------------------------------------------------------------- 1 | import ITodoItem from '../../models/ITodoItem'; 2 | 3 | interface ITodoContainerState { 4 | todoItems: ITodoItem[]; 5 | } 6 | 7 | export default ITodoContainerState; -------------------------------------------------------------------------------- /solutions/sp2019-capabilities/src/webparts/sp2019ToDoWebPart/components/TodoContainer/TodoContainer.module.scss: -------------------------------------------------------------------------------- 1 | .todo { 2 | padding: 28px 40px; 3 | 4 | .topRow { 5 | position: relative; 6 | } 7 | 8 | .todoHeading { 9 | display: inline-block; 10 | } 11 | 12 | @media (max-width: 600px) { 13 | padding: 0px; 14 | } 15 | } -------------------------------------------------------------------------------- /solutions/sp2019-capabilities/src/webparts/sp2019ToDoWebPart/components/TodoForm/ITodoFormProps.ts: -------------------------------------------------------------------------------- 1 | import ItemCreationCallback from '../../models/ItemCreationCallback'; 2 | 3 | interface ITodoFormProps { 4 | onAddTodoItem: ItemCreationCallback; 5 | } 6 | 7 | export default ITodoFormProps; -------------------------------------------------------------------------------- /solutions/sp2019-capabilities/src/webparts/sp2019ToDoWebPart/components/TodoForm/ITodoFormState.ts: -------------------------------------------------------------------------------- 1 | interface ITodoFormState { 2 | inputValue: string; 3 | } 4 | 5 | export default ITodoFormState; -------------------------------------------------------------------------------- /solutions/sp2019-capabilities/src/webparts/sp2019ToDoWebPart/components/TodoForm/TodoForm.module.scss: -------------------------------------------------------------------------------- 1 | .todoForm { 2 | display: table; 3 | 4 | .textField { 5 | display: table-cell; 6 | width: 100%; 7 | 8 | input { 9 | min-width: 80px; 10 | } 11 | } 12 | .addButtonCell { 13 | display: table-cell; 14 | vertical-align: top; 15 | 16 | .addButton { 17 | margin-left: 10px; 18 | white-space: nowrap; 19 | height: 32px; 20 | } 21 | } 22 | } -------------------------------------------------------------------------------- /solutions/sp2019-capabilities/src/webparts/sp2019ToDoWebPart/components/TodoList/ITodoListProps.ts: -------------------------------------------------------------------------------- 1 | import ITodoItem from '../../models/ITodoItem'; 2 | import ItemOperationCallback from '../../models/ItemOperationCallback'; 3 | 4 | interface ITodoListProps { 5 | items: ITodoItem[]; 6 | onCompleteTodoItem: ItemOperationCallback; 7 | onDeleteTodoItem: ItemOperationCallback; 8 | } 9 | 10 | export default ITodoListProps; -------------------------------------------------------------------------------- /solutions/sp2019-capabilities/src/webparts/sp2019ToDoWebPart/components/TodoList/TodoList.module.scss: -------------------------------------------------------------------------------- 1 | @import "~@microsoft/sp-office-ui-fabric-core/dist/sass/SPFabricCore.scss"; 2 | 3 | .todoList { 4 | margin-top: 20px; 5 | border-top: 1px $ms-color-neutralTertiaryAlt solid; 6 | } -------------------------------------------------------------------------------- /solutions/sp2019-capabilities/src/webparts/sp2019ToDoWebPart/components/TodoListItem/ITodoListItemProps.ts: -------------------------------------------------------------------------------- 1 | import ITodoItem from '../../models/ITodoItem'; 2 | import ItemOperationCallback from '../../models/ItemOperationCallback'; 3 | 4 | interface ITodoListItemProps { 5 | item: ITodoItem; 6 | isChecked?: boolean; 7 | onCompleteListItem: ItemOperationCallback; 8 | onDeleteListItem: ItemOperationCallback; 9 | } 10 | 11 | export default ITodoListItemProps; -------------------------------------------------------------------------------- /solutions/sp2019-capabilities/src/webparts/sp2019ToDoWebPart/loc/en-us.js: -------------------------------------------------------------------------------- 1 | define([], function() { 2 | return { 3 | "PropertyPaneDescription": "Description", 4 | "BasicGroupName": "Group Name", 5 | "DescriptionFieldLabel": "Description Field" 6 | } 7 | }); -------------------------------------------------------------------------------- /solutions/sp2019-capabilities/src/webparts/sp2019ToDoWebPart/loc/mystrings.d.ts: -------------------------------------------------------------------------------- 1 | declare interface ISp2019ToDoWebPartWebPartStrings { 2 | PropertyPaneDescription: string; 3 | BasicGroupName: string; 4 | DescriptionFieldLabel: string; 5 | } 6 | 7 | declare module 'Sp2019ToDoWebPartWebPartStrings' { 8 | const strings: ISp2019ToDoWebPartWebPartStrings; 9 | export = strings; 10 | } 11 | -------------------------------------------------------------------------------- /solutions/sp2019-capabilities/src/webparts/sp2019ToDoWebPart/models/ITodoItem.ts: -------------------------------------------------------------------------------- 1 | interface ITodoItem { 2 | Id: number; 3 | Title: string; 4 | PercentComplete: number; 5 | } 6 | 7 | export default ITodoItem; 8 | -------------------------------------------------------------------------------- /solutions/sp2019-capabilities/src/webparts/sp2019ToDoWebPart/models/ITodoTaskList.ts: -------------------------------------------------------------------------------- 1 | interface ITodoTaskList { 2 | Id?: string; 3 | ListItemEntityTypeFullName?: string; 4 | Title: string; 5 | } 6 | 7 | export default ITodoTaskList; -------------------------------------------------------------------------------- /solutions/sp2019-capabilities/src/webparts/sp2019ToDoWebPart/models/ItemCreationCallback.ts: -------------------------------------------------------------------------------- 1 | type ItemCreationCallback = (inputValue: string) => void; 2 | 3 | export default ItemCreationCallback; -------------------------------------------------------------------------------- /solutions/sp2019-capabilities/src/webparts/sp2019ToDoWebPart/models/ItemOperationCallback.ts: -------------------------------------------------------------------------------- 1 | import ITodoItem from './ITodoItem'; 2 | 3 | type ItemOperationCallback = (item: ITodoItem) => void; 4 | 5 | export default ItemOperationCallback; -------------------------------------------------------------------------------- /solutions/sp2019-capabilities/src/webparts/sp2019ToDoWebPart/tests/Todo.test.ts: -------------------------------------------------------------------------------- 1 | /// 2 | 3 | import { assert } from 'chai'; 4 | 5 | describe('TodoWebPart', () => { 6 | it('should do something', () => { 7 | assert.ok(true); 8 | }); 9 | }); 10 | --------------------------------------------------------------------------------