Add Current Navigation Application Customizer

- Created a new SPFx Application Customizer for current navigation.
- Implemented core functionality to fetch and render navigation items from a SharePoint term set.
- Added styles for the navigation component using SCSS.
- Included localization support for English and German languages.
- Developed unit tests for core navigation functionalities.
- Configured TypeScript and TSLint settings for the project.
- Added validation scripts for static assets and package configuration.
This commit is contained in:
Torsten Brendgen
2026-08-18 17:13:35 +02:00
commit 0a3219117a
28 changed files with 18388 additions and 0 deletions
@@ -0,0 +1,91 @@
@import '~@microsoft/sp-office-ui-fabric-core/dist/sass/SPFabricCore.scss';
:global {
.current-navigation {
position: relative;
z-index: 299;
width: 100%;
border-bottom: 1px solid $ms-color-neutralLight;
background: $ms-color-white;
color: $ms-color-neutralPrimary;
font-family: $ms-font-family-fallbacks;
font-size: $ms-font-size-s;
}
.current-navigation ul {
margin: 0;
padding: 0;
list-style: none;
}
.current-navigation-root {
display: flex;
min-height: 40px;
padding: 0 16px !important;
}
.current-navigation li {
position: relative;
}
.current-navigation a,
.current-navigation span {
display: flex;
align-items: center;
min-height: 40px;
padding: 0 12px;
color: inherit;
text-decoration: none;
white-space: nowrap;
}
.current-navigation a:hover,
.current-navigation a:focus,
.current-navigation a.is-current {
color: $ms-color-themePrimary;
background: $ms-color-neutralLighter;
}
.current-navigation a:focus {
outline: 2px solid $ms-color-themePrimary;
outline-offset: -2px;
}
.current-navigation-children {
position: absolute;
top: 100%;
left: 0;
display: none;
min-width: 220px;
border: 1px solid $ms-color-neutralLight;
background: $ms-color-white;
box-shadow: 0 4px 12px rgba(0, 0, 0, .16);
}
.current-navigation-children .current-navigation-children {
top: 0;
left: 100%;
}
.current-navigation li:hover > .current-navigation-children,
.current-navigation li:focus-within > .current-navigation-children {
display: block;
}
@media (max-width: 767px) {
.current-navigation-root {
flex-wrap: wrap;
padding: 0 8px !important;
}
.current-navigation-children,
.current-navigation-children .current-navigation-children {
position: static;
display: block;
min-width: 0;
border: 0;
box-shadow: none;
padding-left: 16px;
}
}
}