From 5f858fab2ce7b43de2a54919ffe07d0964d28b7f Mon Sep 17 00:00:00 2001 From: Torsten Brendgen Date: Mon, 24 Aug 2026 19:38:20 +0200 Subject: [PATCH] feat: Update version to 1.0.5, remove people count label, and enhance toggle icons in Organization Chart --- README.md | 1 + config/package-solution.json | 2 +- package.json | 2 +- .../organizationChart/OrganizationChartWebPart.ts | 3 +-- .../components/IOrganizationChartProps.ts | 1 - .../components/OrganizationChart.module.scss | 9 +++++---- .../organizationChart/components/OrganizationChart.tsx | 7 +++---- tests/validate-project.js | 4 ++++ 8 files changed, 16 insertions(+), 13 deletions(-) diff --git a/README.md b/README.md index 6aaba97..7a8c0f8 100644 --- a/README.md +++ b/README.md @@ -14,6 +14,7 @@ SPFx-1.4.1-WebPart für SharePoint Server Subscription Edition. Es erstellt aus - Verlinkung auf die SharePoint-Profilseite - kurzzeitiger In-Memory-Profilcache zur Reduzierung wiederholter REST-Aufrufe - responsive Baumdarstellung mit SharePoint-Themefarben +- durchgehende Verbindungslinien und SharePoint-Chevrons zum Auf- und Zuklappen ## Datenquelle und Voraussetzungen diff --git a/config/package-solution.json b/config/package-solution.json index 80e0fed..4a2f71f 100644 --- a/config/package-solution.json +++ b/config/package-solution.json @@ -4,7 +4,7 @@ "name": "organization-chart-webpart", "title": "organization-chart-webpart", "id": "b2f88ea8-f7da-4d0e-a945-6973bf1acd1e", - "version": "1.0.4.0", + "version": "1.0.5.0", "includeClientSideAssets": true, "skipFeatureDeployment": true }, diff --git a/package.json b/package.json index 44eb9b8..83c7516 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "organization-chart-webpart", - "version": "1.0.4", + "version": "1.0.5", "private": true, "main": "lib/index.js", "engines": { "node": ">=6.9.0 <9.0.0" }, diff --git a/src/webparts/organizationChart/OrganizationChartWebPart.ts b/src/webparts/organizationChart/OrganizationChartWebPart.ts index 01908b9..147065a 100644 --- a/src/webparts/organizationChart/OrganizationChartWebPart.ts +++ b/src/webparts/organizationChart/OrganizationChartWebPart.ts @@ -64,8 +64,7 @@ export default class OrganizationChartWebPart extends BaseClientSideWebPart ul > li:only-child { padding-top: 0; } .tree li:first-child::before, .tree li:last-child::after { border: 0; } .tree li:last-child::before { border-right: 1px solid "[theme:neutralTertiary, default:#a19f9d]"; border-radius: 0 4px 0 0; } @@ -49,8 +48,10 @@ .jobTitle, .department, .email, .location { color: "[theme:neutralSecondary, default:#605e5c]"; display: block; font-size: 12px; line-height: 17px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; } .email { color: "[theme:themePrimary, default:#0078d4]"; } .reportCount { bottom: 8px; color: "[theme:neutralSecondary, default:#605e5c]"; font-size: 11px; position: absolute; right: 10px; } -.toggle { background: "[theme:white, default:#ffffff]"; border: 1px solid "[theme:neutralTertiary, default:#a19f9d]"; border-radius: 50%; bottom: -11px; color: "[theme:themePrimary, default:#0078d4]"; cursor: pointer; font-size: 16px; height: 23px; left: calc(50% - 11px); line-height: 18px; padding: 0; position: absolute; width: 23px; z-index: 2; } +.toggle { align-items: center; background: "[theme:white, default:#ffffff]"; border: 1px solid "[theme:neutralTertiary, default:#a19f9d]"; border-radius: 50%; bottom: -14px; color: "[theme:themePrimary, default:#0078d4]"; cursor: pointer; display: flex; height: 28px; justify-content: center; left: calc(50% - 14px); padding: 0; position: absolute; width: 28px; z-index: 2; } .toggle:hover, .toggle:focus { background: "[theme:neutralLighter, default:#f3f2f1]"; outline: none; } +.toggle:focus { box-shadow: 0 0 0 2px "[theme:focusBorder, default:#605e5c]"; } +.toggleIcon { font-family: 'FabricMDL2Icons'; font-size: 12px; line-height: 1; } .status { color: "[theme:bodyText, default:#323130]"; padding: 16px; } .error { color: "[theme:errorText, default:#a80000]"; padding: 16px; } @@ -61,5 +62,5 @@ .tree li::before, .tree li::after, .tree ul ul::before { display: none; } .tree > ul > li, .tree li:only-child { padding-top: 0; } .personCard { max-width: 100%; width: 260px; } - .toggle { bottom: auto; left: -11px; top: 36px; } + .toggle { bottom: auto; left: -14px; top: 34px; } } diff --git a/src/webparts/organizationChart/components/OrganizationChart.tsx b/src/webparts/organizationChart/components/OrganizationChart.tsx index f5637f4..a7b4856 100644 --- a/src/webparts/organizationChart/components/OrganizationChart.tsx +++ b/src/webparts/organizationChart/components/OrganizationChart.tsx @@ -18,9 +18,6 @@ export default class OrganizationChart extends React.Component
{this.props.title &&

{this.props.title}

} - - {this.props.peopleCountLabel.replace('{0}', String(this.props.data.peopleCount))} -
{this.props.data.truncated &&
{this.props.truncatedLabel}
}
@@ -46,7 +43,9 @@ export default class OrganizationChart extends React.Component this.toggle(key)}> - {collapsed ? '+' : '−'} + {collapsed + ? + : } }
{hasChildren && !collapsed && diff --git a/tests/validate-project.js b/tests/validate-project.js index 1f5d9aa..d4079fa 100644 --- a/tests/validate-project.js +++ b/tests/validate-project.js @@ -43,6 +43,10 @@ assert(component.indexOf("role='tree'") >= 0 && component.indexOf("role='treeite 'Accessible tree semantics are missing.'); assert(component.indexOf('aria-expanded') >= 0 && component.indexOf('aria-selected={false}') >= 0, 'Accessible tree state is missing.'); +assert(component.indexOf('peopleCountLabel') < 0 && component.indexOf('') >= 0 && + component.indexOf('') >= 0, 'Header count removal or modern toggle icons are missing.'); +assert(styles.indexOf('.tree li:only-child { padding-top: 0; }') >= 0, + 'Single-child connector spacing must remain continuous.'); assert(component.indexOf("role='presentation'") >= 0, 'Decorative profile images must be hidden from assistive technology.'); ['bodyText', 'neutralSecondary', 'neutralLighter', 'themePrimary', 'neutralTertiary', 'white', 'neutralLight', 'focusBorder', 'errorText'] .forEach(function(slot) {