@onemrvapublic/design-system 20.11.1-develop.8 → 20.11.1-develop.9
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md
CHANGED
|
@@ -33,16 +33,12 @@ If you need access to our design system board, send us a message.
|
|
|
33
33
|
@Bram Decuypere (NL / EN)
|
|
34
34
|
## Changelog
|
|
35
35
|
|
|
36
|
-
### 20.11.1-develop.
|
|
36
|
+
### 20.11.1-develop.9
|
|
37
37
|
|
|
38
|
-
## [20.11.1-develop.
|
|
38
|
+
## [20.11.1-develop.9](https://rvaonem.ghe.com/AS-DESIGN-SYSTEM/core/compare/v20.11.1-develop.8...v20.11.1-develop.9) (2026-01-15)
|
|
39
39
|
|
|
40
40
|
|
|
41
41
|
### Bug Fixes
|
|
42
42
|
|
|
43
|
-
* **
|
|
44
|
-
* **dependencies:** move ibantools and libphonenumber-js to peerdeps ([73b9a61](https://rvaonem.ghe.com/AS-DESIGN-SYSTEM/core/commit/73b9a617c26ac179b677f5e06f965b56a4b71647))
|
|
45
|
-
* **avatar:** remove fixed fallback color ([f550062](https://rvaonem.ghe.com/AS-DESIGN-SYSTEM/core/commit/f55006243dc39d4fc77ef8c6112c8da1f76cfe7d))
|
|
46
|
-
* **types:** resolve ajv type conflicts and optimize dependencies ([43c96c6](https://rvaonem.ghe.com/AS-DESIGN-SYSTEM/core/commit/43c96c6a624f9c1c9c72b7ea5692d152b2952972))
|
|
47
|
-
* **layout:** set primary color for avatar component and expose OnemrvaMatColor in component template ([54967fe](https://rvaonem.ghe.com/AS-DESIGN-SYSTEM/core/commit/54967fe19aad4c15969686d7f9e806ec35e91a87))
|
|
43
|
+
* **breadcrumb:** fix initial load ([42b3c36](https://rvaonem.ghe.com/AS-DESIGN-SYSTEM/core/commit/42b3c36e6f92038e15cc8fbf7f434738ab7f9b64))
|
|
48
44
|
|
|
@@ -10,46 +10,41 @@ import { TranslatePipe } from '@ngx-translate/core';
|
|
|
10
10
|
class OnemrvaMatBreadcrumbService {
|
|
11
11
|
constructor() {
|
|
12
12
|
this.router = inject(Router);
|
|
13
|
-
// Subject emitting the breadcrumb hierarchy
|
|
14
13
|
this._breadcrumbs$ = new BehaviorSubject([]);
|
|
15
|
-
// Observable exposing the breadcrumb hierarchy
|
|
16
14
|
this.breadcrumbs$ = this._breadcrumbs$.asObservable();
|
|
17
|
-
|
|
18
|
-
.pipe(
|
|
19
|
-
// Filter the NavigationEnd events as the breadcrumb is updated only when the route reaches its end
|
|
20
|
-
filter(event => event instanceof NavigationEnd))
|
|
21
|
-
.subscribe(() => {
|
|
22
|
-
// Construct the breadcrumb hierarchy
|
|
15
|
+
const rebuild = () => {
|
|
23
16
|
const root = this.router.routerState.snapshot.root;
|
|
24
17
|
const breadcrumbs = [];
|
|
25
18
|
this.addBreadcrumb(root, [], breadcrumbs);
|
|
26
|
-
// Emit the new hierarchy
|
|
27
19
|
this._breadcrumbs$.next(breadcrumbs);
|
|
28
|
-
}
|
|
20
|
+
};
|
|
21
|
+
// If the service is created after the initial navigation, we missed NavigationEnd.
|
|
22
|
+
if (this.router.navigated) {
|
|
23
|
+
queueMicrotask(rebuild);
|
|
24
|
+
}
|
|
25
|
+
this.router.events
|
|
26
|
+
.pipe(filter((e) => e instanceof NavigationEnd))
|
|
27
|
+
.subscribe(rebuild);
|
|
29
28
|
}
|
|
30
29
|
addBreadcrumb(route, parentUrl, breadcrumbs) {
|
|
31
|
-
if (route)
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
breadcrumbs.push(breadcrumb);
|
|
48
|
-
}
|
|
49
|
-
}
|
|
50
|
-
// Add another element for the next route part
|
|
51
|
-
this.addBreadcrumb(route.firstChild, routeUrl, breadcrumbs);
|
|
30
|
+
if (!route)
|
|
31
|
+
return;
|
|
32
|
+
const routeUrl = parentUrl.concat(route.url.map(u => u.path));
|
|
33
|
+
const navigationTitle = route.data?.['navigationTitle'];
|
|
34
|
+
if (navigationTitle) {
|
|
35
|
+
const url = '/' + routeUrl.join('/');
|
|
36
|
+
const breadcrumb = {
|
|
37
|
+
label: navigationTitle,
|
|
38
|
+
url,
|
|
39
|
+
translate: !!route.data?.['translate'],
|
|
40
|
+
};
|
|
41
|
+
const last = breadcrumbs[breadcrumbs.length - 1];
|
|
42
|
+
if (last && last.url === url)
|
|
43
|
+
breadcrumbs[breadcrumbs.length - 1] = breadcrumb;
|
|
44
|
+
else
|
|
45
|
+
breadcrumbs.push(breadcrumb);
|
|
52
46
|
}
|
|
47
|
+
this.addBreadcrumb(route.firstChild, routeUrl, breadcrumbs);
|
|
53
48
|
}
|
|
54
49
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: OnemrvaMatBreadcrumbService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
55
50
|
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: OnemrvaMatBreadcrumbService, providedIn: 'root' }); }
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"onemrvapublic-design-system-mat-breadcrumb.mjs","sources":["../../../../projects/onemrva/design-system/mat-breadcrumb/src/onemrva-mat-breadcrumb.service.ts","../../../../projects/onemrva/design-system/mat-breadcrumb/src/onemrva-mat-breadcrumb.component.ts","../../../../projects/onemrva/design-system/mat-breadcrumb/src/onemrva-mat-breadcrumb.component.html","../../../../projects/onemrva/design-system/mat-breadcrumb/src/onemrva-mat-breadcrumb.module.ts","../../../../projects/onemrva/design-system/mat-breadcrumb/index.ts","../../../../projects/onemrva/design-system/mat-breadcrumb/onemrvapublic-design-system-mat-breadcrumb.ts"],"sourcesContent":["import { Injectable, inject } from '@angular/core';\nimport { ActivatedRouteSnapshot, NavigationEnd, Router } from '@angular/router';\nimport { BehaviorSubject } from 'rxjs';\nimport { filter } from 'rxjs/operators';\nimport { OnemrvaBreadcrumb } from './onemrva-mat-breadcrumb.model';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class OnemrvaMatBreadcrumbService {\n private router = inject(Router);\n\n // Subject emitting the breadcrumb hierarchy\n private readonly _breadcrumbs$ = new BehaviorSubject<OnemrvaBreadcrumb[]>([]);\n\n // Observable exposing the breadcrumb hierarchy\n readonly breadcrumbs$ = this._breadcrumbs$.asObservable();\n\n constructor() {\n this.router.events\n .pipe(\n // Filter the NavigationEnd events as the breadcrumb is updated only when the route reaches its end\n filter(event => event instanceof NavigationEnd),\n )\n .subscribe(() => {\n // Construct the breadcrumb hierarchy\n const root = this.router.routerState.snapshot.root;\n const breadcrumbs: OnemrvaBreadcrumb[] = [];\n this.addBreadcrumb(root, [], breadcrumbs);\n\n // Emit the new hierarchy\n this._breadcrumbs$.next(breadcrumbs);\n });\n }\n\n private addBreadcrumb(\n route: ActivatedRouteSnapshot | null,\n parentUrl: string[],\n breadcrumbs: OnemrvaBreadcrumb[],\n ) {\n if (route) {\n // Construct the route URL\n const routeUrl = parentUrl.concat(route.url.map(url => url.path));\n\n // Add an element for the current route part\n if (route.data['navigationTitle']) {\n const url = '/' + routeUrl.join('/');\n const breadcrumb = {\n label: route.data['navigationTitle'],\n url,\n translate: route.data['translate'] ? route.data['translate'] : false,\n };\n\n if (\n breadcrumbs.length > 0 &&\n url === breadcrumbs[breadcrumbs.length - 1].url\n ) {\n breadcrumbs[breadcrumbs.length - 1] = breadcrumb;\n } else {\n breadcrumbs.push(breadcrumb);\n }\n }\n\n // Add another element for the next route part\n this.addBreadcrumb(route.firstChild, routeUrl, breadcrumbs);\n }\n }\n}\n","import { Component, effect, inject, input } from '@angular/core';\nimport { Observable, of } from 'rxjs';\nimport { OnemrvaBreadcrumb } from './onemrva-mat-breadcrumb.model';\nimport { OnemrvaMatBreadcrumbService } from './onemrva-mat-breadcrumb.service';\nimport { AsyncPipe, NgStyle } from '@angular/common';\nimport { RouterLink } from '@angular/router';\nimport { MatIcon } from '@angular/material/icon';\nimport { TranslatePipe } from '@ngx-translate/core';\n\n@Component({\n selector: 'onemrva-mat-breadcrumb',\n templateUrl: 'onemrva-mat-breadcrumb.component.html',\n styleUrls: ['onemrva-mat-breadcrumb.component.scss'],\n imports: [NgStyle, RouterLink, MatIcon, AsyncPipe, TranslatePipe],\n standalone: true,\n})\nexport class OnemrvaMatBreadcrumbComponent {\n public paths = input<OnemrvaBreadcrumb[]>([]);\n\n breadcrumbs$!: Observable<OnemrvaBreadcrumb[]>;\n\n breadcrumbService = inject(OnemrvaMatBreadcrumbService);\n\n constructor() {\n effect(() => {\n if (this.paths() && this.paths().length > 0) {\n this.breadcrumbs$ = of(this.paths());\n } else {\n this.breadcrumbs$ = this.breadcrumbService.breadcrumbs$;\n }\n });\n }\n // ngOnInit(): void {\n // if (this.fakePath) {\n // this.breadcrumbs$ = of(\n // this.fakePath.map(path => ({\n // label: path,\n // url: path,\n // translate: false,\n // })),\n // );\n // } else {\n // this.breadcrumbs$ = this.breadcrumbService.breadcrumbs$;\n // }\n // }\n}\n","@if (breadcrumbs$ | async; as bc) {\n <ng-container>\n @if (bc.length > 0) {\n <ul class=\"onemrva-mat-breadcrumb\">\n @for (breadcrumb of bc; track breadcrumb.label; let bridx = $index) {\n <li\n class=\"onemrva-mat-breadcrumb-link-container\"\n [ngStyle]=\"{\n display: bc.length <= 6 || bridx <= 2 ? 'list-item' : 'none',\n }\"\n >\n <div\n [routerLink]=\"breadcrumb.url\"\n class=\"onemrva-mat-breadcrumb-link\"\n >\n @if (breadcrumb.translate) {\n {{ breadcrumb.label | translate }}\n } @else {\n {{ breadcrumb.label }}\n }\n </div>\n\n @if (bridx < bc.length - 1) {\n <mat-icon class=\"chevron-right\" style=\"width: 10px\"\n >chevron_right</mat-icon\n >\n }\n </li>\n @if (bc.length > 6) {\n <li\n class=\"onemrva-mat-breadcrumb-link-container onemrva-mat-breadcrumb-link-container-hidden\"\n >\n ...\n <mat-icon class=\"chevron-right\" style=\"width: 10px\"\n >chevron_right</mat-icon\n >\n </li>\n <li class=\"onemrva-mat-breadcrumb-link-container\">\n @if (bc[bc.length - 1].url) {\n <div\n [routerLink]=\"bc[bc.length - 1].url\"\n class=\"onemrva-mat-breadcrumb-link\"\n >\n {{ bc[bc.length - 1].label }}\n </div>\n } @else {\n <div class=\"onemrva-mat-breadcrumb-link\">\n {{ bc[bc.length - 1].label }}\n </div>\n }\n </li>\n }\n }\n </ul>\n }\n </ng-container>\n}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { MatIconModule } from '@angular/material/icon';\nimport { RouterModule } from '@angular/router';\nimport { OnemrvaMatBreadcrumbComponent } from './onemrva-mat-breadcrumb.component';\n\n@NgModule({\n declarations: [],\n imports: [\n CommonModule,\n MatIconModule,\n RouterModule,\n OnemrvaMatBreadcrumbComponent,\n ],\n exports: [],\n})\nexport class OnemrvaMatBreadcrumbModule {}\n","/*\n * Public API Surface of mat-breadcrumb\n */\n\nexport * from './src/onemrva-mat-breadcrumb.component';\nexport * from './src/onemrva-mat-breadcrumb.module';\nexport * from './src/onemrva-mat-breadcrumb.model';\nexport * from './src/onemrva-mat-breadcrumb.service';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"onemrvapublic-design-system-mat-breadcrumb.mjs","sources":["../../../../projects/onemrva/design-system/mat-breadcrumb/src/onemrva-mat-breadcrumb.service.ts","../../../../projects/onemrva/design-system/mat-breadcrumb/src/onemrva-mat-breadcrumb.component.ts","../../../../projects/onemrva/design-system/mat-breadcrumb/src/onemrva-mat-breadcrumb.component.html","../../../../projects/onemrva/design-system/mat-breadcrumb/src/onemrva-mat-breadcrumb.module.ts","../../../../projects/onemrva/design-system/mat-breadcrumb/index.ts","../../../../projects/onemrva/design-system/mat-breadcrumb/onemrvapublic-design-system-mat-breadcrumb.ts"],"sourcesContent":["import { Injectable, inject } from '@angular/core';\nimport { ActivatedRouteSnapshot, NavigationEnd, Router } from '@angular/router';\nimport { BehaviorSubject } from 'rxjs';\nimport { filter } from 'rxjs/operators';\nimport { OnemrvaBreadcrumb } from './onemrva-mat-breadcrumb.model';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class OnemrvaMatBreadcrumbService {\n private router = inject(Router);\n\n private readonly _breadcrumbs$ = new BehaviorSubject<OnemrvaBreadcrumb[]>([]);\n readonly breadcrumbs$ = this._breadcrumbs$.asObservable();\n\n constructor() {\n const rebuild = () => {\n const root = this.router.routerState.snapshot.root;\n const breadcrumbs: OnemrvaBreadcrumb[] = [];\n this.addBreadcrumb(root, [], breadcrumbs);\n\n this._breadcrumbs$.next(breadcrumbs);\n };\n\n // If the service is created after the initial navigation, we missed NavigationEnd.\n if (this.router.navigated) {\n queueMicrotask(rebuild);\n }\n\n this.router.events\n .pipe(filter((e): e is NavigationEnd => e instanceof NavigationEnd))\n .subscribe(rebuild);\n }\n\n private addBreadcrumb(\n route: ActivatedRouteSnapshot | null,\n parentUrl: string[],\n breadcrumbs: OnemrvaBreadcrumb[],\n ) {\n if (!route) return;\n\n const routeUrl = parentUrl.concat(route.url.map(u => u.path));\n\n const navigationTitle = route.data?.['navigationTitle'];\n if (navigationTitle) {\n const url = '/' + routeUrl.join('/');\n const breadcrumb: OnemrvaBreadcrumb = {\n label: navigationTitle,\n url,\n translate: !!route.data?.['translate'],\n };\n\n const last = breadcrumbs[breadcrumbs.length - 1];\n if (last && last.url === url)\n breadcrumbs[breadcrumbs.length - 1] = breadcrumb;\n else breadcrumbs.push(breadcrumb);\n }\n\n this.addBreadcrumb(route.firstChild, routeUrl, breadcrumbs);\n }\n}\n","import { Component, effect, inject, input } from '@angular/core';\nimport { Observable, of } from 'rxjs';\nimport { OnemrvaBreadcrumb } from './onemrva-mat-breadcrumb.model';\nimport { OnemrvaMatBreadcrumbService } from './onemrva-mat-breadcrumb.service';\nimport { AsyncPipe, NgStyle } from '@angular/common';\nimport { RouterLink } from '@angular/router';\nimport { MatIcon } from '@angular/material/icon';\nimport { TranslatePipe } from '@ngx-translate/core';\n\n@Component({\n selector: 'onemrva-mat-breadcrumb',\n templateUrl: 'onemrva-mat-breadcrumb.component.html',\n styleUrls: ['onemrva-mat-breadcrumb.component.scss'],\n imports: [NgStyle, RouterLink, MatIcon, AsyncPipe, TranslatePipe],\n standalone: true,\n})\nexport class OnemrvaMatBreadcrumbComponent {\n public paths = input<OnemrvaBreadcrumb[]>([]);\n\n breadcrumbs$!: Observable<OnemrvaBreadcrumb[]>;\n\n breadcrumbService = inject(OnemrvaMatBreadcrumbService);\n\n constructor() {\n effect(() => {\n if (this.paths() && this.paths().length > 0) {\n this.breadcrumbs$ = of(this.paths());\n } else {\n this.breadcrumbs$ = this.breadcrumbService.breadcrumbs$;\n }\n });\n }\n // ngOnInit(): void {\n // if (this.fakePath) {\n // this.breadcrumbs$ = of(\n // this.fakePath.map(path => ({\n // label: path,\n // url: path,\n // translate: false,\n // })),\n // );\n // } else {\n // this.breadcrumbs$ = this.breadcrumbService.breadcrumbs$;\n // }\n // }\n}\n","@if (breadcrumbs$ | async; as bc) {\n <ng-container>\n @if (bc.length > 0) {\n <ul class=\"onemrva-mat-breadcrumb\">\n @for (breadcrumb of bc; track breadcrumb.label; let bridx = $index) {\n <li\n class=\"onemrva-mat-breadcrumb-link-container\"\n [ngStyle]=\"{\n display: bc.length <= 6 || bridx <= 2 ? 'list-item' : 'none',\n }\"\n >\n <div\n [routerLink]=\"breadcrumb.url\"\n class=\"onemrva-mat-breadcrumb-link\"\n >\n @if (breadcrumb.translate) {\n {{ breadcrumb.label | translate }}\n } @else {\n {{ breadcrumb.label }}\n }\n </div>\n\n @if (bridx < bc.length - 1) {\n <mat-icon class=\"chevron-right\" style=\"width: 10px\"\n >chevron_right</mat-icon\n >\n }\n </li>\n @if (bc.length > 6) {\n <li\n class=\"onemrva-mat-breadcrumb-link-container onemrva-mat-breadcrumb-link-container-hidden\"\n >\n ...\n <mat-icon class=\"chevron-right\" style=\"width: 10px\"\n >chevron_right</mat-icon\n >\n </li>\n <li class=\"onemrva-mat-breadcrumb-link-container\">\n @if (bc[bc.length - 1].url) {\n <div\n [routerLink]=\"bc[bc.length - 1].url\"\n class=\"onemrva-mat-breadcrumb-link\"\n >\n {{ bc[bc.length - 1].label }}\n </div>\n } @else {\n <div class=\"onemrva-mat-breadcrumb-link\">\n {{ bc[bc.length - 1].label }}\n </div>\n }\n </li>\n }\n }\n </ul>\n }\n </ng-container>\n}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { MatIconModule } from '@angular/material/icon';\nimport { RouterModule } from '@angular/router';\nimport { OnemrvaMatBreadcrumbComponent } from './onemrva-mat-breadcrumb.component';\n\n@NgModule({\n declarations: [],\n imports: [\n CommonModule,\n MatIconModule,\n RouterModule,\n OnemrvaMatBreadcrumbComponent,\n ],\n exports: [],\n})\nexport class OnemrvaMatBreadcrumbModule {}\n","/*\n * Public API Surface of mat-breadcrumb\n */\n\nexport * from './src/onemrva-mat-breadcrumb.component';\nexport * from './src/onemrva-mat-breadcrumb.module';\nexport * from './src/onemrva-mat-breadcrumb.model';\nexport * from './src/onemrva-mat-breadcrumb.service';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|