feat: Initialize organization chart web part with core functionality and configuration

- Added configuration files: config.json, copy-assets.json, package-solution.json, serve.json, write-manifests.json.
- Created gulpfile.js for build process.
- Implemented core logic in OrganizationChartCore.ts for account normalization and profile handling.
- Developed data service in OrganizationChartDataService.ts to fetch organization data from SharePoint User Profile Service.
- Defined types for user profiles and organization nodes in OrganizationChartTypes.ts.
- Created web part manifest for OrganizationChartWebPart.
- Built the main web part component with rendering logic and property pane configuration in OrganizationChartWebPart.ts.
- Developed React components for displaying the organization chart.
- Implemented styling for the organization chart in OrganizationChart.module.scss.
- Added localization support with English and German strings.
- Created unit tests for core functionalities in OrganizationChartCore.test.ts.
- Set up TypeScript and TSLint configurations for the project.
This commit is contained in:
Torsten Brendgen
2026-08-24 13:48:32 +02:00
commit 18fee714b8
27 changed files with 916 additions and 0 deletions
@@ -0,0 +1,26 @@
define([], function() {
return {
PropertyPaneDescription: 'Builds the organization chart from the SharePoint User Profile Service.',
SourceGroupName: 'Starting point and scope',
DisplayGroupName: 'Display',
TitleFieldLabel: 'Web part title',
StartUserFieldLabel: 'Starting person / manager',
StartUserFieldDescription: 'Leave empty to start with the current user. Claims login, DOMAIN\\user or UPN are supported.',
StartUserPlaceholder: 'DOMAIN\\user or user@contoso.local',
MaxDepthFieldLabel: 'Maximum levels below',
MaxPeopleFieldLabel: 'Maximum number of people',
CacheMinutesFieldLabel: 'Profile cache (minutes, 0 = off)',
ShowPicturesFieldLabel: 'Show profile pictures',
ShowContactDetailsFieldLabel: 'Show contact information',
ConfigureMessage: 'A starting person could not be determined.',
LoadingMessage: 'Loading organization chart…',
EmptyMessage: 'No profile data was found for the starting person.',
LoadErrorMessage: 'The organization chart could not be loaded from the User Profile Service.',
DefaultTitle: 'Organization Chart',
ReportsLabel: 'reports',
CollapseLabel: 'Collapse reports',
ExpandLabel: 'Expand reports',
TruncatedLabel: 'The organization chart was limited by the configured depth or person count.',
PeopleCountLabel: '{0} people'
};
});