@covalent/core 10.4.3 → 10.5.0
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,18 +1,28 @@
|
|
|
1
|
-
import { ElementRef, AfterViewInit
|
|
1
|
+
import { ElementRef, AfterViewInit } from '@angular/core';
|
|
2
2
|
import * as i0 from "@angular/core";
|
|
3
3
|
export declare class TdBreadcrumbComponent implements AfterViewInit {
|
|
4
|
-
private _elementRef;
|
|
5
4
|
private _changeDetectorRef;
|
|
6
5
|
private _displayCrumb;
|
|
7
6
|
private _width;
|
|
8
7
|
private _displayIcon;
|
|
9
8
|
private _separatorIcon;
|
|
9
|
+
private _shouldTruncate;
|
|
10
|
+
private _maxWidth?;
|
|
11
|
+
elementRef: ElementRef<any>;
|
|
12
|
+
fullText: string;
|
|
13
|
+
flexOrder: number;
|
|
14
|
+
isCurrentPage: boolean;
|
|
15
|
+
get ariaCurrent(): string | null;
|
|
10
16
|
matButtonClass: boolean;
|
|
11
17
|
tdBreadCrumbClass: boolean;
|
|
12
18
|
get separatorIcon(): string;
|
|
13
19
|
set separatorIcon(separatorIcon: string);
|
|
14
20
|
get displayIcon(): boolean;
|
|
15
21
|
set displayIcon(displayIcon: boolean);
|
|
22
|
+
get shouldTruncate(): boolean;
|
|
23
|
+
set shouldTruncate(shouldTruncate: boolean);
|
|
24
|
+
get maxWidth(): number | undefined;
|
|
25
|
+
set maxWidth(maxWidth: number | undefined);
|
|
16
26
|
get displayCrumb(): boolean;
|
|
17
27
|
/**
|
|
18
28
|
* Whether to display the crumb or not
|
|
@@ -26,7 +36,8 @@ export declare class TdBreadcrumbComponent implements AfterViewInit {
|
|
|
26
36
|
* Gets the display style of the crumb
|
|
27
37
|
*/
|
|
28
38
|
get displayBinding(): string | undefined;
|
|
29
|
-
|
|
39
|
+
get maxWidthBinding(): number | undefined;
|
|
40
|
+
get orderBinding(): number;
|
|
30
41
|
ngAfterViewInit(): void;
|
|
31
42
|
/**
|
|
32
43
|
* Stop click propagation when clicking on icon
|
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
import { QueryList, OnInit, OnDestroy, AfterContentInit,
|
|
1
|
+
import { QueryList, OnInit, OnDestroy, AfterContentInit, AfterViewInit } from '@angular/core';
|
|
2
|
+
import { MatMenuTrigger } from '@angular/material/menu';
|
|
2
3
|
import { TdBreadcrumbComponent } from './breadcrumb/breadcrumb.component';
|
|
3
4
|
import * as i0 from "@angular/core";
|
|
4
5
|
export declare class TdBreadcrumbsComponent implements OnInit, AfterContentInit, AfterViewInit, OnDestroy {
|
|
@@ -7,15 +8,31 @@ export declare class TdBreadcrumbsComponent implements OnInit, AfterContentInit,
|
|
|
7
8
|
private _resizing;
|
|
8
9
|
private _separatorIcon;
|
|
9
10
|
private _destroy$;
|
|
11
|
+
/**
|
|
12
|
+
* Maximum width ratio for the last breadcrumb when truncation is needed.
|
|
13
|
+
* Set to 35% of available width to ensure last breadcrumb doesn't dominate the space
|
|
14
|
+
* while still being readable.
|
|
15
|
+
*/
|
|
16
|
+
private readonly LAST_BREADCRUMB_MAX_WIDTH_RATIO;
|
|
10
17
|
tdBreadCrumbsClass: boolean;
|
|
18
|
+
role: string;
|
|
19
|
+
ariaLabel: string;
|
|
11
20
|
_breadcrumbs: QueryList<TdBreadcrumbComponent>;
|
|
12
21
|
hiddenBreadcrumbs: TdBreadcrumbComponent[];
|
|
22
|
+
overflowMenuItems: TdBreadcrumbComponent[];
|
|
23
|
+
showOverflowButton: boolean;
|
|
24
|
+
overflowButtonOrder: number;
|
|
25
|
+
overflowMenuTrigger?: MatMenuTrigger;
|
|
13
26
|
/**
|
|
14
27
|
* Sets the icon url shown between breadcrumbs. Defaults to 'chevron_right'.
|
|
15
28
|
*/
|
|
16
29
|
set separatorIcon(separatorIcon: string);
|
|
17
30
|
get separatorIcon(): string;
|
|
18
|
-
|
|
31
|
+
size?: 'headline1' | 'headline2' | 'headline3' | 'headline4' | 'headline5' | 'headline6' | 'subtitle1' | 'subtitle2' | 'body1' | 'body2' | 'button' | 'caption';
|
|
32
|
+
get fontFamily(): string | undefined;
|
|
33
|
+
get fontSize(): string | undefined;
|
|
34
|
+
get fontWeight(): string | undefined;
|
|
35
|
+
get lineHeight(): string | undefined;
|
|
19
36
|
ngOnInit(): void;
|
|
20
37
|
ngAfterViewInit(): void;
|
|
21
38
|
ngAfterContentInit(): void;
|
|
@@ -25,6 +42,9 @@ export declare class TdBreadcrumbsComponent implements OnInit, AfterContentInit,
|
|
|
25
42
|
* The total count of individual breadcrumbs
|
|
26
43
|
*/
|
|
27
44
|
get count(): number;
|
|
45
|
+
get overflowButtonAriaLabel(): string;
|
|
46
|
+
handleOverflowItemClick(item: TdBreadcrumbComponent): void;
|
|
47
|
+
getItemText(item: TdBreadcrumbComponent): string;
|
|
28
48
|
/**
|
|
29
49
|
* Set the crumb icon separators
|
|
30
50
|
*/
|
|
@@ -32,5 +52,5 @@ export declare class TdBreadcrumbsComponent implements OnInit, AfterContentInit,
|
|
|
32
52
|
private _calculateVisibility;
|
|
33
53
|
private _waitToCalculateVisibility;
|
|
34
54
|
static ɵfac: i0.ɵɵFactoryDeclaration<TdBreadcrumbsComponent, never>;
|
|
35
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<TdBreadcrumbsComponent, "td-breadcrumbs", never, { "separatorIcon": { "alias": "separatorIcon"; "required": false; }; }, {}, ["_breadcrumbs"], ["*"], true, never>;
|
|
55
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<TdBreadcrumbsComponent, "td-breadcrumbs", never, { "separatorIcon": { "alias": "separatorIcon"; "required": false; }; "size": { "alias": "size"; "required": false; }; }, {}, ["_breadcrumbs"], ["*"], true, never>;
|
|
36
56
|
}
|
|
@@ -1,16 +1,23 @@
|
|
|
1
1
|
import * as i0 from '@angular/core';
|
|
2
|
-
import { ChangeDetectionStrategy, Component, HostBinding, Input, ContentChildren, NgModule } from '@angular/core';
|
|
2
|
+
import { inject, ChangeDetectorRef, ElementRef, ChangeDetectionStrategy, Component, HostBinding, Input, ViewChild, ContentChildren, NgModule } from '@angular/core';
|
|
3
3
|
import { Subject, fromEvent } from 'rxjs';
|
|
4
4
|
import { debounceTime, takeUntil, startWith } from 'rxjs/operators';
|
|
5
|
+
import * as i2$1 from '@angular/material/menu';
|
|
6
|
+
import { MatMenuModule, MatMenuTrigger } from '@angular/material/menu';
|
|
7
|
+
import * as i3 from '@angular/material/button';
|
|
8
|
+
import { MatButtonModule } from '@angular/material/button';
|
|
9
|
+
import * as i4 from '@angular/material/icon';
|
|
10
|
+
import { MatIcon, MatIconModule } from '@angular/material/icon';
|
|
5
11
|
import * as i1 from '@angular/common';
|
|
6
12
|
import { CommonModule } from '@angular/common';
|
|
7
|
-
import
|
|
13
|
+
import * as i2 from '@angular/material/tooltip';
|
|
14
|
+
import { MatTooltipModule } from '@angular/material/tooltip';
|
|
8
15
|
|
|
9
16
|
const _c0$1 = ["*"];
|
|
10
|
-
function
|
|
17
|
+
function TdBreadcrumbComponent_mat_icon_2_Template(rf, ctx) { if (rf & 1) {
|
|
11
18
|
const _r1 = i0.ɵɵgetCurrentView();
|
|
12
|
-
i0.ɵɵelementStart(0, "mat-icon",
|
|
13
|
-
i0.ɵɵlistener("click", function
|
|
19
|
+
i0.ɵɵelementStart(0, "mat-icon", 2);
|
|
20
|
+
i0.ɵɵlistener("click", function TdBreadcrumbComponent_mat_icon_2_Template_mat_icon_click_0_listener($event) { i0.ɵɵrestoreView(_r1); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1._handleIconClick($event)); });
|
|
14
21
|
i0.ɵɵtext(1);
|
|
15
22
|
i0.ɵɵelementEnd();
|
|
16
23
|
} if (rf & 2) {
|
|
@@ -20,12 +27,20 @@ function TdBreadcrumbComponent_mat_icon_1_Template(rf, ctx) { if (rf & 1) {
|
|
|
20
27
|
i0.ɵɵtextInterpolate(ctx_r1.separatorIcon);
|
|
21
28
|
} }
|
|
22
29
|
class TdBreadcrumbComponent {
|
|
23
|
-
|
|
24
|
-
_changeDetectorRef;
|
|
30
|
+
_changeDetectorRef = inject(ChangeDetectorRef);
|
|
25
31
|
_displayCrumb = true;
|
|
26
32
|
_width = 0;
|
|
27
33
|
_displayIcon = true;
|
|
28
34
|
_separatorIcon = 'chevron_right';
|
|
35
|
+
_shouldTruncate = false;
|
|
36
|
+
_maxWidth;
|
|
37
|
+
elementRef = inject(ElementRef);
|
|
38
|
+
fullText = '';
|
|
39
|
+
flexOrder = 0;
|
|
40
|
+
isCurrentPage = false;
|
|
41
|
+
get ariaCurrent() {
|
|
42
|
+
return this.isCurrentPage ? 'page' : null;
|
|
43
|
+
}
|
|
29
44
|
matButtonClass = true;
|
|
30
45
|
tdBreadCrumbClass = true;
|
|
31
46
|
// Sets the icon url shown between breadcrumbs. Defaults to 'chevron_right'
|
|
@@ -48,6 +63,24 @@ class TdBreadcrumbComponent {
|
|
|
48
63
|
this._changeDetectorRef.markForCheck();
|
|
49
64
|
});
|
|
50
65
|
}
|
|
66
|
+
get shouldTruncate() {
|
|
67
|
+
return this._shouldTruncate;
|
|
68
|
+
}
|
|
69
|
+
set shouldTruncate(shouldTruncate) {
|
|
70
|
+
this._shouldTruncate = shouldTruncate;
|
|
71
|
+
setTimeout(() => {
|
|
72
|
+
this._changeDetectorRef.markForCheck();
|
|
73
|
+
});
|
|
74
|
+
}
|
|
75
|
+
get maxWidth() {
|
|
76
|
+
return this._maxWidth;
|
|
77
|
+
}
|
|
78
|
+
set maxWidth(maxWidth) {
|
|
79
|
+
this._maxWidth = maxWidth;
|
|
80
|
+
setTimeout(() => {
|
|
81
|
+
this._changeDetectorRef.markForCheck();
|
|
82
|
+
});
|
|
83
|
+
}
|
|
51
84
|
get displayCrumb() {
|
|
52
85
|
return this._displayCrumb;
|
|
53
86
|
}
|
|
@@ -74,14 +107,20 @@ class TdBreadcrumbComponent {
|
|
|
74
107
|
// and showing them instead of the component doing itself for reasons like responsive
|
|
75
108
|
return this._displayCrumb ? undefined : 'none';
|
|
76
109
|
}
|
|
77
|
-
|
|
78
|
-
this.
|
|
79
|
-
|
|
110
|
+
get maxWidthBinding() {
|
|
111
|
+
return this._shouldTruncate ? this._maxWidth : undefined;
|
|
112
|
+
}
|
|
113
|
+
get orderBinding() {
|
|
114
|
+
return this.flexOrder;
|
|
80
115
|
}
|
|
81
116
|
ngAfterViewInit() {
|
|
82
117
|
// set the width from the actual rendered DOM element
|
|
83
118
|
setTimeout(() => {
|
|
84
|
-
this._width = (this.
|
|
119
|
+
this._width = (this.elementRef.nativeElement).getBoundingClientRect().width;
|
|
120
|
+
const textSpan = this.elementRef.nativeElement.querySelector('.td-breadcrumb-text');
|
|
121
|
+
if (textSpan) {
|
|
122
|
+
this.fullText = textSpan.textContent?.trim() || '';
|
|
123
|
+
}
|
|
85
124
|
this._changeDetectorRef.markForCheck();
|
|
86
125
|
});
|
|
87
126
|
}
|
|
@@ -92,23 +131,32 @@ class TdBreadcrumbComponent {
|
|
|
92
131
|
event.stopPropagation();
|
|
93
132
|
event.preventDefault();
|
|
94
133
|
}
|
|
95
|
-
static ɵfac = function TdBreadcrumbComponent_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || TdBreadcrumbComponent)(
|
|
96
|
-
static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: TdBreadcrumbComponent, selectors: [["td-breadcrumb"], ["a", "td-breadcrumb", ""]], hostVars:
|
|
97
|
-
i0.ɵɵ
|
|
134
|
+
static ɵfac = function TdBreadcrumbComponent_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || TdBreadcrumbComponent)(); };
|
|
135
|
+
static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: TdBreadcrumbComponent, selectors: [["td-breadcrumb"], ["a", "td-breadcrumb", ""]], hostVars: 11, hostBindings: function TdBreadcrumbComponent_HostBindings(rf, ctx) { if (rf & 2) {
|
|
136
|
+
i0.ɵɵattribute("aria-current", ctx.ariaCurrent);
|
|
137
|
+
i0.ɵɵstyleProp("display", ctx.displayBinding)("max-width", ctx.maxWidthBinding, "px")("order", ctx.orderBinding);
|
|
98
138
|
i0.ɵɵclassProp("mdc-button", ctx.matButtonClass)("td-breadcrumb", ctx.tdBreadCrumbClass);
|
|
99
|
-
} }, ngContentSelectors: _c0$1, decls:
|
|
139
|
+
} }, ngContentSelectors: _c0$1, decls: 3, vars: 6, consts: [[1, "td-breadcrumb-text", 3, "matTooltip", "matTooltipDisabled"], ["class", "td-breadcrumb-separator-icon", 3, "cursor", "click", 4, "ngIf"], [1, "td-breadcrumb-separator-icon", 3, "click"]], template: function TdBreadcrumbComponent_Template(rf, ctx) { if (rf & 1) {
|
|
100
140
|
i0.ɵɵprojectionDef();
|
|
101
|
-
i0.ɵɵ
|
|
102
|
-
i0.ɵɵ
|
|
141
|
+
i0.ɵɵelementStart(0, "span", 0);
|
|
142
|
+
i0.ɵɵprojection(1);
|
|
143
|
+
i0.ɵɵelementEnd();
|
|
144
|
+
i0.ɵɵtemplate(2, TdBreadcrumbComponent_mat_icon_2_Template, 2, 3, "mat-icon", 1);
|
|
103
145
|
} if (rf & 2) {
|
|
104
|
-
i0.ɵɵ
|
|
146
|
+
i0.ɵɵclassProp("td-breadcrumb-truncated", ctx.shouldTruncate);
|
|
147
|
+
i0.ɵɵproperty("matTooltip", ctx.shouldTruncate ? ctx.fullText : "")("matTooltipDisabled", !ctx.shouldTruncate);
|
|
148
|
+
i0.ɵɵattribute("aria-label", ctx.shouldTruncate ? ctx.fullText : "");
|
|
149
|
+
i0.ɵɵadvance(2);
|
|
105
150
|
i0.ɵɵproperty("ngIf", ctx.displayIcon);
|
|
106
|
-
} }, dependencies: [CommonModule, i1.NgIf, MatIcon], styles: [".td-breadcrumb[_nghost-%COMP%]{display:inline-flex;box-sizing:border-box;flex-direction:row;align-items:center;align-content:center;flex-shrink:0;justify-content:flex-end}.td-breadcrumb[_nghost-%COMP%] >*{margin:0 10px}[_nghost-%COMP%] mat-icon[_ngcontent-%COMP%]{font-size:16px;width:16px;height:16px}.mdc-button[_nghost-%COMP%]{min-width:0;padding:0}"], changeDetection: 0 });
|
|
151
|
+
} }, dependencies: [CommonModule, i1.NgIf, MatIcon, MatTooltipModule, i2.MatTooltip], styles: [".td-breadcrumb[_nghost-%COMP%]{display:inline-flex;box-sizing:border-box;flex-direction:row;align-items:center;align-content:center;flex-shrink:0;justify-content:flex-end;max-width:100%}.td-breadcrumb[_nghost-%COMP%] >*{margin:0 10px}[_nghost-%COMP%] mat-icon[_ngcontent-%COMP%]{font-size:16px;width:16px;height:16px}.mdc-button[_nghost-%COMP%]{min-width:0;padding:0}.td-breadcrumb-text[_ngcontent-%COMP%]{margin:0;padding:0;flex:1 1 auto;min-width:0}.td-breadcrumb-text.td-breadcrumb-truncated[_ngcontent-%COMP%]{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:100%}mat-icon.td-breadcrumb-separator-icon[_ngcontent-%COMP%]{flex-shrink:0}"], changeDetection: 0 });
|
|
107
152
|
}
|
|
108
153
|
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(TdBreadcrumbComponent, [{
|
|
109
154
|
type: Component,
|
|
110
|
-
args: [{ selector: 'td-breadcrumb, a[td-breadcrumb]', imports: [CommonModule, MatIcon], changeDetection: ChangeDetectionStrategy.OnPush, template: "<ng-content></ng-content>\n<mat-icon\n *ngIf=\"displayIcon\"\n class=\"td-breadcrumb-separator-icon\"\n [style.cursor]=\"'default'\"\n (click)=\"_handleIconClick($event)\"\n >{{ separatorIcon }}</mat-icon\n>\n", styles: [":host.td-breadcrumb{display:inline-flex;box-sizing:border-box;flex-direction:row;align-items:center;align-content:center;flex-shrink:0;justify-content:flex-end}:host.td-breadcrumb ::ng-deep>*{margin:0 10px}:host mat-icon{font-size:16px;width:16px;height:16px}:host.mdc-button{min-width:0;padding:0}\n"] }]
|
|
111
|
-
}],
|
|
155
|
+
args: [{ selector: 'td-breadcrumb, a[td-breadcrumb]', standalone: true, imports: [CommonModule, MatIcon, MatTooltipModule], changeDetection: ChangeDetectionStrategy.OnPush, template: "<span\n class=\"td-breadcrumb-text\"\n [class.td-breadcrumb-truncated]=\"shouldTruncate\"\n [matTooltip]=\"shouldTruncate ? fullText : ''\"\n [matTooltipDisabled]=\"!shouldTruncate\"\n [attr.aria-label]=\"shouldTruncate ? fullText : ''\"\n>\n <ng-content></ng-content>\n</span>\n<mat-icon\n *ngIf=\"displayIcon\"\n class=\"td-breadcrumb-separator-icon\"\n [style.cursor]=\"'default'\"\n (click)=\"_handleIconClick($event)\"\n >{{ separatorIcon }}</mat-icon\n>\n", styles: [":host.td-breadcrumb{display:inline-flex;box-sizing:border-box;flex-direction:row;align-items:center;align-content:center;flex-shrink:0;justify-content:flex-end;max-width:100%}:host.td-breadcrumb ::ng-deep>*{margin:0 10px}:host mat-icon{font-size:16px;width:16px;height:16px}:host.mdc-button{min-width:0;padding:0}.td-breadcrumb-text{margin:0;padding:0;flex:1 1 auto;min-width:0}.td-breadcrumb-text.td-breadcrumb-truncated{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:100%}mat-icon.td-breadcrumb-separator-icon{flex-shrink:0}\n"] }]
|
|
156
|
+
}], null, { ariaCurrent: [{
|
|
157
|
+
type: HostBinding,
|
|
158
|
+
args: ['attr.aria-current']
|
|
159
|
+
}], matButtonClass: [{
|
|
112
160
|
type: HostBinding,
|
|
113
161
|
args: ['class.mdc-button']
|
|
114
162
|
}], tdBreadCrumbClass: [{
|
|
@@ -117,21 +165,73 @@ class TdBreadcrumbComponent {
|
|
|
117
165
|
}], displayBinding: [{
|
|
118
166
|
type: HostBinding,
|
|
119
167
|
args: ['style.display']
|
|
168
|
+
}], maxWidthBinding: [{
|
|
169
|
+
type: HostBinding,
|
|
170
|
+
args: ['style.max-width.px']
|
|
171
|
+
}], orderBinding: [{
|
|
172
|
+
type: HostBinding,
|
|
173
|
+
args: ['style.order']
|
|
120
174
|
}] }); })();
|
|
121
|
-
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(TdBreadcrumbComponent, { className: "TdBreadcrumbComponent", filePath: "breadcrumb/breadcrumb.component.ts", lineNumber:
|
|
175
|
+
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(TdBreadcrumbComponent, { className: "TdBreadcrumbComponent", filePath: "breadcrumb/breadcrumb.component.ts", lineNumber: 22 }); })();
|
|
122
176
|
|
|
123
177
|
const _c0 = ["*"];
|
|
178
|
+
function TdBreadcrumbsComponent_button_1_Template(rf, ctx) { if (rf & 1) {
|
|
179
|
+
i0.ɵɵelementStart(0, "button", 5)(1, "mat-icon");
|
|
180
|
+
i0.ɵɵtext(2, "more_horiz");
|
|
181
|
+
i0.ɵɵelementEnd()();
|
|
182
|
+
} if (rf & 2) {
|
|
183
|
+
const ctx_r0 = i0.ɵɵnextContext();
|
|
184
|
+
const overflowMenu_r2 = i0.ɵɵreference(4);
|
|
185
|
+
i0.ɵɵstyleProp("order", ctx_r0.overflowButtonOrder);
|
|
186
|
+
i0.ɵɵproperty("matMenuTriggerFor", overflowMenu_r2);
|
|
187
|
+
i0.ɵɵattribute("aria-label", ctx_r0.overflowButtonAriaLabel)("data-test-id", "breadcrumb-overflow-button");
|
|
188
|
+
} }
|
|
189
|
+
function TdBreadcrumbsComponent_mat_icon_2_Template(rf, ctx) { if (rf & 1) {
|
|
190
|
+
i0.ɵɵelementStart(0, "mat-icon", 6);
|
|
191
|
+
i0.ɵɵtext(1);
|
|
192
|
+
i0.ɵɵelementEnd();
|
|
193
|
+
} if (rf & 2) {
|
|
194
|
+
const ctx_r0 = i0.ɵɵnextContext();
|
|
195
|
+
i0.ɵɵstyleProp("order", ctx_r0.overflowButtonOrder);
|
|
196
|
+
i0.ɵɵadvance();
|
|
197
|
+
i0.ɵɵtextInterpolate1(" ", ctx_r0.separatorIcon, "\n");
|
|
198
|
+
} }
|
|
199
|
+
function TdBreadcrumbsComponent_button_5_Template(rf, ctx) { if (rf & 1) {
|
|
200
|
+
const _r3 = i0.ɵɵgetCurrentView();
|
|
201
|
+
i0.ɵɵelementStart(0, "button", 7);
|
|
202
|
+
i0.ɵɵlistener("click", function TdBreadcrumbsComponent_button_5_Template_button_click_0_listener() { const item_r4 = i0.ɵɵrestoreView(_r3).$implicit; const ctx_r0 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r0.handleOverflowItemClick(item_r4)); });
|
|
203
|
+
i0.ɵɵtext(1);
|
|
204
|
+
i0.ɵɵelementEnd();
|
|
205
|
+
} if (rf & 2) {
|
|
206
|
+
const item_r4 = ctx.$implicit;
|
|
207
|
+
const ctx_r0 = i0.ɵɵnextContext();
|
|
208
|
+
i0.ɵɵattribute("data-test-id", "breadcrumb-overflow-menu-item-" + ctx_r0.getItemText(item_r4))("aria-label", "Navigate to " + ctx_r0.getItemText(item_r4));
|
|
209
|
+
i0.ɵɵadvance();
|
|
210
|
+
i0.ɵɵtextInterpolate1(" ", ctx_r0.getItemText(item_r4), " ");
|
|
211
|
+
} }
|
|
124
212
|
class TdBreadcrumbsComponent {
|
|
125
|
-
_elementRef;
|
|
126
|
-
_changeDetectorRef;
|
|
213
|
+
_elementRef = inject(ElementRef);
|
|
214
|
+
_changeDetectorRef = inject(ChangeDetectorRef);
|
|
127
215
|
_resizing = false;
|
|
128
216
|
_separatorIcon = 'chevron_right';
|
|
129
217
|
_destroy$ = new Subject();
|
|
218
|
+
/**
|
|
219
|
+
* Maximum width ratio for the last breadcrumb when truncation is needed.
|
|
220
|
+
* Set to 35% of available width to ensure last breadcrumb doesn't dominate the space
|
|
221
|
+
* while still being readable.
|
|
222
|
+
*/
|
|
223
|
+
LAST_BREADCRUMB_MAX_WIDTH_RATIO = 0.35;
|
|
130
224
|
tdBreadCrumbsClass = true;
|
|
225
|
+
role = 'navigation';
|
|
226
|
+
ariaLabel = 'Breadcrumb';
|
|
131
227
|
// all the sub components, which are the individual breadcrumbs
|
|
132
228
|
_breadcrumbs;
|
|
133
229
|
// the list of hidden breadcrumbs not shown right now (responsive)
|
|
134
230
|
hiddenBreadcrumbs = [];
|
|
231
|
+
overflowMenuItems = [];
|
|
232
|
+
showOverflowButton = false;
|
|
233
|
+
overflowButtonOrder = 50;
|
|
234
|
+
overflowMenuTrigger;
|
|
135
235
|
/**
|
|
136
236
|
* Sets the icon url shown between breadcrumbs. Defaults to 'chevron_right'.
|
|
137
237
|
*/
|
|
@@ -142,9 +242,26 @@ class TdBreadcrumbsComponent {
|
|
|
142
242
|
get separatorIcon() {
|
|
143
243
|
return this._separatorIcon;
|
|
144
244
|
}
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
this.
|
|
245
|
+
size;
|
|
246
|
+
get fontFamily() {
|
|
247
|
+
return this.size
|
|
248
|
+
? `var(--cv-typography-${this.size}-font-family)`
|
|
249
|
+
: undefined;
|
|
250
|
+
}
|
|
251
|
+
get fontSize() {
|
|
252
|
+
return this.size
|
|
253
|
+
? `var(--cv-typography-${this.size}-font-size)`
|
|
254
|
+
: undefined;
|
|
255
|
+
}
|
|
256
|
+
get fontWeight() {
|
|
257
|
+
return this.size
|
|
258
|
+
? `var(--cv-typography-${this.size}-font-weight)`
|
|
259
|
+
: undefined;
|
|
260
|
+
}
|
|
261
|
+
get lineHeight() {
|
|
262
|
+
return this.size
|
|
263
|
+
? `var(--cv-typography-${this.size}-line-height)`
|
|
264
|
+
: undefined;
|
|
148
265
|
}
|
|
149
266
|
ngOnInit() {
|
|
150
267
|
fromEvent(window, 'resize')
|
|
@@ -168,12 +285,15 @@ class TdBreadcrumbsComponent {
|
|
|
168
285
|
.pipe(startWith(this._breadcrumbs), takeUntil(this._destroy$))
|
|
169
286
|
.subscribe(() => {
|
|
170
287
|
this._waitToCalculateVisibility();
|
|
171
|
-
|
|
172
|
-
|
|
288
|
+
setTimeout(() => {
|
|
289
|
+
this.setCrumbIcons();
|
|
290
|
+
this._changeDetectorRef.markForCheck();
|
|
291
|
+
});
|
|
173
292
|
});
|
|
174
293
|
}
|
|
175
294
|
ngOnDestroy() {
|
|
176
295
|
this._destroy$.next();
|
|
296
|
+
this._destroy$.complete();
|
|
177
297
|
}
|
|
178
298
|
/*
|
|
179
299
|
* Current width of the element container
|
|
@@ -202,39 +322,135 @@ class TdBreadcrumbsComponent {
|
|
|
202
322
|
get count() {
|
|
203
323
|
return this._breadcrumbs ? this._breadcrumbs.length : 0;
|
|
204
324
|
}
|
|
325
|
+
get overflowButtonAriaLabel() {
|
|
326
|
+
const count = this.hiddenBreadcrumbs.length;
|
|
327
|
+
return `Show ${count} hidden breadcrumb${count > 1 ? 's' : ''}`;
|
|
328
|
+
}
|
|
329
|
+
handleOverflowItemClick(item) {
|
|
330
|
+
const nativeElement = item.elementRef?.nativeElement;
|
|
331
|
+
if (nativeElement) {
|
|
332
|
+
nativeElement.click();
|
|
333
|
+
}
|
|
334
|
+
}
|
|
335
|
+
getItemText(item) {
|
|
336
|
+
return item.fullText || '';
|
|
337
|
+
}
|
|
205
338
|
/**
|
|
206
339
|
* Set the crumb icon separators
|
|
207
340
|
*/
|
|
208
341
|
setCrumbIcons() {
|
|
209
342
|
if (this._breadcrumbs) {
|
|
210
343
|
const breadcrumbArray = this._breadcrumbs.toArray();
|
|
211
|
-
|
|
212
|
-
breadcrumb
|
|
213
|
-
|
|
214
|
-
|
|
344
|
+
setTimeout(() => {
|
|
345
|
+
breadcrumbArray.forEach((breadcrumb, index) => {
|
|
346
|
+
breadcrumb.separatorIcon = this.separatorIcon;
|
|
347
|
+
breadcrumb.displayIcon = true;
|
|
348
|
+
breadcrumb.isCurrentPage = index === breadcrumbArray.length - 1;
|
|
349
|
+
});
|
|
350
|
+
this._changeDetectorRef.markForCheck();
|
|
215
351
|
});
|
|
216
352
|
}
|
|
217
353
|
}
|
|
218
354
|
_calculateVisibility() {
|
|
219
355
|
const crumbsArray = this._breadcrumbs.toArray();
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
356
|
+
const totalBreadcrumbs = crumbsArray.length;
|
|
357
|
+
// Reset all orders when there are 2 or fewer breadcrumbs
|
|
358
|
+
if (totalBreadcrumbs <= 2) {
|
|
359
|
+
crumbsArray.forEach((breadcrumb) => {
|
|
360
|
+
breadcrumb.displayCrumb = true;
|
|
361
|
+
breadcrumb.shouldTruncate = false;
|
|
362
|
+
breadcrumb.maxWidth = undefined;
|
|
363
|
+
breadcrumb.flexOrder = 0; // Default order
|
|
364
|
+
});
|
|
365
|
+
this.showOverflowButton = false;
|
|
366
|
+
this.overflowMenuItems = [];
|
|
367
|
+
this.hiddenBreadcrumbs = [];
|
|
368
|
+
this._changeDetectorRef.markForCheck();
|
|
369
|
+
return;
|
|
370
|
+
}
|
|
371
|
+
const firstCrumb = crumbsArray[0];
|
|
372
|
+
const lastCrumb = crumbsArray[totalBreadcrumbs - 1];
|
|
373
|
+
const containerWidth = this.nativeElementWidth;
|
|
374
|
+
const totalRequiredWidth = crumbsArray.reduce((sum, crumb) => sum + crumb.width, 0);
|
|
375
|
+
if (totalRequiredWidth <= containerWidth) {
|
|
376
|
+
crumbsArray.forEach((breadcrumb, index) => {
|
|
377
|
+
breadcrumb.displayCrumb = true;
|
|
378
|
+
breadcrumb.shouldTruncate = false;
|
|
379
|
+
breadcrumb.maxWidth = undefined;
|
|
380
|
+
breadcrumb.flexOrder =
|
|
381
|
+
index === 0
|
|
382
|
+
? 0
|
|
383
|
+
: index === totalBreadcrumbs - 1
|
|
384
|
+
? 1000
|
|
385
|
+
: index * 10; // Assign orders based on index for middle crumbs
|
|
386
|
+
});
|
|
387
|
+
this.showOverflowButton = false;
|
|
388
|
+
this.overflowMenuItems = [];
|
|
389
|
+
this.hiddenBreadcrumbs = [];
|
|
390
|
+
this._changeDetectorRef.markForCheck();
|
|
391
|
+
return;
|
|
392
|
+
}
|
|
393
|
+
const overflowButtonWidth = 48;
|
|
394
|
+
const availableWidth = containerWidth - overflowButtonWidth;
|
|
395
|
+
const visibleMiddleCrumbs = [];
|
|
396
|
+
let requiredWidth = firstCrumb.width + lastCrumb.width;
|
|
397
|
+
// Try to fit breadcrumbs from right to left (favoring more recent items)
|
|
398
|
+
for (let i = totalBreadcrumbs - 2; i >= 1; i--) {
|
|
224
399
|
const breadcrumb = crumbsArray[i];
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
breadcrumb.displayCrumb = false;
|
|
229
|
-
hiddenCrumbs.push(breadcrumb);
|
|
400
|
+
if (requiredWidth + breadcrumb.width <= availableWidth) {
|
|
401
|
+
requiredWidth += breadcrumb.width;
|
|
402
|
+
visibleMiddleCrumbs.unshift(i);
|
|
230
403
|
}
|
|
231
|
-
|
|
232
|
-
|
|
404
|
+
}
|
|
405
|
+
// Apply visibility and flexbox orders
|
|
406
|
+
const hiddenBreadcrumbs = [];
|
|
407
|
+
let currentOrder = 10; // Start orders at 10 for middle breadcrumbs
|
|
408
|
+
crumbsArray.forEach((breadcrumb, index) => {
|
|
409
|
+
if (index === 0) {
|
|
410
|
+
// First breadcrumb - always visible, always first
|
|
411
|
+
breadcrumb.displayCrumb = true;
|
|
412
|
+
breadcrumb.shouldTruncate = false;
|
|
413
|
+
breadcrumb.maxWidth = undefined;
|
|
414
|
+
breadcrumb.flexOrder = 0;
|
|
415
|
+
}
|
|
416
|
+
else if (index === totalBreadcrumbs - 1) {
|
|
417
|
+
// Last breadcrumb - always visible, always last
|
|
418
|
+
breadcrumb.displayCrumb = true;
|
|
419
|
+
breadcrumb.shouldTruncate = false;
|
|
420
|
+
breadcrumb.flexOrder = 1000;
|
|
421
|
+
}
|
|
422
|
+
else if (visibleMiddleCrumbs.includes(index)) {
|
|
423
|
+
// Visible middle breadcrumbs - assign incremental orders
|
|
233
424
|
breadcrumb.displayCrumb = true;
|
|
425
|
+
breadcrumb.shouldTruncate = false;
|
|
426
|
+
breadcrumb.maxWidth = undefined;
|
|
427
|
+
breadcrumb.flexOrder = currentOrder;
|
|
428
|
+
currentOrder += 10;
|
|
234
429
|
}
|
|
235
|
-
|
|
430
|
+
else {
|
|
431
|
+
// Hidden breadcrumbs
|
|
432
|
+
breadcrumb.displayCrumb = false;
|
|
433
|
+
breadcrumb.shouldTruncate = false;
|
|
434
|
+
breadcrumb.maxWidth = undefined;
|
|
435
|
+
breadcrumb.flexOrder = 0; // Doesn't matter, it's hidden
|
|
436
|
+
hiddenBreadcrumbs.push(breadcrumb);
|
|
437
|
+
}
|
|
438
|
+
});
|
|
439
|
+
// Overflow button order comes after visible middle breadcrumbs
|
|
440
|
+
this.overflowButtonOrder = currentOrder;
|
|
441
|
+
// Truncate last breadcrumb if too long
|
|
442
|
+
const lastBreadcrumbMaxWidth = availableWidth * this.LAST_BREADCRUMB_MAX_WIDTH_RATIO;
|
|
443
|
+
if (lastCrumb.width > lastBreadcrumbMaxWidth) {
|
|
444
|
+
lastCrumb.shouldTruncate = true;
|
|
445
|
+
lastCrumb.maxWidth = lastBreadcrumbMaxWidth;
|
|
236
446
|
}
|
|
237
|
-
|
|
447
|
+
else {
|
|
448
|
+
// Ensure maxWidth is reset if last breadcrumb doesn't need truncation
|
|
449
|
+
lastCrumb.maxWidth = undefined;
|
|
450
|
+
}
|
|
451
|
+
this.showOverflowButton = hiddenBreadcrumbs.length > 0;
|
|
452
|
+
this.overflowMenuItems = hiddenBreadcrumbs;
|
|
453
|
+
this.hiddenBreadcrumbs = hiddenBreadcrumbs;
|
|
238
454
|
this._changeDetectorRef.markForCheck();
|
|
239
455
|
}
|
|
240
456
|
_waitToCalculateVisibility() {
|
|
@@ -242,32 +458,73 @@ class TdBreadcrumbsComponent {
|
|
|
242
458
|
this._calculateVisibility();
|
|
243
459
|
});
|
|
244
460
|
}
|
|
245
|
-
static ɵfac = function TdBreadcrumbsComponent_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || TdBreadcrumbsComponent)(
|
|
461
|
+
static ɵfac = function TdBreadcrumbsComponent_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || TdBreadcrumbsComponent)(); };
|
|
246
462
|
static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: TdBreadcrumbsComponent, selectors: [["td-breadcrumbs"]], contentQueries: function TdBreadcrumbsComponent_ContentQueries(rf, ctx, dirIndex) { if (rf & 1) {
|
|
247
463
|
i0.ɵɵcontentQuery(dirIndex, TdBreadcrumbComponent, 5);
|
|
248
464
|
} if (rf & 2) {
|
|
249
465
|
let _t;
|
|
250
466
|
i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx._breadcrumbs = _t);
|
|
251
|
-
} },
|
|
467
|
+
} }, viewQuery: function TdBreadcrumbsComponent_Query(rf, ctx) { if (rf & 1) {
|
|
468
|
+
i0.ɵɵviewQuery(MatMenuTrigger, 5);
|
|
469
|
+
} if (rf & 2) {
|
|
470
|
+
let _t;
|
|
471
|
+
i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.overflowMenuTrigger = _t.first);
|
|
472
|
+
} }, hostVars: 12, hostBindings: function TdBreadcrumbsComponent_HostBindings(rf, ctx) { if (rf & 2) {
|
|
473
|
+
i0.ɵɵattribute("role", ctx.role)("aria-label", ctx.ariaLabel);
|
|
474
|
+
i0.ɵɵstyleProp("font-family", ctx.fontFamily)("font-size", ctx.fontSize)("font-weight", ctx.fontWeight)("line-height", ctx.lineHeight);
|
|
252
475
|
i0.ɵɵclassProp("td-breadcrumbs", ctx.tdBreadCrumbsClass);
|
|
253
|
-
} }, inputs: { separatorIcon: "separatorIcon" }, ngContentSelectors: _c0, decls:
|
|
476
|
+
} }, inputs: { separatorIcon: "separatorIcon", size: "size" }, ngContentSelectors: _c0, decls: 6, vars: 3, consts: [["overflowMenu", "matMenu"], ["mat-icon-button", "", "class", "td-breadcrumbs-overflow-button", 3, "matMenuTriggerFor", "order", 4, "ngIf"], ["class", "td-breadcrumb-separator-icon", "color", "primary", "aria-hidden", "true", 3, "order", 4, "ngIf"], [1, "td-breadcrumb-overflow-menu"], ["mat-menu-item", "", 3, "click", 4, "ngFor", "ngForOf"], ["mat-icon-button", "", 1, "td-breadcrumbs-overflow-button", 3, "matMenuTriggerFor"], ["color", "primary", "aria-hidden", "true", 1, "td-breadcrumb-separator-icon"], ["mat-menu-item", "", 3, "click"]], template: function TdBreadcrumbsComponent_Template(rf, ctx) { if (rf & 1) {
|
|
254
477
|
i0.ɵɵprojectionDef();
|
|
255
478
|
i0.ɵɵprojection(0);
|
|
256
|
-
|
|
479
|
+
i0.ɵɵtemplate(1, TdBreadcrumbsComponent_button_1_Template, 3, 5, "button", 1)(2, TdBreadcrumbsComponent_mat_icon_2_Template, 2, 3, "mat-icon", 2);
|
|
480
|
+
i0.ɵɵelementStart(3, "mat-menu", 3, 0);
|
|
481
|
+
i0.ɵɵtemplate(5, TdBreadcrumbsComponent_button_5_Template, 2, 3, "button", 4);
|
|
482
|
+
i0.ɵɵelementEnd();
|
|
483
|
+
} if (rf & 2) {
|
|
484
|
+
i0.ɵɵadvance();
|
|
485
|
+
i0.ɵɵproperty("ngIf", ctx.showOverflowButton);
|
|
486
|
+
i0.ɵɵadvance();
|
|
487
|
+
i0.ɵɵproperty("ngIf", ctx.showOverflowButton);
|
|
488
|
+
i0.ɵɵadvance(3);
|
|
489
|
+
i0.ɵɵproperty("ngForOf", ctx.overflowMenuItems);
|
|
490
|
+
} }, dependencies: [CommonModule, i1.NgForOf, i1.NgIf, MatMenuModule, i2$1.MatMenu, i2$1.MatMenuItem, i2$1.MatMenuTrigger, MatButtonModule, i3.MatIconButton, MatIconModule, i4.MatIcon], styles: ["[_nghost-%COMP%]{display:flex;align-items:center;flex-wrap:nowrap;overflow:hidden}.td-breadcrumbs[_nghost-%COMP%]{white-space:nowrap}.td-breadcrumbs-overflow-button[_ngcontent-%COMP%]{flex-shrink:0;margin:0 4px}.td-breadcrumbs-overflow-button[_ngcontent-%COMP%] mat-icon[_ngcontent-%COMP%]{font-size:18px;height:18px;width:18px}.td-breadcrumbs-overflow-button[_ngcontent-%COMP%] + .td-breadcrumb-separator-icon[_ngcontent-%COMP%]{order:inherit;font-size:16px;width:16px;height:16px;flex-shrink:0;margin:0 10px}.td-breadcrumb-overflow-menu[_ngcontent-%COMP%]{max-width:300px}.td-breadcrumb-overflow-menu[_ngcontent-%COMP%] button[_ngcontent-%COMP%]{max-width:100%}.td-breadcrumb-overflow-menu[_ngcontent-%COMP%] button[_ngcontent-%COMP%] .mat-mdc-menu-item-text{white-space:normal;line-height:1.4}"], changeDetection: 0 });
|
|
257
491
|
}
|
|
258
492
|
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(TdBreadcrumbsComponent, [{
|
|
259
493
|
type: Component,
|
|
260
|
-
args: [{ selector: 'td-breadcrumbs', changeDetection: ChangeDetectionStrategy.OnPush, template: "<ng-content></ng-content>\n", styles: [":host{display:flex;align-items:center}:host.td-breadcrumbs{white-space:nowrap}\n"] }]
|
|
261
|
-
}],
|
|
494
|
+
args: [{ selector: 'td-breadcrumbs', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [CommonModule, MatMenuModule, MatButtonModule, MatIconModule], template: "<ng-content></ng-content>\n\n<button\n *ngIf=\"showOverflowButton\"\n mat-icon-button\n [matMenuTriggerFor]=\"overflowMenu\"\n [attr.aria-label]=\"overflowButtonAriaLabel\"\n [style.order]=\"overflowButtonOrder\"\n class=\"td-breadcrumbs-overflow-button\"\n [attr.data-test-id]=\"'breadcrumb-overflow-button'\"\n>\n <mat-icon>more_horiz</mat-icon>\n</button>\n<mat-icon\n *ngIf=\"showOverflowButton\"\n class=\"td-breadcrumb-separator-icon\"\n [style.order]=\"overflowButtonOrder\"\n color=\"primary\"\n aria-hidden=\"true\"\n>\n {{ separatorIcon }}\n</mat-icon>\n\n<mat-menu #overflowMenu=\"matMenu\" class=\"td-breadcrumb-overflow-menu\">\n <button\n *ngFor=\"let item of overflowMenuItems\"\n mat-menu-item\n (click)=\"handleOverflowItemClick(item)\"\n [attr.data-test-id]=\"'breadcrumb-overflow-menu-item-' + getItemText(item)\"\n [attr.aria-label]=\"'Navigate to ' + getItemText(item)\"\n >\n {{ getItemText(item) }}\n </button>\n</mat-menu>\n", styles: [":host{display:flex;align-items:center;flex-wrap:nowrap;overflow:hidden}:host.td-breadcrumbs{white-space:nowrap}.td-breadcrumbs-overflow-button{flex-shrink:0;margin:0 4px}.td-breadcrumbs-overflow-button mat-icon{font-size:18px;height:18px;width:18px}.td-breadcrumbs-overflow-button+.td-breadcrumb-separator-icon{order:inherit;font-size:16px;width:16px;height:16px;flex-shrink:0;margin:0 10px}.td-breadcrumb-overflow-menu{max-width:300px}.td-breadcrumb-overflow-menu button{max-width:100%}.td-breadcrumb-overflow-menu button ::ng-deep .mat-mdc-menu-item-text{white-space:normal;line-height:1.4}\n"] }]
|
|
495
|
+
}], null, { tdBreadCrumbsClass: [{
|
|
262
496
|
type: HostBinding,
|
|
263
497
|
args: ['class.td-breadcrumbs']
|
|
498
|
+
}], role: [{
|
|
499
|
+
type: HostBinding,
|
|
500
|
+
args: ['attr.role']
|
|
501
|
+
}], ariaLabel: [{
|
|
502
|
+
type: HostBinding,
|
|
503
|
+
args: ['attr.aria-label']
|
|
264
504
|
}], _breadcrumbs: [{
|
|
265
505
|
type: ContentChildren,
|
|
266
506
|
args: [TdBreadcrumbComponent, { descendants: true }]
|
|
507
|
+
}], overflowMenuTrigger: [{
|
|
508
|
+
type: ViewChild,
|
|
509
|
+
args: [MatMenuTrigger]
|
|
267
510
|
}], separatorIcon: [{
|
|
268
511
|
type: Input
|
|
512
|
+
}], size: [{
|
|
513
|
+
type: Input
|
|
514
|
+
}], fontFamily: [{
|
|
515
|
+
type: HostBinding,
|
|
516
|
+
args: ['style.font-family']
|
|
517
|
+
}], fontSize: [{
|
|
518
|
+
type: HostBinding,
|
|
519
|
+
args: ['style.font-size']
|
|
520
|
+
}], fontWeight: [{
|
|
521
|
+
type: HostBinding,
|
|
522
|
+
args: ['style.font-weight']
|
|
523
|
+
}], lineHeight: [{
|
|
524
|
+
type: HostBinding,
|
|
525
|
+
args: ['style.line-height']
|
|
269
526
|
}] }); })();
|
|
270
|
-
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(TdBreadcrumbsComponent, { className: "TdBreadcrumbsComponent", filePath: "breadcrumbs.component.ts", lineNumber:
|
|
527
|
+
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(TdBreadcrumbsComponent, { className: "TdBreadcrumbsComponent", filePath: "breadcrumbs.component.ts", lineNumber: 35 }); })();
|
|
271
528
|
|
|
272
529
|
/**
|
|
273
530
|
* @deprecated This module is deprecated and will be removed in future versions.
|
|
@@ -276,7 +533,7 @@ class TdBreadcrumbsComponent {
|
|
|
276
533
|
class CovalentBreadcrumbsModule {
|
|
277
534
|
static ɵfac = function CovalentBreadcrumbsModule_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || CovalentBreadcrumbsModule)(); };
|
|
278
535
|
static ɵmod = /*@__PURE__*/ i0.ɵɵdefineNgModule({ type: CovalentBreadcrumbsModule });
|
|
279
|
-
static ɵinj = /*@__PURE__*/ i0.ɵɵdefineInjector({ imports: [TdBreadcrumbComponent] });
|
|
536
|
+
static ɵinj = /*@__PURE__*/ i0.ɵɵdefineInjector({ imports: [TdBreadcrumbsComponent, TdBreadcrumbComponent] });
|
|
280
537
|
}
|
|
281
538
|
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(CovalentBreadcrumbsModule, [{
|
|
282
539
|
type: NgModule,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"covalent-core-breadcrumbs.mjs","sources":["../../../../libs/angular/breadcrumbs/src/breadcrumb/breadcrumb.component.html","../../../../libs/angular/breadcrumbs/src/breadcrumb/breadcrumb.component.ts","../../../../libs/angular/breadcrumbs/src/breadcrumbs.component.ts","../../../../libs/angular/breadcrumbs/src/breadcrumbs.component.html","../../../../libs/angular/breadcrumbs/src/breadcrumbs.module.ts","../../../../libs/angular/breadcrumbs/src/covalent-core-breadcrumbs.ts"],"sourcesContent":["<ng-content></ng-content>\n<mat-icon\n *ngIf=\"displayIcon\"\n class=\"td-breadcrumb-separator-icon\"\n [style.cursor]=\"'default'\"\n (click)=\"_handleIconClick($event)\"\n >{{ separatorIcon }}</mat-icon\n>\n","import { CommonModule } from '@angular/common';\nimport {\n Component,\n ElementRef,\n HostBinding,\n AfterViewInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n} from '@angular/core';\nimport { MatIcon } from '@angular/material/icon';\n\n@Component({\n selector: 'td-breadcrumb, a[td-breadcrumb]',\n styleUrls: ['./breadcrumb.component.scss'],\n templateUrl: './breadcrumb.component.html',\n imports: [CommonModule, MatIcon],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class TdBreadcrumbComponent implements AfterViewInit {\n private _displayCrumb = true;\n private _width = 0;\n private _displayIcon = true;\n private _separatorIcon = 'chevron_right';\n\n @HostBinding('class.mdc-button') matButtonClass = true;\n @HostBinding('class.td-breadcrumb') tdBreadCrumbClass = true;\n\n // Sets the icon url shown between breadcrumbs. Defaults to 'chevron_right'\n public get separatorIcon(): string {\n return this._separatorIcon;\n }\n public set separatorIcon(separatorIcon: string) {\n this._separatorIcon = separatorIcon;\n setTimeout(() => {\n this._changeDetectorRef.markForCheck();\n });\n }\n\n // Should show the right chevron or not before the label\n public get displayIcon(): boolean {\n return this._displayIcon;\n }\n public set displayIcon(displayIcon: boolean) {\n this._displayIcon = displayIcon;\n setTimeout(() => {\n this._changeDetectorRef.markForCheck();\n });\n }\n\n get displayCrumb(): boolean {\n return this._displayCrumb;\n }\n\n /**\n * Whether to display the crumb or not\n */\n set displayCrumb(shouldDisplay: boolean) {\n this._displayCrumb = shouldDisplay;\n setTimeout(() => {\n this._changeDetectorRef.markForCheck();\n });\n }\n\n /**\n * Width of the DOM element of the crumb\n */\n get width(): number {\n return this._width;\n }\n\n /**\n * Gets the display style of the crumb\n */\n @HostBinding('style.display')\n get displayBinding(): string | undefined {\n // Set the display to none on the component, just in case the end user is hiding\n // and showing them instead of the component doing itself for reasons like responsive\n return this._displayCrumb ? undefined : 'none';\n }\n\n constructor(\n private _elementRef: ElementRef,\n private _changeDetectorRef: ChangeDetectorRef\n ) {}\n\n ngAfterViewInit(): void {\n // set the width from the actual rendered DOM element\n setTimeout(() => {\n this._width = (<HTMLElement>(\n this._elementRef.nativeElement\n )).getBoundingClientRect().width;\n this._changeDetectorRef.markForCheck();\n });\n }\n\n /**\n * Stop click propagation when clicking on icon\n */\n _handleIconClick(event: Event): void {\n event.stopPropagation();\n event.preventDefault();\n }\n}\n","import {\n Component,\n ContentChildren,\n QueryList,\n OnInit,\n OnDestroy,\n ChangeDetectionStrategy,\n AfterContentInit,\n ChangeDetectorRef,\n ElementRef,\n Input,\n HostBinding,\n AfterViewInit,\n} from '@angular/core';\n\nimport { fromEvent, Subject } from 'rxjs';\nimport { debounceTime, startWith, takeUntil } from 'rxjs/operators';\n\nimport { TdBreadcrumbComponent } from './breadcrumb/breadcrumb.component';\n\n@Component({\n selector: 'td-breadcrumbs',\n styleUrls: ['./breadcrumbs.component.scss'],\n templateUrl: './breadcrumbs.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class TdBreadcrumbsComponent\n implements OnInit, AfterContentInit, AfterViewInit, OnDestroy\n{\n private _resizing = false;\n private _separatorIcon = 'chevron_right';\n private _destroy$ = new Subject<void>();\n\n @HostBinding('class.td-breadcrumbs') tdBreadCrumbsClass = true;\n\n // all the sub components, which are the individual breadcrumbs\n @ContentChildren(TdBreadcrumbComponent, { descendants: true })\n _breadcrumbs!: QueryList<TdBreadcrumbComponent>;\n // the list of hidden breadcrumbs not shown right now (responsive)\n hiddenBreadcrumbs: TdBreadcrumbComponent[] = [];\n\n /**\n * Sets the icon url shown between breadcrumbs. Defaults to 'chevron_right'.\n */\n @Input() public set separatorIcon(separatorIcon: string) {\n this._separatorIcon = separatorIcon;\n this.setCrumbIcons();\n }\n public get separatorIcon(): string {\n return this._separatorIcon;\n }\n\n constructor(\n private _elementRef: ElementRef,\n private _changeDetectorRef: ChangeDetectorRef\n ) {}\n\n ngOnInit(): void {\n fromEvent(window, 'resize')\n .pipe(debounceTime(10), takeUntil(this._destroy$))\n .subscribe(() => {\n if (!this._resizing) {\n this._resizing = true;\n setTimeout(() => {\n this._calculateVisibility();\n this._resizing = false;\n this._changeDetectorRef.markForCheck();\n }, 100);\n }\n });\n }\n\n ngAfterViewInit(): void {\n this._waitToCalculateVisibility();\n }\n\n ngAfterContentInit(): void {\n this._breadcrumbs.changes\n .pipe(startWith(this._breadcrumbs), takeUntil(this._destroy$))\n .subscribe(() => {\n this._waitToCalculateVisibility();\n this.setCrumbIcons();\n this._changeDetectorRef.markForCheck();\n });\n }\n\n ngOnDestroy(): void {\n this._destroy$.next();\n }\n\n /*\n * Current width of the element container\n */\n get nativeElementWidth(): number {\n const element: HTMLElement = <HTMLElement>this._elementRef.nativeElement;\n // Need to take into account border, margin and padding that might be around all the crumbs\n const style: CSSStyleDeclaration = window.getComputedStyle(element);\n const borderLeft: number = parseInt(style.borderLeft, 10);\n const borderRight: number = parseInt(style.borderRight, 10);\n const marginLeft: number = parseInt(style.marginLeft, 10);\n const marginRight: number = parseInt(style.marginRight, 10);\n const paddingLeft: number = parseInt(style.paddingLeft, 10);\n const paddingRight: number = parseInt(style.paddingRight, 10);\n\n return (\n element.getBoundingClientRect().width -\n borderLeft -\n borderRight -\n marginLeft -\n marginRight -\n paddingLeft -\n paddingRight\n );\n }\n\n /**\n * The total count of individual breadcrumbs\n */\n get count(): number {\n return this._breadcrumbs ? this._breadcrumbs.length : 0;\n }\n\n /**\n * Set the crumb icon separators\n */\n private setCrumbIcons(): void {\n if (this._breadcrumbs) {\n const breadcrumbArray: TdBreadcrumbComponent[] =\n this._breadcrumbs.toArray();\n breadcrumbArray.forEach(\n (breadcrumb: TdBreadcrumbComponent, index: number) => {\n breadcrumb.separatorIcon = this.separatorIcon;\n // don't show the icon on the last breadcrumb\n breadcrumb.displayIcon = index < breadcrumbArray.length - 1;\n }\n );\n }\n }\n\n private _calculateVisibility(): void {\n const crumbsArray: TdBreadcrumbComponent[] = this._breadcrumbs.toArray();\n let crumbWidthSum = 0;\n const hiddenCrumbs: TdBreadcrumbComponent[] = [];\n // loop through crumbs in reverse order to calculate which ones should be removed\n for (let i: number = crumbsArray.length - 1; i >= 0; i--) {\n const breadcrumb: TdBreadcrumbComponent = crumbsArray[i];\n\n // if crumb exceeds width, then we skip it from the sum and add it into the hiddencrumbs array\n // and hide it\n if (crumbWidthSum + breadcrumb.width > this.nativeElementWidth) {\n breadcrumb.displayCrumb = false;\n hiddenCrumbs.push(breadcrumb);\n } else {\n // else we show it\n breadcrumb.displayCrumb = true;\n }\n crumbWidthSum += breadcrumb.width;\n }\n\n this.hiddenBreadcrumbs = hiddenCrumbs;\n this._changeDetectorRef.markForCheck();\n }\n\n private _waitToCalculateVisibility(): void {\n setTimeout(() => {\n this._calculateVisibility();\n });\n }\n}\n","<ng-content></ng-content>\n","import { NgModule } from '@angular/core';\nimport { TdBreadcrumbsComponent } from './breadcrumbs.component';\nimport { TdBreadcrumbComponent } from './breadcrumb/breadcrumb.component';\n\n/**\n * @deprecated This module is deprecated and will be removed in future versions.\n * Please migrate to using standalone components as soon as possible.\n */\n@NgModule({\n imports: [TdBreadcrumbsComponent, TdBreadcrumbComponent],\n exports: [TdBreadcrumbsComponent, TdBreadcrumbComponent],\n})\nexport class CovalentBreadcrumbsModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"covalent-core-breadcrumbs.mjs","sources":["../../../../libs/angular/breadcrumbs/src/breadcrumb/breadcrumb.component.html","../../../../libs/angular/breadcrumbs/src/breadcrumb/breadcrumb.component.ts","../../../../libs/angular/breadcrumbs/src/breadcrumbs.component.html","../../../../libs/angular/breadcrumbs/src/breadcrumbs.component.ts","../../../../libs/angular/breadcrumbs/src/breadcrumbs.module.ts","../../../../libs/angular/breadcrumbs/src/covalent-core-breadcrumbs.ts"],"sourcesContent":["<span\n class=\"td-breadcrumb-text\"\n [class.td-breadcrumb-truncated]=\"shouldTruncate\"\n [matTooltip]=\"shouldTruncate ? fullText : ''\"\n [matTooltipDisabled]=\"!shouldTruncate\"\n [attr.aria-label]=\"shouldTruncate ? fullText : ''\"\n>\n <ng-content></ng-content>\n</span>\n<mat-icon\n *ngIf=\"displayIcon\"\n class=\"td-breadcrumb-separator-icon\"\n [style.cursor]=\"'default'\"\n (click)=\"_handleIconClick($event)\"\n >{{ separatorIcon }}</mat-icon\n>\n","import { CommonModule } from '@angular/common';\nimport {\n Component,\n ElementRef,\n HostBinding,\n AfterViewInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n inject,\n} from '@angular/core';\nimport { MatIcon } from '@angular/material/icon';\nimport { MatTooltipModule } from '@angular/material/tooltip';\n\n@Component({\n selector: 'td-breadcrumb, a[td-breadcrumb]',\n styleUrls: ['./breadcrumb.component.scss'],\n templateUrl: './breadcrumb.component.html',\n standalone: true,\n imports: [CommonModule, MatIcon, MatTooltipModule],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class TdBreadcrumbComponent implements AfterViewInit {\n private _changeDetectorRef = inject(ChangeDetectorRef);\n\n private _displayCrumb = true;\n private _width = 0;\n private _displayIcon = true;\n private _separatorIcon = 'chevron_right';\n private _shouldTruncate = false;\n private _maxWidth?: number;\n\n public elementRef = inject(ElementRef);\n public fullText = '';\n public flexOrder = 0;\n public isCurrentPage = false;\n\n @HostBinding('attr.aria-current')\n get ariaCurrent(): string | null {\n return this.isCurrentPage ? 'page' : null;\n }\n\n @HostBinding('class.mdc-button') matButtonClass = true;\n @HostBinding('class.td-breadcrumb') tdBreadCrumbClass = true;\n\n // Sets the icon url shown between breadcrumbs. Defaults to 'chevron_right'\n public get separatorIcon(): string {\n return this._separatorIcon;\n }\n public set separatorIcon(separatorIcon: string) {\n this._separatorIcon = separatorIcon;\n setTimeout(() => {\n this._changeDetectorRef.markForCheck();\n });\n }\n\n // Should show the right chevron or not before the label\n public get displayIcon(): boolean {\n return this._displayIcon;\n }\n public set displayIcon(displayIcon: boolean) {\n this._displayIcon = displayIcon;\n setTimeout(() => {\n this._changeDetectorRef.markForCheck();\n });\n }\n\n get shouldTruncate(): boolean {\n return this._shouldTruncate;\n }\n\n set shouldTruncate(shouldTruncate: boolean) {\n this._shouldTruncate = shouldTruncate;\n setTimeout(() => {\n this._changeDetectorRef.markForCheck();\n });\n }\n\n get maxWidth(): number | undefined {\n return this._maxWidth;\n }\n\n set maxWidth(maxWidth: number | undefined) {\n this._maxWidth = maxWidth;\n setTimeout(() => {\n this._changeDetectorRef.markForCheck();\n });\n }\n\n get displayCrumb(): boolean {\n return this._displayCrumb;\n }\n\n /**\n * Whether to display the crumb or not\n */\n set displayCrumb(shouldDisplay: boolean) {\n this._displayCrumb = shouldDisplay;\n setTimeout(() => {\n this._changeDetectorRef.markForCheck();\n });\n }\n\n /**\n * Width of the DOM element of the crumb\n */\n get width(): number {\n return this._width;\n }\n\n /**\n * Gets the display style of the crumb\n */\n @HostBinding('style.display')\n get displayBinding(): string | undefined {\n // Set the display to none on the component, just in case the end user is hiding\n // and showing them instead of the component doing itself for reasons like responsive\n return this._displayCrumb ? undefined : 'none';\n }\n\n @HostBinding('style.max-width.px')\n get maxWidthBinding(): number | undefined {\n return this._shouldTruncate ? this._maxWidth : undefined;\n }\n\n @HostBinding('style.order')\n get orderBinding(): number {\n return this.flexOrder;\n }\n\n ngAfterViewInit(): void {\n // set the width from the actual rendered DOM element\n setTimeout(() => {\n this._width = (<HTMLElement>(\n this.elementRef.nativeElement\n )).getBoundingClientRect().width;\n const textSpan = this.elementRef.nativeElement.querySelector(\n '.td-breadcrumb-text',\n );\n if (textSpan) {\n this.fullText = textSpan.textContent?.trim() || '';\n }\n this._changeDetectorRef.markForCheck();\n });\n }\n\n /**\n * Stop click propagation when clicking on icon\n */\n _handleIconClick(event: Event): void {\n event.stopPropagation();\n event.preventDefault();\n }\n}\n","<ng-content></ng-content>\n\n<button\n *ngIf=\"showOverflowButton\"\n mat-icon-button\n [matMenuTriggerFor]=\"overflowMenu\"\n [attr.aria-label]=\"overflowButtonAriaLabel\"\n [style.order]=\"overflowButtonOrder\"\n class=\"td-breadcrumbs-overflow-button\"\n [attr.data-test-id]=\"'breadcrumb-overflow-button'\"\n>\n <mat-icon>more_horiz</mat-icon>\n</button>\n<mat-icon\n *ngIf=\"showOverflowButton\"\n class=\"td-breadcrumb-separator-icon\"\n [style.order]=\"overflowButtonOrder\"\n color=\"primary\"\n aria-hidden=\"true\"\n>\n {{ separatorIcon }}\n</mat-icon>\n\n<mat-menu #overflowMenu=\"matMenu\" class=\"td-breadcrumb-overflow-menu\">\n <button\n *ngFor=\"let item of overflowMenuItems\"\n mat-menu-item\n (click)=\"handleOverflowItemClick(item)\"\n [attr.data-test-id]=\"'breadcrumb-overflow-menu-item-' + getItemText(item)\"\n [attr.aria-label]=\"'Navigate to ' + getItemText(item)\"\n >\n {{ getItemText(item) }}\n </button>\n</mat-menu>\n","import {\n Component,\n ContentChildren,\n QueryList,\n OnInit,\n OnDestroy,\n ChangeDetectionStrategy,\n AfterContentInit,\n ChangeDetectorRef,\n ElementRef,\n Input,\n HostBinding,\n AfterViewInit,\n ViewChild,\n inject,\n} from '@angular/core';\n\nimport { fromEvent, Subject } from 'rxjs';\nimport { debounceTime, startWith, takeUntil } from 'rxjs/operators';\nimport { MatMenuTrigger, MatMenuModule } from '@angular/material/menu';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatIconModule } from '@angular/material/icon';\nimport { CommonModule } from '@angular/common';\n\nimport { TdBreadcrumbComponent } from './breadcrumb/breadcrumb.component';\n\n@Component({\n selector: 'td-breadcrumbs',\n styleUrls: ['./breadcrumbs.component.scss'],\n templateUrl: './breadcrumbs.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: true,\n imports: [CommonModule, MatMenuModule, MatButtonModule, MatIconModule],\n})\nexport class TdBreadcrumbsComponent\n implements OnInit, AfterContentInit, AfterViewInit, OnDestroy\n{\n private _elementRef = inject(ElementRef);\n private _changeDetectorRef = inject(ChangeDetectorRef);\n private _resizing = false;\n private _separatorIcon = 'chevron_right';\n private _destroy$ = new Subject<void>();\n\n /**\n * Maximum width ratio for the last breadcrumb when truncation is needed.\n * Set to 35% of available width to ensure last breadcrumb doesn't dominate the space\n * while still being readable.\n */\n private readonly LAST_BREADCRUMB_MAX_WIDTH_RATIO = 0.35;\n\n @HostBinding('class.td-breadcrumbs') tdBreadCrumbsClass = true;\n @HostBinding('attr.role') role = 'navigation';\n @HostBinding('attr.aria-label') ariaLabel = 'Breadcrumb';\n\n // all the sub components, which are the individual breadcrumbs\n @ContentChildren(TdBreadcrumbComponent, { descendants: true })\n _breadcrumbs!: QueryList<TdBreadcrumbComponent>;\n // the list of hidden breadcrumbs not shown right now (responsive)\n hiddenBreadcrumbs: TdBreadcrumbComponent[] = [];\n overflowMenuItems: TdBreadcrumbComponent[] = [];\n showOverflowButton = false;\n overflowButtonOrder = 50;\n\n @ViewChild(MatMenuTrigger) overflowMenuTrigger?: MatMenuTrigger;\n\n /**\n * Sets the icon url shown between breadcrumbs. Defaults to 'chevron_right'.\n */\n @Input() public set separatorIcon(separatorIcon: string) {\n this._separatorIcon = separatorIcon;\n this.setCrumbIcons();\n }\n public get separatorIcon(): string {\n return this._separatorIcon;\n }\n\n @Input() size?:\n | 'headline1'\n | 'headline2'\n | 'headline3'\n | 'headline4'\n | 'headline5'\n | 'headline6'\n | 'subtitle1'\n | 'subtitle2'\n | 'body1'\n | 'body2'\n | 'button'\n | 'caption';\n\n @HostBinding('style.font-family')\n get fontFamily(): string | undefined {\n return this.size\n ? `var(--cv-typography-${this.size}-font-family)`\n : undefined;\n }\n\n @HostBinding('style.font-size')\n get fontSize(): string | undefined {\n return this.size\n ? `var(--cv-typography-${this.size}-font-size)`\n : undefined;\n }\n\n @HostBinding('style.font-weight')\n get fontWeight(): string | undefined {\n return this.size\n ? `var(--cv-typography-${this.size}-font-weight)`\n : undefined;\n }\n\n @HostBinding('style.line-height')\n get lineHeight(): string | undefined {\n return this.size\n ? `var(--cv-typography-${this.size}-line-height)`\n : undefined;\n }\n\n ngOnInit(): void {\n fromEvent(window, 'resize')\n .pipe(debounceTime(10), takeUntil(this._destroy$))\n .subscribe(() => {\n if (!this._resizing) {\n this._resizing = true;\n setTimeout(() => {\n this._calculateVisibility();\n this._resizing = false;\n this._changeDetectorRef.markForCheck();\n }, 100);\n }\n });\n }\n\n ngAfterViewInit(): void {\n this._waitToCalculateVisibility();\n }\n\n ngAfterContentInit(): void {\n this._breadcrumbs.changes\n .pipe(startWith(this._breadcrumbs), takeUntil(this._destroy$))\n .subscribe(() => {\n this._waitToCalculateVisibility();\n setTimeout(() => {\n this.setCrumbIcons();\n this._changeDetectorRef.markForCheck();\n });\n });\n }\n\n ngOnDestroy(): void {\n this._destroy$.next();\n this._destroy$.complete();\n }\n\n /*\n * Current width of the element container\n */\n get nativeElementWidth(): number {\n const element: HTMLElement = <HTMLElement>this._elementRef.nativeElement;\n // Need to take into account border, margin and padding that might be around all the crumbs\n const style: CSSStyleDeclaration = window.getComputedStyle(element);\n const borderLeft: number = parseInt(style.borderLeft, 10);\n const borderRight: number = parseInt(style.borderRight, 10);\n const marginLeft: number = parseInt(style.marginLeft, 10);\n const marginRight: number = parseInt(style.marginRight, 10);\n const paddingLeft: number = parseInt(style.paddingLeft, 10);\n const paddingRight: number = parseInt(style.paddingRight, 10);\n\n return (\n element.getBoundingClientRect().width -\n borderLeft -\n borderRight -\n marginLeft -\n marginRight -\n paddingLeft -\n paddingRight\n );\n }\n\n /**\n * The total count of individual breadcrumbs\n */\n get count(): number {\n return this._breadcrumbs ? this._breadcrumbs.length : 0;\n }\n\n get overflowButtonAriaLabel(): string {\n const count = this.hiddenBreadcrumbs.length;\n return `Show ${count} hidden breadcrumb${count > 1 ? 's' : ''}`;\n }\n\n handleOverflowItemClick(item: TdBreadcrumbComponent): void {\n const nativeElement = item.elementRef?.nativeElement;\n if (nativeElement) {\n nativeElement.click();\n }\n }\n\n getItemText(item: TdBreadcrumbComponent): string {\n return item.fullText || '';\n }\n\n /**\n * Set the crumb icon separators\n */\n private setCrumbIcons(): void {\n if (this._breadcrumbs) {\n const breadcrumbArray: TdBreadcrumbComponent[] =\n this._breadcrumbs.toArray();\n\n setTimeout(() => {\n breadcrumbArray.forEach(\n (breadcrumb: TdBreadcrumbComponent, index: number) => {\n breadcrumb.separatorIcon = this.separatorIcon;\n breadcrumb.displayIcon = true;\n breadcrumb.isCurrentPage = index === breadcrumbArray.length - 1;\n },\n );\n this._changeDetectorRef.markForCheck();\n });\n }\n }\n\n private _calculateVisibility(): void {\n const crumbsArray: TdBreadcrumbComponent[] = this._breadcrumbs.toArray();\n const totalBreadcrumbs = crumbsArray.length;\n\n // Reset all orders when there are 2 or fewer breadcrumbs\n if (totalBreadcrumbs <= 2) {\n crumbsArray.forEach((breadcrumb: TdBreadcrumbComponent) => {\n breadcrumb.displayCrumb = true;\n breadcrumb.shouldTruncate = false;\n breadcrumb.maxWidth = undefined;\n breadcrumb.flexOrder = 0; // Default order\n });\n this.showOverflowButton = false;\n this.overflowMenuItems = [];\n this.hiddenBreadcrumbs = [];\n this._changeDetectorRef.markForCheck();\n return;\n }\n\n const firstCrumb = crumbsArray[0];\n const lastCrumb = crumbsArray[totalBreadcrumbs - 1];\n const containerWidth = this.nativeElementWidth;\n const totalRequiredWidth = crumbsArray.reduce(\n (sum, crumb) => sum + crumb.width,\n 0,\n );\n\n if (totalRequiredWidth <= containerWidth) {\n crumbsArray.forEach(\n (breadcrumb: TdBreadcrumbComponent, index: number) => {\n breadcrumb.displayCrumb = true;\n breadcrumb.shouldTruncate = false;\n breadcrumb.maxWidth = undefined;\n breadcrumb.flexOrder =\n index === 0\n ? 0\n : index === totalBreadcrumbs - 1\n ? 1000\n : index * 10; // Assign orders based on index for middle crumbs\n },\n );\n\n this.showOverflowButton = false;\n this.overflowMenuItems = [];\n this.hiddenBreadcrumbs = [];\n this._changeDetectorRef.markForCheck();\n return;\n }\n\n const overflowButtonWidth = 48;\n const availableWidth = containerWidth - overflowButtonWidth;\n const visibleMiddleCrumbs: number[] = [];\n let requiredWidth = firstCrumb.width + lastCrumb.width;\n\n // Try to fit breadcrumbs from right to left (favoring more recent items)\n for (let i = totalBreadcrumbs - 2; i >= 1; i--) {\n const breadcrumb = crumbsArray[i];\n if (requiredWidth + breadcrumb.width <= availableWidth) {\n requiredWidth += breadcrumb.width;\n visibleMiddleCrumbs.unshift(i);\n }\n }\n\n // Apply visibility and flexbox orders\n const hiddenBreadcrumbs: TdBreadcrumbComponent[] = [];\n let currentOrder = 10; // Start orders at 10 for middle breadcrumbs\n\n crumbsArray.forEach((breadcrumb: TdBreadcrumbComponent, index: number) => {\n if (index === 0) {\n // First breadcrumb - always visible, always first\n breadcrumb.displayCrumb = true;\n breadcrumb.shouldTruncate = false;\n breadcrumb.maxWidth = undefined;\n breadcrumb.flexOrder = 0;\n } else if (index === totalBreadcrumbs - 1) {\n // Last breadcrumb - always visible, always last\n breadcrumb.displayCrumb = true;\n breadcrumb.shouldTruncate = false;\n breadcrumb.flexOrder = 1000;\n } else if (visibleMiddleCrumbs.includes(index)) {\n // Visible middle breadcrumbs - assign incremental orders\n breadcrumb.displayCrumb = true;\n breadcrumb.shouldTruncate = false;\n breadcrumb.maxWidth = undefined;\n breadcrumb.flexOrder = currentOrder;\n currentOrder += 10;\n } else {\n // Hidden breadcrumbs\n breadcrumb.displayCrumb = false;\n breadcrumb.shouldTruncate = false;\n breadcrumb.maxWidth = undefined;\n breadcrumb.flexOrder = 0; // Doesn't matter, it's hidden\n hiddenBreadcrumbs.push(breadcrumb);\n }\n });\n\n // Overflow button order comes after visible middle breadcrumbs\n this.overflowButtonOrder = currentOrder;\n\n // Truncate last breadcrumb if too long\n const lastBreadcrumbMaxWidth =\n availableWidth * this.LAST_BREADCRUMB_MAX_WIDTH_RATIO;\n if (lastCrumb.width > lastBreadcrumbMaxWidth) {\n lastCrumb.shouldTruncate = true;\n lastCrumb.maxWidth = lastBreadcrumbMaxWidth;\n } else {\n // Ensure maxWidth is reset if last breadcrumb doesn't need truncation\n lastCrumb.maxWidth = undefined;\n }\n\n this.showOverflowButton = hiddenBreadcrumbs.length > 0;\n this.overflowMenuItems = hiddenBreadcrumbs;\n this.hiddenBreadcrumbs = hiddenBreadcrumbs;\n this._changeDetectorRef.markForCheck();\n }\n\n private _waitToCalculateVisibility(): void {\n setTimeout(() => {\n this._calculateVisibility();\n });\n }\n}\n","import { NgModule } from '@angular/core';\nimport { TdBreadcrumbsComponent } from './breadcrumbs.component';\nimport { TdBreadcrumbComponent } from './breadcrumb/breadcrumb.component';\n\n/**\n * @deprecated This module is deprecated and will be removed in future versions.\n * Please migrate to using standalone components as soon as possible.\n */\n@NgModule({\n imports: [TdBreadcrumbsComponent, TdBreadcrumbComponent],\n exports: [TdBreadcrumbsComponent, TdBreadcrumbComponent],\n})\nexport class CovalentBreadcrumbsModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":["i2"],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@covalent/core",
|
|
3
|
-
"version": "10.
|
|
3
|
+
"version": "10.5.0",
|
|
4
4
|
"exports": {
|
|
5
5
|
".": {
|
|
6
6
|
"sass": "./theming/_all-theme.scss",
|
|
@@ -82,7 +82,7 @@
|
|
|
82
82
|
"@angular/router": "19.x.x",
|
|
83
83
|
"@angular/cdk": "19.x.x",
|
|
84
84
|
"@angular/material": "19.x.x",
|
|
85
|
-
"@covalent/core": "10.
|
|
85
|
+
"@covalent/core": "10.5.0"
|
|
86
86
|
},
|
|
87
87
|
"dependencies": {
|
|
88
88
|
"tslib": "^2.8.1"
|