@onecx/angular-accelerator 4.36.0 → 4.37.1

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.
@@ -1,11 +1,13 @@
1
+ import { __decorate, __metadata } from "tslib";
1
2
  import { Injectable } from '@angular/core';
2
3
  import { ActivatedRoute, NavigationEnd, Router } from '@angular/router';
3
4
  import { TranslateService } from '@ngx-translate/core';
5
+ import { UntilDestroy, untilDestroyed } from '@ngneat/until-destroy';
4
6
  import { BehaviorSubject, filter } from 'rxjs';
5
7
  import * as i0 from "@angular/core";
6
8
  import * as i1 from "@angular/router";
7
9
  import * as i2 from "@ngx-translate/core";
8
- export class BreadcrumbService {
10
+ let BreadcrumbService = class BreadcrumbService {
9
11
  constructor(router, activeRoute, translateService) {
10
12
  this.router = router;
11
13
  this.activeRoute = activeRoute;
@@ -13,38 +15,65 @@ export class BreadcrumbService {
13
15
  this.itemsSource = new BehaviorSubject([]);
14
16
  this.generatedItemsSource = new BehaviorSubject([]);
15
17
  this.itemsHandler = this.itemsSource.asObservable();
16
- const breadcrumbs = [];
17
- this.addBreadcrumb(this.activeRoute.snapshot, [], breadcrumbs);
18
- this.generatedItemsSource.next(breadcrumbs);
19
- this.router.events.pipe(filter((e) => e instanceof NavigationEnd)).subscribe(() => {
18
+ this.generateBreadcrumbs(this.activeRoute.snapshot);
19
+ this.router.events
20
+ .pipe(untilDestroyed(this), filter((e) => e instanceof NavigationEnd))
21
+ .subscribe(() => {
20
22
  const root = this.router.routerState.snapshot.root;
23
+ this.generateBreadcrumbs(root);
24
+ });
25
+ }
26
+ generateBreadcrumbs(route) {
27
+ if (route?.data['mfeInfo']) {
28
+ const breadcrumbs = [
29
+ {
30
+ label: route.data['mfeInfo'].productName,
31
+ routerLink: route.data['mfeInfo'].baseHref,
32
+ },
33
+ ];
34
+ const baseUrl = route.data['mfeInfo'].baseHref.split('/').filter((value) => value);
35
+ const parentUrl = route.url.map((url) => url.path);
36
+ const isUsingMatcher = !parentUrl.every((item) => baseUrl.includes(item));
37
+ if (isUsingMatcher) {
38
+ this.createBreadcrumb(route, parentUrl, breadcrumbs);
39
+ }
40
+ this.addBreadcrumb(route.firstChild, parentUrl, breadcrumbs);
41
+ this.generatedItemsSource.next(breadcrumbs);
42
+ }
43
+ else if (route?.data['breadcrumb']) {
21
44
  const breadcrumbs = [];
22
- this.addBreadcrumb(root, [], breadcrumbs);
45
+ this.addBreadcrumb(route, [], breadcrumbs);
23
46
  this.generatedItemsSource.next(breadcrumbs);
24
- });
47
+ }
48
+ else if (route) {
49
+ this.generateBreadcrumbs(route.firstChild);
50
+ }
25
51
  }
26
52
  addBreadcrumb(route, parentUrl, breadcrumbs) {
27
53
  if (route && route.url) {
28
54
  const routeUrl = parentUrl.concat(route.url.map((url) => url.path));
29
55
  if (route.routeConfig?.path) {
30
- if (route.data['breadcrumb']) {
31
- const breadcrumb = {
32
- label: this.getLabel(route.data, route.paramMap),
33
- routerLink: '/' + routeUrl.join('/'),
34
- };
35
- breadcrumbs.push(breadcrumb);
36
- }
37
- else {
38
- const breadcrumb = {
39
- label: 'NA',
40
- routerLink: '/' + routeUrl.join('/'),
41
- };
42
- breadcrumbs.push(breadcrumb);
43
- }
56
+ this.createBreadcrumb(route, routeUrl, breadcrumbs);
44
57
  }
45
58
  this.addBreadcrumb(route.firstChild, routeUrl, breadcrumbs);
46
59
  }
47
60
  }
61
+ createBreadcrumb(route, routeUrl, breadcrumbs) {
62
+ if (route.data['breadcrumb']) {
63
+ const breadcrumb = {
64
+ label: this.getLabel(route.data, route.paramMap),
65
+ routerLink: '/' + routeUrl.join('/'),
66
+ };
67
+ breadcrumbs.push(breadcrumb);
68
+ }
69
+ else {
70
+ const breadcrumb = {
71
+ label: 'NA',
72
+ routerLink: '/' + routeUrl.join('/'),
73
+ };
74
+ breadcrumbs.push(breadcrumb);
75
+ }
76
+ }
48
77
  getLabel(data, params) {
49
78
  if (typeof data['breadcrumbFn'] === 'function') {
50
79
  return data['breadcrumbFn'](data, params);
@@ -69,11 +98,16 @@ export class BreadcrumbService {
69
98
  this.itemsSource.next(items);
70
99
  }
71
100
  }
72
- }
101
+ };
73
102
  BreadcrumbService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: BreadcrumbService, deps: [{ token: i1.Router }, { token: i1.ActivatedRoute }, { token: i2.TranslateService }], target: i0.ɵɵFactoryTarget.Injectable });
74
103
  BreadcrumbService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: BreadcrumbService, providedIn: 'any' });
104
+ BreadcrumbService = __decorate([
105
+ UntilDestroy(),
106
+ __metadata("design:paramtypes", [Router, ActivatedRoute, TranslateService])
107
+ ], BreadcrumbService);
108
+ export { BreadcrumbService };
75
109
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: BreadcrumbService, decorators: [{
76
110
  type: Injectable,
77
111
  args: [{ providedIn: 'any' }]
78
112
  }], ctorParameters: function () { return [{ type: i1.Router }, { type: i1.ActivatedRoute }, { type: i2.TranslateService }]; } });
79
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnJlYWRjcnVtYi5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9hbmd1bGFyLWFjY2VsZXJhdG9yL3NyYy9saWIvc2VydmljZXMvYnJlYWRjcnVtYi5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUE7QUFDMUMsT0FBTyxFQUFFLGNBQWMsRUFBZ0MsYUFBYSxFQUFZLE1BQU0sRUFBRSxNQUFNLGlCQUFpQixDQUFBO0FBQy9HLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHFCQUFxQixDQUFBO0FBQ3RELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxFQUFFLE1BQU0sTUFBTSxDQUFBOzs7O0FBSzlDLE1BQU0sT0FBTyxpQkFBaUI7SUFNNUIsWUFBb0IsTUFBYyxFQUFVLFdBQTJCLEVBQVUsZ0JBQWtDO1FBQS9GLFdBQU0sR0FBTixNQUFNLENBQVE7UUFBVSxnQkFBVyxHQUFYLFdBQVcsQ0FBZ0I7UUFBVSxxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQWtCO1FBTDNHLGdCQUFXLEdBQUcsSUFBSSxlQUFlLENBQWEsRUFBRSxDQUFDLENBQUE7UUFDekQseUJBQW9CLEdBQUcsSUFBSSxlQUFlLENBQWEsRUFBRSxDQUFDLENBQUE7UUFFMUQsaUJBQVksR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLFlBQVksRUFBRSxDQUFBO1FBRzVDLE1BQU0sV0FBVyxHQUFlLEVBQUUsQ0FBQTtRQUNsQyxJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsUUFBUSxFQUFFLEVBQUUsRUFBRSxXQUFXLENBQUMsQ0FBQTtRQUM5RCxJQUFJLENBQUMsb0JBQW9CLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFBO1FBQzNDLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FB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LENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDO29CQUNoQixHQUFHLENBQUM7b0JBQ0osS0FBSyxFQUFFLFlBQVksQ0FBQyxDQUFDLENBQUMsUUFBUSxJQUFJLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxLQUFLO29CQUNoRCxLQUFLLEVBQUUsWUFBWSxDQUFDLENBQUMsQ0FBQyxRQUFRLElBQUksRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDLEtBQUs7aUJBQ2pELENBQUMsQ0FBQyxDQUNKLENBQUE7WUFDSCxDQUFDLENBQUMsQ0FBQTtTQUNIO2FBQU07WUFDTCxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQTtTQUM3QjtJQUNILENBQUM7OytHQW5FVSxpQkFBaUI7bUhBQWpCLGlCQUFpQixjQURKLEtBQUs7NEZBQ2xCLGlCQUFpQjtrQkFEN0IsVUFBVTttQkFBQyxFQUFFLFVBQVUsRUFBRSxLQUFLLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSdcbmltcG9ydCB7IEFjdGl2YXRlZFJvdXRlLCBBY3RpdmF0ZWRSb3V0ZVNuYXBzaG90LCBEYXRhLCBOYXZpZ2F0aW9uRW5kLCBQYXJhbU1hcCwgUm91dGVyIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJ1xuaW1wb3J0IHsgVHJhbnNsYXRlU2VydmljZSB9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnXG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIGZpbHRlciB9IGZyb20gJ3J4anMnXG5pbXBvcnQgeyBNZW51SXRlbSB9IGZyb20gJ3ByaW1lbmcvYXBpJ1xuaW1wb3J0IHsgQnJlYWRDcnVtYk1lbnVJdGVtIH0gZnJvbSAnLi4vbW9kZWwvYnJlYWRjcnVtYi1tZW51LWl0ZW0ubW9kZWwnXG5cbkBJbmplY3RhYmxlKHsgcHJvdmlkZWRJbjogJ2FueScgfSlcbmV4cG9ydCBjbGFzcyBCcmVhZGNydW1iU2VydmljZSB7XG4gIHByaXZhdGUgaXRlbXNTb3VyY2UgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PE1lbnVJdGVtW10+KFtdKVxuICBnZW5lcmF0ZWRJdGVtc1NvdXJjZSA9IG5ldyBCZWhhdmlvclN1YmplY3Q8TWVudUl0ZW1bXT4oW10pXG5cbiAgaXRlbXNIYW5kbGVyID0gdGhpcy5pdGVtc1NvdXJjZS5hc09ic2VydmFibGUoKVxuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgcm91dGVyOiBSb3V0ZXIsIHByaXZhdGUgYWN0aXZlUm91dGU6IEFjdGl2YXRlZFJvdXRlLCBwcml2YXRlIHRyYW5zbGF0ZVNlcnZpY2U6IFRyYW5zbGF0ZVNlcnZpY2UpIHtcbiAgICBjb25zdCBicmVhZGNydW1iczogTWVudUl0ZW1bXSA9IFtdXG4gICAgdGhpcy5hZGRCcmVhZGNydW1iKHRoaXMuYWN0aXZlUm91dGUuc25hcHNob3QsIFtdLCBicmVhZGNydW1icylcbiAgICB0aGlzLmdlbmVyYXRlZEl0ZW1zU291cmNlLm5leHQoYnJlYWRjcnVtYnMpXG4gICAgdGhpcy5yb3V0ZXIuZXZlbnRzLnBpcGUoZmlsdGVyKChlKSA9PiBlIGluc3RhbmNlb2YgTmF2aWdhdGlvbkVuZCkpLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICBjb25zdCByb290ID0gdGhpcy5yb3V0ZXIucm91dGVyU3RhdGUuc25hcHNob3Qucm9vdFxuICAgICAgY29uc3QgYnJlYWRjcnVtYnM6IE1lbnVJdGVtW10gPSBbXVxuICAgICAgdGhpcy5hZGRCcmVhZGNydW1iKHJvb3QsIFtdLCBicmVhZGNydW1icylcblxuICAgICAgdGhpcy5nZW5lcmF0ZWRJdGVtc1NvdXJjZS5uZXh0KGJyZWFkY3J1bWJzKVxuICAgIH0pXG4gIH1cblxuICBwcml2YXRlIGFkZEJyZWFkY3J1bWIocm91dGU6IEFjdGl2YXRlZFJvdXRlU25hcHNob3QgfCBudWxsLCBwYXJlbnRVcmw6IHN0cmluZ1tdLCBicmVhZGNydW1iczogTWVudUl0ZW1bXSkge1xuICAgIGlmIChyb3V0ZSAmJiByb3V0ZS51cmwpIHtcbiAgICAgIGNvbnN0IHJvdXRlVXJsID0gcGFyZW50VXJsLmNvbmNhdChyb3V0ZS51cmwubWFwKCh1cmwpID0+IHVybC5wYXRoKSlcbiAgICAgIGlmIChyb3V0ZS5yb3V0ZUNvbmZpZz8ucGF0aCkge1xuICAgICAgICBpZiAocm91dGUuZGF0YVsnYnJlYWRjcnVtYiddKSB7XG4gICAgICAgICAgY29uc3QgYnJlYWRjcnVtYjogTWVudUl0ZW0gPSB7XG4gICAgICAgICAgICBsYWJlbDogdGhpcy5nZXRMYWJlbChyb3V0ZS5kYXRhLCByb3V0ZS5wYXJhbU1hcCksXG4gICAgICAgICAgICByb3V0ZXJMaW5rOiAnLycgKyByb3V0ZVVybC5qb2luKCcvJyksXG4gICAgICAgICAgfVxuICAgICAgICAgIGJyZWFkY3J1bWJzLnB1c2goYnJlYWRjcnVtYilcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBjb25zdCBicmVhZGNydW1iOiBNZW51SXRlbSA9IHtcbiAgICAgICAgICAgIGxhYmVsOiAnTkEnLFxuICAgICAgICAgICAgcm91dGVyTGluazogJy8nICsgcm91dGVVcmwuam9pbignLycpLFxuICAgICAgICAgIH1cbiAgICAgICAgICBicmVhZGNydW1icy5wdXNoKGJyZWFkY3J1bWIpXG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgdGhpcy5hZGRCcmVhZGNydW1iKHJvdXRlLmZpcnN0Q2hpbGQsIHJvdXRlVXJsLCBicmVhZGNydW1icylcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGdldExhYmVsKGRhdGE6IERhdGEsIHBhcmFtczogUGFyYW1NYXApIHtcbiAgICBpZiAodHlwZW9mIGRhdGFbJ2JyZWFkY3J1bWJGbiddID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICByZXR1cm4gZGF0YVsnYnJlYWRjcnVtYkZuJ10oZGF0YSwgcGFyYW1zKVxuICAgIH1cbiAgICByZXR1cm4gZGF0YVsnYnJlYWRjcnVtYiddXG4gIH1cblxuICBzZXRJdGVtcyhpdGVtczogQnJlYWRDcnVtYk1lbnVJdGVtW10pIHtcbiAgICBjb25zdCB0cmFuc2xhdGlvbktleXMgPSBbXG4gICAgICAuLi5pdGVtcy5tYXAoKGkpID0+IGkubGFiZWxLZXkgfHwgJycpLmZpbHRlcigobCkgPT4gISFsKSxcbiAgICAgIC4uLml0ZW1zLm1hcCgoaSkgPT4gaS50aXRsZUtleSB8fCAnJykuZmlsdGVyKChsKSA9PiAhIWwpLFxuICAgIF1cbiAgICBpZiAodHJhbnNsYXRpb25LZXlzLmxlbmd0aCkge1xuICAgICAgdGhpcy50cmFuc2xhdGVTZXJ2aWNlLmdldCh0cmFuc2xhdGlvbktleXMpLnN1YnNjcmliZSgodHJhbnNsYXRpb25zOiBhbnkpID0+IHtcbiAgICAgICAgdGhpcy5pdGVtc1NvdXJjZS5uZXh0KFxuICAgICAgICAgIGl0ZW1zLm1hcCgoaSkgPT4gKHtcbiAgICAgICAgICAgIC4uLmksXG4gICAgICAgICAgICBsYWJlbDogdHJhbnNsYXRpb25zW2kubGFiZWxLZXkgfHwgJyddIHx8IGkubGFiZWwsXG4gICAgICAgICAgICB0aXRsZTogdHJhbnNsYXRpb25zW2kudGl0bGVLZXkgfHwgJyddIHx8IGkudGl0bGUsXG4gICAgICAgICAgfSkpXG4gICAgICAgIClcbiAgICAgIH0pXG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuaXRlbXNTb3VyY2UubmV4dChpdGVtcylcbiAgICB9XG4gIH1cbn1cbiJdfQ==
113
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnJlYWRjcnVtYi5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9hbmd1bGFyLWFjY2VsZXJhdG9yL3NyYy9saWIvc2VydmljZXMvYnJlYWRjcnVtYi5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFBO0FBQzFDLE9BQU8sRUFBRSxjQUFjLEVBQWdDLGFBQWEsRUFBWSxNQUFNLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQTtBQUMvRyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQTtBQUN0RCxPQUFPLEVBQUUsWUFBWSxFQUFFLGNBQWMsRUFBRSxNQUFNLHVCQUF1QixDQUFBO0FBQ3BFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxFQUFFLE1BQU0sTUFBTSxDQUFBOzs7O0FBTXZDLElBQU0saUJBQWlCLEdBQXZCLE1BQU0saUJBQWlCO0lBTTVCLFlBQW9CLE1BQWMsRUFBVSxXQUEyQixFQUFVLGdCQUFrQztRQUEvRixXQUFNLEdBQU4sTUFBTSxDQUFRO1FBQVUsZ0JBQVcsR0FBWCxXQUFXLENBQWdCO1FBQVUscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFrQjtRQUwzRyxnQkFBVyxHQUFHLElBQUksZUFBZSxDQUFhLEVBQUUsQ0FBQyxDQUFBO1FBQ3pELHlCQUFvQixHQUFHLElBQUksZUFBZSxDQUFhLEVBQUUsQ0FBQyxDQUFBO1FBRTFELGlCQUFZLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxZQUFZLEVBQUUsQ0FBQTtRQUc1QyxJQUFJLENBQUMsbUJBQW1CLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxRQUFRLENBQUMsQ0FBQTtRQUNuRCxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU07YUFDZixJQUFJLENBQ0gsY0FBYyxDQUFDLElBQUksQ0FBQyxFQUNwQixNQUFNLENBQUMsQ0FBQyxDQUFDLEVB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QztTQUN6RCxDQUFBO1FBQ0QsSUFBSSxlQUFlLENBQUMsTUFBTSxFQUFFO1lBQzFCLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxHQUFHLENBQUMsZUFBZSxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsWUFBaUIsRUFBRSxFQUFFO2dCQUN6RSxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FDbkIsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQztvQkFDaEIsR0FBRyxDQUFDO29CQUNKLEtBQUssRUFBRSxZQUFZLENBQUMsQ0FBQyxDQUFDLFFBQVEsSUFBSSxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsS0FBSztvQkFDaEQsS0FBSyxFQUFFLFlBQVksQ0FBQyxDQUFDLENBQUMsUUFBUSxJQUFJLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxLQUFLO2lCQUNqRCxDQUFDLENBQUMsQ0FDSixDQUFBO1lBQ0gsQ0FBQyxDQUFDLENBQUE7U0FDSDthQUFNO1lBQ0wsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUE7U0FDN0I7SUFDSCxDQUFDOzsrR0FoR1UsaUJBQWlCO21IQUFqQixpQkFBaUIsY0FGSixLQUFLO0FBRWxCLGlCQUFpQjtJQUQ3QixZQUFZLEVBQUU7cUNBT2UsTUFBTSxFQUF1QixjQUFjLEVBQTRCLGdCQUFnQjtHQU54RyxpQkFBaUIsQ0FpRzdCO1NBakdZLGlCQUFpQjs0RkFBakIsaUJBQWlCO2tCQUY3QixVQUFVO21CQUFDLEVBQUUsVUFBVSxFQUFFLEtBQUssRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJ1xuaW1wb3J0IHsgQWN0aXZhdGVkUm91dGUsIEFjdGl2YXRlZFJvdXRlU25hcHNob3QsIERhdGEsIE5hdmlnYXRpb25FbmQsIFBhcmFtTWFwLCBSb3V0ZXIgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInXG5pbXBvcnQgeyBUcmFuc2xhdGVTZXJ2aWNlIH0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSdcbmltcG9ydCB7IFVudGlsRGVzdHJveSwgdW50aWxEZXN0cm95ZWQgfSBmcm9tICdAbmduZWF0L3VudGlsLWRlc3Ryb3knXG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIGZpbHRlciB9IGZyb20gJ3J4anMnXG5pbXBvcnQgeyBNZW51SXRlbSB9IGZyb20gJ3ByaW1lbmcvYXBpJ1xuaW1wb3J0IHsgQnJlYWRDcnVtYk1lbnVJdGVtIH0gZnJvbSAnLi4vbW9kZWwvYnJlYWRjcnVtYi1tZW51LWl0ZW0ubW9kZWwnXG5cbkBJbmplY3RhYmxlKHsgcHJvdmlkZWRJbjogJ2FueScgfSlcbkBVbnRpbERlc3Ryb3koKVxuZXhwb3J0IGNsYXNzIEJyZWFkY3J1bWJTZXJ2aWNlIHtcbiAgcHJpdmF0ZSBpdGVtc1NvdXJjZSA9IG5ldyBCZWhhdmlvclN1YmplY3Q8TWVudUl0ZW1bXT4oW10pXG4gIGdlbmVyYXRlZEl0ZW1zU291cmNlID0gbmV3IEJlaGF2aW9yU3ViamVjdDxNZW51SXRlbVtdPihbXSlcblxuICBpdGVtc0hhbmRsZXIgPSB0aGlzLml0ZW1zU291cmNlLmFzT2JzZXJ2YWJsZSgpXG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSByb3V0ZXI6IFJvdXRlciwgcHJpdmF0ZSBhY3RpdmVSb3V0ZTogQWN0aXZhdGVkUm91dGUsIHByaXZhdGUgdHJhbnNsYXRlU2VydmljZTogVHJhbnNsYXRlU2VydmljZSkge1xuICAgIHRoaXMuZ2VuZXJhdGVCcmVhZGNydW1icyh0aGlzLmFjdGl2ZVJvdXRlLnNuYXBzaG90KVxuICAgIHRoaXMucm91dGVyLmV2ZW50c1xuICAgICAgLnBpcGUoXG4gICAgICAgIHVudGlsRGVzdHJveWVkKHRoaXMpLFxuICAgICAgICBmaWx0ZXIoKGUpID0+IGUgaW5zdGFuY2VvZiBOYXZpZ2F0aW9uRW5kKVxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgIGNvbnN0IHJvb3QgPSB0aGlzLnJvdXRlci5yb3V0ZXJTdGF0ZS5zbmFwc2hvdC5yb290XG4gICAgICAgIHRoaXMuZ2VuZXJhdGVCcmVhZGNydW1icyhyb290KVxuICAgICAgfSlcbiAgfVxuXG4gIHByaXZhdGUgZ2VuZXJhdGVCcmVhZGNydW1icyhyb3V0ZTogQWN0aXZhdGVkUm91dGVTbmFwc2hvdCB8IG51bGwpIHtcbiAgICBpZiAocm91dGU/LmRhdGFbJ21mZUluZm8nXSkge1xuICAgICAgY29uc3QgYnJlYWRjcnVtYnM6IE1lbnVJdGVtW10gPSBbXG4gICAgICAgIHtcbiAgICAgICAgICBsYWJlbDogcm91dGUuZGF0YVsnbWZlSW5mbyddLnByb2R1Y3ROYW1lLFxuICAgICAgICAgIHJvdXRlckxpbms6IHJvdXRlLmRhdGFbJ21mZUluZm8nXS5iYXNlSHJlZixcbiAgICAgICAgfSxcbiAgICAgIF1cbiAgICAgIGNvbnN0IGJhc2VVcmw6IHN0cmluZ1tdID0gKHJvdXRlLmRhdGFbJ21mZUluZm8nXS5iYXNlSHJlZiBhcyBzdHJpbmcpLnNwbGl0KCcvJykuZmlsdGVyKCh2YWx1ZSkgPT4gdmFsdWUpXG4gICAgICBjb25zdCBwYXJlbnRVcmw6IHN0cmluZ1tdID0gcm91dGUudXJsLm1hcCgodXJsKSA9PiB1cmwucGF0aClcbiAgICAgIGNvbnN0IGlzVXNpbmdNYXRjaGVyID0gIXBhcmVudFVybC5ldmVyeSgoaXRlbSkgPT4gYmFzZVVybC5pbmNsdWRlcyhpdGVtKSlcbiAgICAgIGlmIChpc1VzaW5nTWF0Y2hlcikge1xuICAgICAgICB0aGlzLmNyZWF0ZUJyZWFkY3J1bWIocm91dGUsIHBhcmVudFVybCwgYnJlYWRjcnVtYnMpXG4gICAgICB9XG4gICAgICB0aGlzLmFkZEJyZWFkY3J1bWIocm91dGUuZmlyc3RDaGlsZCwgcGFyZW50VXJsLCBicmVhZGNydW1icylcbiAgICAgIHRoaXMuZ2VuZXJhdGVkSXRlbXNTb3VyY2UubmV4dChicmVhZGNydW1icylcbiAgICB9IGVsc2UgaWYgKHJvdXRlPy5kYXRhWydicmVhZGNydW1iJ10pIHtcbiAgICAgIGNvbnN0IGJyZWFkY3J1bWJzOiBNZW51SXRlbVtdID0gW11cbiAgICAgIHRoaXMuYWRkQnJlYWRjcnVtYihyb3V0ZSwgW10sIGJyZWFkY3J1bWJzKVxuICAgICAgdGhpcy5nZW5lcmF0ZWRJdGVtc1NvdXJjZS5uZXh0KGJyZWFkY3J1bWJzKVxuICAgIH0gZWxzZSBpZiAocm91dGUpIHtcbiAgICAgIHRoaXMuZ2VuZXJhdGVCcmVhZGNydW1icyhyb3V0ZS5maXJzdENoaWxkKVxuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgYWRkQnJlYWRjcnVtYihyb3V0ZTogQWN0aXZhdGVkUm91dGVTbmFwc2hvdCB8IG51bGwsIHBhcmVudFVybDogc3RyaW5nW10sIGJyZWFkY3J1bWJzOiBNZW51SXRlbVtdKSB7XG4gICAgaWYgKHJvdXRlICYmIHJvdXRlLnVybCkge1xuICAgICAgY29uc3Qgcm91dGVVcmwgPSBwYXJlbnRVcmwuY29uY2F0KHJvdXRlLnVybC5tYXAoKHVybCkgPT4gdXJsLnBhdGgpKVxuICAgICAgaWYgKHJvdXRlLnJvdXRlQ29uZmlnPy5wYXRoKSB7XG4gICAgICAgIHRoaXMuY3JlYXRlQnJlYWRjcnVtYihyb3V0ZSwgcm91dGVVcmwsIGJyZWFkY3J1bWJzKVxuICAgICAgfVxuXG4gICAgICB0aGlzLmFkZEJyZWFkY3J1bWIocm91dGUuZmlyc3RDaGlsZCwgcm91dGVVcmwsIGJyZWFkY3J1bWJzKVxuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgY3JlYXRlQnJlYWRjcnVtYihyb3V0ZTogQWN0aXZhdGVkUm91dGVTbmFwc2hvdCwgcm91dGVVcmw6IHN0cmluZ1tdLCBicmVhZGNydW1iczogTWVudUl0ZW1bXSkge1xuICAgIGlmIChyb3V0ZS5kYXRhWydicmVhZGNydW1iJ10pIHtcbiAgICAgIGNvbnN0IGJyZWFkY3J1bWI6IE1lbnVJdGVtID0ge1xuICAgICAgICBsYWJlbDogdGhpcy5nZXRMYWJlbChyb3V0ZS5kYXRhLCByb3V0ZS5wYXJhbU1hcCksXG4gICAgICAgIHJvdXRlckxpbms6ICcvJyArIHJvdXRlVXJsLmpvaW4oJy8nKSxcbiAgICAgIH1cbiAgICAgIGJyZWFkY3J1bWJzLnB1c2goYnJlYWRjcnVtYilcbiAgICB9IGVsc2Uge1xuICAgICAgY29uc3QgYnJlYWRjcnVtYjogTWVudUl0ZW0gPSB7XG4gICAgICAgIGxhYmVsOiAnTkEnLFxuICAgICAgICByb3V0ZXJMaW5rOiAnLycgKyByb3V0ZVVybC5qb2luKCcvJyksXG4gICAgICB9XG4gICAgICBicmVhZGNydW1icy5wdXNoKGJyZWFkY3J1bWIpXG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBnZXRMYWJlbChkYXRhOiBEYXRhLCBwYXJhbXM6IFBhcmFtTWFwKSB7XG4gICAgaWYgKHR5cGVvZiBkYXRhWydicmVhZGNydW1iRm4nXSA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgcmV0dXJuIGRhdGFbJ2JyZWFkY3J1bWJGbiddKGRhdGEsIHBhcmFtcylcbiAgICB9XG4gICAgcmV0dXJuIGRhdGFbJ2JyZWFkY3J1bWInXVxuICB9XG5cbiAgc2V0SXRlbXMoaXRlbXM6IEJyZWFkQ3J1bWJNZW51SXRlbVtdKSB7XG4gICAgY29uc3QgdHJhbnNsYXRpb25LZXlzID0gW1xuICAgICAgLi4uaXRlbXMubWFwKChpKSA9PiBpLmxhYmVsS2V5IHx8ICcnKS5maWx0ZXIoKGwpID0+ICEhbCksXG4gICAgICAuLi5pdGVtcy5tYXAoKGkpID0+IGkudGl0bGVLZXkgfHwgJycpLmZpbHRlcigobCkgPT4gISFsKSxcbiAgICBdXG4gICAgaWYgKHRyYW5zbGF0aW9uS2V5cy5sZW5ndGgpIHtcbiAgICAgIHRoaXMudHJhbnNsYXRlU2VydmljZS5nZXQodHJhbnNsYXRpb25LZXlzKS5zdWJzY3JpYmUoKHRyYW5zbGF0aW9uczogYW55KSA9PiB7XG4gICAgICAgIHRoaXMuaXRlbXNTb3VyY2UubmV4dChcbiAgICAgICAgICBpdGVtcy5tYXAoKGkpID0+ICh7XG4gICAgICAgICAgICAuLi5pLFxuICAgICAgICAgICAgbGFiZWw6IHRyYW5zbGF0aW9uc1tpLmxhYmVsS2V5IHx8ICcnXSB8fCBpLmxhYmVsLFxuICAgICAgICAgICAgdGl0bGU6IHRyYW5zbGF0aW9uc1tpLnRpdGxlS2V5IHx8ICcnXSB8fCBpLnRpdGxlLFxuICAgICAgICAgIH0pKVxuICAgICAgICApXG4gICAgICB9KVxuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLml0ZW1zU291cmNlLm5leHQoaXRlbXMpXG4gICAgfVxuICB9XG59XG4iXX0=
@@ -12,12 +12,14 @@ import { FormGroup, FormControl, FormsModule, ReactiveFormsModule } from '@angul
12
12
  import * as i2 from 'primeng/dropdown';
13
13
  import { DropdownModule } from 'primeng/dropdown';
14
14
  import * as i1$1 from '@ngx-translate/core';
15
- import { TranslatePipe, TranslateModule } from '@ngx-translate/core';
15
+ import { TranslateService, TranslatePipe, TranslateModule } from '@ngx-translate/core';
16
16
  import * as i2$1 from 'primeng/api';
17
17
  import { PrimeIcons } from 'primeng/api';
18
18
  import { BehaviorSubject, filter, concat, of, map, combineLatest, mergeMap, withLatestFrom, tap, race, first, firstValueFrom, defaultIfEmpty, forkJoin } from 'rxjs';
19
+ import { __decorate, __metadata, __awaiter } from 'tslib';
19
20
  import * as i1$2 from '@angular/router';
20
- import { NavigationEnd, RouterModule } from '@angular/router';
21
+ import { NavigationEnd, Router, ActivatedRoute, RouterModule } from '@angular/router';
22
+ import { untilDestroyed, UntilDestroy } from '@ngneat/until-destroy';
21
23
  import * as i5 from 'primeng/breadcrumb';
22
24
  import { BreadcrumbModule } from 'primeng/breadcrumb';
23
25
  import * as i8 from 'primeng/menu';
@@ -42,7 +44,6 @@ import { ChartModule } from 'primeng/chart';
42
44
  import * as i6$2 from 'primeng/message';
43
45
  import { MessageModule } from 'primeng/message';
44
46
  import { SyncableTopic } from '@onecx/accelerator';
45
- import { __awaiter } from 'tslib';
46
47
  import { TranslateHttpLoader } from '@ngx-translate/http-loader';
47
48
 
48
49
  class IfPermissionDirective {
@@ -235,7 +236,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
235
236
  type: Output
236
237
  }] } });
237
238
 
238
- class BreadcrumbService {
239
+ let BreadcrumbService = class BreadcrumbService {
239
240
  constructor(router, activeRoute, translateService) {
240
241
  this.router = router;
241
242
  this.activeRoute = activeRoute;
@@ -243,39 +244,66 @@ class BreadcrumbService {
243
244
  this.itemsSource = new BehaviorSubject([]);
244
245
  this.generatedItemsSource = new BehaviorSubject([]);
245
246
  this.itemsHandler = this.itemsSource.asObservable();
246
- const breadcrumbs = [];
247
- this.addBreadcrumb(this.activeRoute.snapshot, [], breadcrumbs);
248
- this.generatedItemsSource.next(breadcrumbs);
249
- this.router.events.pipe(filter((e) => e instanceof NavigationEnd)).subscribe(() => {
247
+ this.generateBreadcrumbs(this.activeRoute.snapshot);
248
+ this.router.events
249
+ .pipe(untilDestroyed(this), filter((e) => e instanceof NavigationEnd))
250
+ .subscribe(() => {
250
251
  const root = this.router.routerState.snapshot.root;
252
+ this.generateBreadcrumbs(root);
253
+ });
254
+ }
255
+ generateBreadcrumbs(route) {
256
+ if (route === null || route === void 0 ? void 0 : route.data['mfeInfo']) {
257
+ const breadcrumbs = [
258
+ {
259
+ label: route.data['mfeInfo'].productName,
260
+ routerLink: route.data['mfeInfo'].baseHref,
261
+ },
262
+ ];
263
+ const baseUrl = route.data['mfeInfo'].baseHref.split('/').filter((value) => value);
264
+ const parentUrl = route.url.map((url) => url.path);
265
+ const isUsingMatcher = !parentUrl.every((item) => baseUrl.includes(item));
266
+ if (isUsingMatcher) {
267
+ this.createBreadcrumb(route, parentUrl, breadcrumbs);
268
+ }
269
+ this.addBreadcrumb(route.firstChild, parentUrl, breadcrumbs);
270
+ this.generatedItemsSource.next(breadcrumbs);
271
+ }
272
+ else if (route === null || route === void 0 ? void 0 : route.data['breadcrumb']) {
251
273
  const breadcrumbs = [];
252
- this.addBreadcrumb(root, [], breadcrumbs);
274
+ this.addBreadcrumb(route, [], breadcrumbs);
253
275
  this.generatedItemsSource.next(breadcrumbs);
254
- });
276
+ }
277
+ else if (route) {
278
+ this.generateBreadcrumbs(route.firstChild);
279
+ }
255
280
  }
256
281
  addBreadcrumb(route, parentUrl, breadcrumbs) {
257
282
  var _a;
258
283
  if (route && route.url) {
259
284
  const routeUrl = parentUrl.concat(route.url.map((url) => url.path));
260
285
  if ((_a = route.routeConfig) === null || _a === void 0 ? void 0 : _a.path) {
261
- if (route.data['breadcrumb']) {
262
- const breadcrumb = {
263
- label: this.getLabel(route.data, route.paramMap),
264
- routerLink: '/' + routeUrl.join('/'),
265
- };
266
- breadcrumbs.push(breadcrumb);
267
- }
268
- else {
269
- const breadcrumb = {
270
- label: 'NA',
271
- routerLink: '/' + routeUrl.join('/'),
272
- };
273
- breadcrumbs.push(breadcrumb);
274
- }
286
+ this.createBreadcrumb(route, routeUrl, breadcrumbs);
275
287
  }
276
288
  this.addBreadcrumb(route.firstChild, routeUrl, breadcrumbs);
277
289
  }
278
290
  }
291
+ createBreadcrumb(route, routeUrl, breadcrumbs) {
292
+ if (route.data['breadcrumb']) {
293
+ const breadcrumb = {
294
+ label: this.getLabel(route.data, route.paramMap),
295
+ routerLink: '/' + routeUrl.join('/'),
296
+ };
297
+ breadcrumbs.push(breadcrumb);
298
+ }
299
+ else {
300
+ const breadcrumb = {
301
+ label: 'NA',
302
+ routerLink: '/' + routeUrl.join('/'),
303
+ };
304
+ breadcrumbs.push(breadcrumb);
305
+ }
306
+ }
279
307
  getLabel(data, params) {
280
308
  if (typeof data['breadcrumbFn'] === 'function') {
281
309
  return data['breadcrumbFn'](data, params);
@@ -296,9 +324,13 @@ class BreadcrumbService {
296
324
  this.itemsSource.next(items);
297
325
  }
298
326
  }
299
- }
327
+ };
300
328
  BreadcrumbService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: BreadcrumbService, deps: [{ token: i1$2.Router }, { token: i1$2.ActivatedRoute }, { token: i1$1.TranslateService }], target: i0.ɵɵFactoryTarget.Injectable });
301
329
  BreadcrumbService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: BreadcrumbService, providedIn: 'any' });
330
+ BreadcrumbService = __decorate([
331
+ UntilDestroy(),
332
+ __metadata("design:paramtypes", [Router, ActivatedRoute, TranslateService])
333
+ ], BreadcrumbService);
302
334
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: BreadcrumbService, decorators: [{
303
335
  type: Injectable,
304
336
  args: [{ providedIn: 'any' }]