feat: Implement SharePoint People Picker for selecting starting person and update version to 1.0.3

This commit is contained in:
Torsten Brendgen
2026-08-24 14:28:01 +02:00
parent 4e5dafabfc
commit a686f8c055
13 changed files with 299 additions and 48 deletions
+8 -1
View File
@@ -14,6 +14,7 @@ var manifest = json('src/webparts/organizationChart/OrganizationChartWebPart.man
var service = read('src/webparts/organizationChart/OrganizationChartDataService.ts');
var webPart = read('src/webparts/organizationChart/OrganizationChartWebPart.ts');
var component = read('src/webparts/organizationChart/components/OrganizationChart.tsx');
var picker = read('src/webparts/organizationChart/components/OrganizationChartPeoplePicker.tsx');
var styles = read('src/webparts/organizationChart/components/OrganizationChart.module.scss');
assert(packageJson.name === 'organization-chart-webpart', 'Package name is inconsistent.');
@@ -31,7 +32,13 @@ assert(service.indexOf('ClientPeoplePickerWebServiceInterface.clientPeoplePicker
'Configured-account resolution through the SharePoint People Picker is missing.');
assert(service.indexOf('profile.directReports') >= 0 && service.indexOf('this.buildNode(childAccount, depth + 1') >= 0,
'Recursive downward organization loading is missing.');
assert(webPart.indexOf("PropertyPaneTextField('startUser'") >= 0, 'Starting-person configuration is missing.');
assert(webPart.indexOf('OrganizationChartPeoplePicker') >= 0 &&
webPart.indexOf("PropertyPaneTextField('startUser'") < 0,
'The verified starting-person picker must be rendered on the canvas instead of the property pane.');
assert(picker.indexOf('NormalPeoplePicker') >= 0 && picker.indexOf('ValidationState.invalid') >= 0,
'The on-canvas people picker must reject unverified free-text values.');
assert(picker.indexOf('validatePerson') >= 0 && service.indexOf('public validatePerson') >= 0,
'Selected people must be validated against the User Profile Service.');
assert(webPart.indexOf("PropertyPaneSlider('maxDepth'") >= 0 && webPart.indexOf("PropertyPaneSlider('maxPeople'") >= 0,
'Tree safety limits are missing.');
assert(component.indexOf("role='tree'") >= 0 && component.indexOf("role='treeitem'") >= 0,