Update Current Navigation to version 1.1.3 with improved styling and updated asset validation

This commit is contained in:
Torsten Brendgen
2026-08-18 20:20:11 +02:00
parent 0931257aa6
commit 9b73bb4614
7 changed files with 28 additions and 20 deletions
+1 -1
View File
@@ -1,6 +1,6 @@
# CurrentNavigation # CurrentNavigation
CurrentNavigation 1.1.2 ist ein SPFx-1.4.1-Application-Customizer für moderne Seiten in SharePoint Server CurrentNavigation 1.1.3 ist ein SPFx-1.4.1-Application-Customizer für moderne Seiten in SharePoint Server
Subscription Edition. Die Solution ergänzt unterhalb der vorhandenen Einträge im modernen SiteNavigation-Bereich Subscription Edition. Die Solution ergänzt unterhalb der vorhandenen Einträge im modernen SiteNavigation-Bereich
einen Treeview für das aktuelle Web. Native Einträge wie Documents bleiben unverändert sichtbar. einen Treeview für das aktuelle Web. Native Einträge wie Documents bleiben unverändert sichtbar.
+1 -1
View File
@@ -1,6 +1,6 @@
# CurrentNavigation – Umsetzungsstand # CurrentNavigation – Umsetzungsstand
Zielversion: 1.1.2 Zielversion: 1.1.3
Status: Implementierung und lokale Tests abgeschlossen; Ship-Build auf Node 8 ausstehend Status: Implementierung und lokale Tests abgeschlossen; Ship-Build auf Node 8 ausstehend
- [x] SPFx Application Customizer für moderne Seiten - [x] SPFx Application Customizer für moderne Seiten
+1 -1
View File
@@ -3,7 +3,7 @@
"solution": { "solution": {
"name": "current-navigation-client-side-solution", "name": "current-navigation-client-side-solution",
"id": "bb8f9af5-b318-4111-8401-ce189cfe1b1a", "id": "bb8f9af5-b318-4111-8401-ce189cfe1b1a",
"version": "1.1.2.0", "version": "1.1.3.0",
"includeClientSideAssets": true, "includeClientSideAssets": true,
"skipFeatureDeployment": true "skipFeatureDeployment": true
}, },
+1 -1
View File
@@ -1,6 +1,6 @@
{ {
"name": "current-navigation", "name": "current-navigation",
"version": "1.1.2", "version": "1.1.3",
"lockfileVersion": 1, "lockfileVersion": 1,
"requires": true, "requires": true,
"dependencies": { "dependencies": {
+1 -1
View File
@@ -1,6 +1,6 @@
{ {
"name": "current-navigation", "name": "current-navigation",
"version": "1.1.2", "version": "1.1.3",
"private": true, "private": true,
"main": "lib/index.js", "main": "lib/index.js",
"engines": { "engines": {
@@ -3,14 +3,14 @@
:global { :global {
#CurrentNavigationHost { #CurrentNavigationHost {
width: 100%; width: 100%;
border-top: 1px solid $ms-color-neutralLight; border-top: 1px solid "[theme: neutralLight, default: #edebe9]";
} }
.current-navigation { .current-navigation {
width: 100%; width: 100%;
color: $ms-color-neutralPrimary; color: $ms-color-neutralPrimary;
font-family: $ms-font-family-fallbacks; font-family: 'Segoe UI', 'Segoe UI Web (West European)', -apple-system, BlinkMacSystemFont, Roboto, 'Helvetica Neue', sans-serif;
font-size: $ms-font-size-s; font-size: 14px;
} }
.current-navigation ul { .current-navigation ul {
@@ -29,6 +29,16 @@
min-height: 36px; min-height: 36px;
} }
.current-navigation-row:hover,
.current-navigation-row:focus-within {
background: $ms-color-neutralLighter;
color: $ms-color-themePrimary;
}
.current-navigation-row:active {
background: $ms-color-neutralLight;
}
.current-navigation-toggle, .current-navigation-toggle,
.current-navigation-toggle-spacer { .current-navigation-toggle-spacer {
flex: 0 0 32px; flex: 0 0 32px;
@@ -44,13 +54,14 @@
padding: 0; padding: 0;
border: 0; border: 0;
background: transparent; background: transparent;
color: $ms-color-neutralSecondary; color: inherit;
cursor: pointer; cursor: pointer;
font: inherit;
} }
.current-navigation-toggle:hover { .current-navigation-toggle:hover {
background: $ms-color-neutralLighter; background: transparent;
color: $ms-color-neutralPrimary; color: inherit;
} }
.current-navigation-chevron { .current-navigation-chevron {
@@ -59,7 +70,6 @@
border-right: 1px solid currentColor; border-right: 1px solid currentColor;
border-bottom: 1px solid currentColor; border-bottom: 1px solid currentColor;
transform: rotate(-45deg); transform: rotate(-45deg);
transition: transform 120ms ease;
} }
.current-navigation-item[aria-expanded='true'] > .current-navigation-row .current-navigation-chevron { .current-navigation-item[aria-expanded='true'] > .current-navigation-row .current-navigation-chevron {
@@ -82,8 +92,8 @@
.current-navigation-label:hover, .current-navigation-label:hover,
.current-navigation-label:focus { .current-navigation-label:focus {
background: $ms-color-neutralLighter; background: transparent;
color: $ms-color-themePrimary; color: inherit;
} }
.current-navigation-label:focus { .current-navigation-label:focus {
@@ -101,10 +111,6 @@
display: none; display: none;
} }
@media (prefers-reduced-motion: reduce) {
.current-navigation-chevron { transition: none; }
}
@media (forced-colors: active) { @media (forced-colors: active) {
.current-navigation-label:focus { outline: 2px solid CanvasText; } .current-navigation-label:focus { outline: 2px solid CanvasText; }
} }
+4 -2
View File
@@ -9,8 +9,8 @@ var manifest = json('src/extensions/currentNavigation/CurrentNavigationApplicati
var app = read('src/extensions/currentNavigation/CurrentNavigationApplicationCustomizer.ts'); var app = read('src/extensions/currentNavigation/CurrentNavigationApplicationCustomizer.ts');
var renderer = read('src/extensions/currentNavigation/CurrentNavigationRenderer.ts'); var renderer = read('src/extensions/currentNavigation/CurrentNavigationRenderer.ts');
var service = read('src/services/CurrentNavigationTaxonomyService.ts'); var service = read('src/services/CurrentNavigationTaxonomyService.ts');
assert('package version', packageJson.version === '1.1.2'); assert('package version', packageJson.version === '1.1.3');
assert('solution version', solution.version === '1.1.2.0'); assert('solution version', solution.version === '1.1.3.0');
assert('tenant deployment', solution.skipFeatureDeployment === true); assert('tenant deployment', solution.skipFeatureDeployment === true);
assert('component type', manifest.extensionType === 'ApplicationCustomizer'); assert('component type', manifest.extensionType === 'ApplicationCustomizer');
assert('safe renderer', renderer.indexOf('innerHTML') < 0 && app.indexOf('innerHTML') < 0); assert('safe renderer', renderer.indexOf('innerHTML') < 0 && app.indexOf('innerHTML') < 0);
@@ -20,6 +20,8 @@ assert('targets SharePoint ms-Nav fallback', app.indexOf('nav[role="navigation"]
app.indexOf("querySelector('.ms-Nav-navItems')") >= 0); app.indexOf("querySelector('.ms-Nav-navItems')") >= 0);
assert('native navigation is not hidden', app.indexOf('current-navigation-managed') < 0 && assert('native navigation is not hidden', app.indexOf('current-navigation-managed') < 0 &&
read('src/extensions/currentNavigation/CurrentNavigation.module.scss').indexOf(':not(#CurrentNavigationHost)') < 0); read('src/extensions/currentNavigation/CurrentNavigation.module.scss').indexOf(':not(#CurrentNavigationHost)') < 0);
assert('row hover and neutral border', read('src/extensions/currentNavigation/CurrentNavigation.module.scss').indexOf('.current-navigation-row:hover') >= 0 &&
read('src/extensions/currentNavigation/CurrentNavigation.module.scss').indexOf('default: #edebe9') >= 0);
assert('custom navigation is appended below SiteNavigation', app.indexOf('this.siteNavigation.appendChild(this.host)') >= 0); assert('custom navigation is appended below SiteNavigation', app.indexOf('this.siteNavigation.appendChild(this.host)') >= 0);
assert('observer cleanup', app.indexOf('observer.disconnect()') >= 0); assert('observer cleanup', app.indexOf('observer.disconnect()') >= 0);
assert('treeview semantics', renderer.indexOf("setAttribute('role', root ? 'tree' : 'group')") >= 0 && assert('treeview semantics', renderer.indexOf("setAttribute('role', root ? 'tree' : 'group')") >= 0 &&