@fundamental-ngx/core 0.35.2-rc.29 → 0.35.2-rc.31
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/action-bar/package.json +1 -1
- package/action-sheet/package.json +1 -1
- package/alert/package.json +1 -1
- package/avatar/package.json +1 -1
- package/avatar-group/package.json +1 -1
- package/bar/package.json +1 -1
- package/breadcrumb/breadcrumb.component.d.ts +18 -14
- package/breadcrumb/esm2020/breadcrumb.component.mjs +32 -21
- package/breadcrumb/fesm2015/fundamental-ngx-core-breadcrumb.mjs +30 -19
- package/breadcrumb/fesm2015/fundamental-ngx-core-breadcrumb.mjs.map +1 -1
- package/breadcrumb/fesm2020/fundamental-ngx-core-breadcrumb.mjs +30 -19
- package/breadcrumb/fesm2020/fundamental-ngx-core-breadcrumb.mjs.map +1 -1
- package/breadcrumb/package.json +1 -1
- package/busy-indicator/package.json +1 -1
- package/button/package.json +1 -1
- package/calendar/package.json +1 -1
- package/card/package.json +1 -1
- package/carousel/package.json +1 -1
- package/checkbox/package.json +1 -1
- package/combobox/package.json +1 -1
- package/content-density/package.json +3 -3
- package/date-picker/package.json +1 -1
- package/datetime/package.json +1 -1
- package/datetime-picker/package.json +1 -1
- package/dialog/package.json +1 -1
- package/dynamic-page/package.json +1 -1
- package/dynamic-side-content/package.json +1 -1
- package/esm2020/breadcrumb/breadcrumb.component.mjs +32 -21
- package/esm2020/fixed-card-layout/fixed-card-layout.component.mjs +22 -33
- package/facets/package.json +1 -1
- package/feed-input/package.json +1 -1
- package/feed-list-item/package.json +1 -1
- package/fesm2015/fundamental-ngx-core-breadcrumb.mjs +30 -19
- package/fesm2015/fundamental-ngx-core-breadcrumb.mjs.map +1 -1
- package/fesm2015/fundamental-ngx-core-fixed-card-layout.mjs +21 -32
- package/fesm2015/fundamental-ngx-core-fixed-card-layout.mjs.map +1 -1
- package/fesm2020/fundamental-ngx-core-breadcrumb.mjs +30 -19
- package/fesm2020/fundamental-ngx-core-breadcrumb.mjs.map +1 -1
- package/fesm2020/fundamental-ngx-core-fixed-card-layout.mjs +21 -32
- package/fesm2020/fundamental-ngx-core-fixed-card-layout.mjs.map +1 -1
- package/file-uploader/package.json +1 -1
- package/fixed-card-layout/esm2020/fixed-card-layout.component.mjs +22 -33
- package/fixed-card-layout/fesm2015/fundamental-ngx-core-fixed-card-layout.mjs +21 -32
- package/fixed-card-layout/fesm2015/fundamental-ngx-core-fixed-card-layout.mjs.map +1 -1
- package/fixed-card-layout/fesm2020/fundamental-ngx-core-fixed-card-layout.mjs +21 -32
- package/fixed-card-layout/fesm2020/fundamental-ngx-core-fixed-card-layout.mjs.map +1 -1
- package/fixed-card-layout/fixed-card-layout.component.d.ts +4 -6
- package/fixed-card-layout/package.json +1 -1
- package/flexible-column-layout/package.json +1 -1
- package/form/package.json +1 -1
- package/formatted-text/package.json +1 -1
- package/grid-list/package.json +1 -1
- package/icon/package.json +1 -1
- package/illustrated-message/package.json +1 -1
- package/infinite-scroll/package.json +1 -1
- package/info-label/package.json +1 -1
- package/inline-help/package.json +1 -1
- package/input-group/package.json +1 -1
- package/layout-grid/package.json +1 -1
- package/layout-panel/package.json +1 -1
- package/link/package.json +1 -1
- package/list/package.json +1 -1
- package/menu/package.json +1 -1
- package/message-box/package.json +1 -1
- package/message-strip/package.json +1 -1
- package/message-toast/package.json +1 -1
- package/micro-process-flow/package.json +1 -1
- package/mobile-mode/package.json +1 -1
- package/multi-input/package.json +1 -1
- package/nested-list/package.json +1 -1
- package/notification/package.json +1 -1
- package/object-identifier/package.json +1 -1
- package/object-marker/package.json +1 -1
- package/object-number/package.json +1 -1
- package/object-status/package.json +1 -1
- package/overflow-layout/package.json +13 -13
- package/package.json +1 -1
- package/pagination/package.json +1 -1
- package/panel/package.json +1 -1
- package/popover/package.json +1 -1
- package/product-switch/package.json +1 -1
- package/progress-indicator/package.json +1 -1
- package/quick-view/package.json +1 -1
- package/radio/package.json +1 -1
- package/rating-indicator/package.json +1 -1
- package/resizable-card-layout/package.json +1 -1
- package/scroll-spy/package.json +1 -1
- package/scrollbar/package.json +1 -1
- package/segmented-button/package.json +1 -1
- package/select/package.json +1 -1
- package/shared/package.json +1 -1
- package/shellbar/package.json +1 -1
- package/side-navigation/package.json +1 -1
- package/slider/package.json +1 -1
- package/split-button/package.json +1 -1
- package/splitter/package.json +1 -1
- package/status-indicator/package.json +1 -1
- package/step-input/package.json +1 -1
- package/switch/package.json +1 -1
- package/table/package.json +1 -1
- package/tabs/package.json +1 -1
- package/text/package.json +1 -1
- package/theming/package.json +1 -1
- package/tile/package.json +1 -1
- package/time/package.json +1 -1
- package/time-picker/package.json +1 -1
- package/timeline/package.json +1 -1
- package/title/package.json +1 -1
- package/token/package.json +1 -1
- package/toolbar/package.json +1 -1
- package/tree/package.json +1 -1
- package/upload-collection/package.json +1 -1
- package/utils/package.json +1 -1
- package/vertical-navigation/package.json +1 -1
- package/wizard/package.json +1 -1
package/action-bar/package.json
CHANGED
package/alert/package.json
CHANGED
package/avatar/package.json
CHANGED
package/bar/package.json
CHANGED
|
@@ -17,19 +17,20 @@ import * as i0 from "@angular/core";
|
|
|
17
17
|
* ```
|
|
18
18
|
*/
|
|
19
19
|
export declare class BreadcrumbComponent implements AfterViewInit, OnInit, OnDestroy {
|
|
20
|
-
elementRef: ElementRef<Element>;
|
|
21
|
-
private _rtlService;
|
|
22
|
-
private _cdRef;
|
|
23
|
-
private _resizeObserver;
|
|
24
|
-
private _ngZone;
|
|
20
|
+
readonly elementRef: ElementRef<Element>;
|
|
21
|
+
private readonly _rtlService;
|
|
22
|
+
private readonly _cdRef;
|
|
23
|
+
private readonly _resizeObserver;
|
|
24
|
+
private readonly _ngZone;
|
|
25
25
|
/** @hidden */
|
|
26
|
-
|
|
26
|
+
_breadcrumbItems: QueryList<BreadcrumbItemComponent>;
|
|
27
27
|
/** @hidden */
|
|
28
|
-
|
|
28
|
+
_menuComponent: MenuComponent;
|
|
29
|
+
private readonly _overflowContainer;
|
|
29
30
|
/** @hidden */
|
|
30
|
-
|
|
31
|
+
_collapsedBreadcrumbItems: Array<BreadcrumbItemComponent>;
|
|
31
32
|
/** @hidden */
|
|
32
|
-
|
|
33
|
+
_placement$: BehaviorSubject<Placement>;
|
|
33
34
|
/**
|
|
34
35
|
* The element to act as the breadcrumb container. When provided, the breadcrumb's responsive collapsing behavior
|
|
35
36
|
* performs better. When not provided, the immediate parent element's width will be used.
|
|
@@ -38,26 +39,29 @@ export declare class BreadcrumbComponent implements AfterViewInit, OnInit, OnDes
|
|
|
38
39
|
/** Whether to append items to the overflow dropdown in reverse order. Default is true. */
|
|
39
40
|
reverse: boolean;
|
|
40
41
|
/** @hidden */
|
|
41
|
-
|
|
42
|
+
_containerBoundary: number;
|
|
42
43
|
/** @hidden */
|
|
43
44
|
private _subscriptions;
|
|
44
45
|
/** @hidden */
|
|
45
46
|
private _itemToSize;
|
|
46
|
-
constructor(elementRef: ElementRef<Element>, _rtlService: RtlService, _cdRef: ChangeDetectorRef, _resizeObserver: ResizeObserverService, _ngZone: NgZone);
|
|
47
|
+
constructor(elementRef: ElementRef<Element>, _rtlService: RtlService | null, _cdRef: ChangeDetectorRef, _resizeObserver: ResizeObserverService, _ngZone: NgZone);
|
|
47
48
|
/** @hidden */
|
|
48
49
|
ngOnInit(): void;
|
|
50
|
+
/** @hidden */
|
|
49
51
|
ngAfterViewInit(): void;
|
|
50
52
|
/** @hidden */
|
|
51
53
|
ngOnDestroy(): void;
|
|
52
|
-
/**
|
|
54
|
+
/**
|
|
55
|
+
* Callback function when breadcrumbs container has been resized.
|
|
56
|
+
*/
|
|
53
57
|
onResize(): void;
|
|
54
58
|
/** @hidden */
|
|
55
|
-
|
|
59
|
+
_keyDownHandle(event: Event): void;
|
|
56
60
|
/**
|
|
57
61
|
* We catch interactions with item, Enter, Space, Mouse click and Touch click,
|
|
58
62
|
* if original element had router link we are proxying click to that element
|
|
59
63
|
* */
|
|
60
64
|
itemClicked(breadcrumbItem: BreadcrumbItemComponent, $event: any): void;
|
|
61
65
|
static ɵfac: i0.ɵɵFactoryDeclaration<BreadcrumbComponent, [null, { optional: true; }, null, null, null]>;
|
|
62
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<BreadcrumbComponent, "fd-breadcrumb", never, { "containerElement": "containerElement"; "reverse": "reverse"; }, {}, ["
|
|
66
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<BreadcrumbComponent, "fd-breadcrumb", never, { "containerElement": "containerElement"; "reverse": "reverse"; }, {}, ["_breadcrumbItems"], ["*"]>;
|
|
63
67
|
}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { ChangeDetectionStrategy, ChangeDetectorRef, Component, ContentChildren, ElementRef, forwardRef, Input, NgZone, Optional, QueryList, ViewChild, ViewEncapsulation } from '@angular/core';
|
|
2
2
|
import { BreadcrumbItemComponent } from './breadcrumb-item.component';
|
|
3
|
-
import { ResizeObserverService
|
|
4
|
-
import { BehaviorSubject, firstValueFrom, map, startWith, Subscription, tap } from 'rxjs';
|
|
3
|
+
import { ResizeObserverService } from '@fundamental-ngx/core/utils';
|
|
4
|
+
import { BehaviorSubject, debounceTime, firstValueFrom, map, startWith, Subscription, tap } from 'rxjs';
|
|
5
5
|
import { MenuComponent } from '@fundamental-ngx/core/menu';
|
|
6
6
|
import * as i0 from "@angular/core";
|
|
7
7
|
import * as i1 from "@fundamental-ngx/core/utils";
|
|
@@ -29,9 +29,9 @@ export class BreadcrumbComponent {
|
|
|
29
29
|
this._resizeObserver = _resizeObserver;
|
|
30
30
|
this._ngZone = _ngZone;
|
|
31
31
|
/** @hidden */
|
|
32
|
-
this.
|
|
32
|
+
this._collapsedBreadcrumbItems = [];
|
|
33
33
|
/** @hidden */
|
|
34
|
-
this.
|
|
34
|
+
this._placement$ = new BehaviorSubject('bottom-start');
|
|
35
35
|
/** Whether to append items to the overflow dropdown in reverse order. Default is true. */
|
|
36
36
|
this.reverse = false;
|
|
37
37
|
/** @hidden */
|
|
@@ -42,16 +42,19 @@ export class BreadcrumbComponent {
|
|
|
42
42
|
/** @hidden */
|
|
43
43
|
ngOnInit() {
|
|
44
44
|
if (this._rtlService) {
|
|
45
|
-
this._subscriptions.add(this._rtlService.rtl.subscribe((value) => this.
|
|
45
|
+
this._subscriptions.add(this._rtlService.rtl.subscribe((value) => this._placement$.next(value ? 'bottom-end' : 'bottom-start')));
|
|
46
46
|
}
|
|
47
47
|
}
|
|
48
|
+
/** @hidden */
|
|
48
49
|
ngAfterViewInit() {
|
|
49
|
-
this._subscriptions.add(this.
|
|
50
|
-
.pipe(startWith(this.
|
|
50
|
+
this._subscriptions.add(this._breadcrumbItems.changes
|
|
51
|
+
.pipe(startWith(this._breadcrumbItems), map((items) => items.toArray()), map((items) => items.map((item) => [item, item.width])), tap((itemToSize) => (this._itemToSize = new Map(itemToSize))))
|
|
51
52
|
.subscribe());
|
|
52
53
|
firstValueFrom(this._ngZone.onStable).then(() => {
|
|
53
54
|
this._subscriptions.add(this._resizeObserver
|
|
54
55
|
.observe(this.containerElement || this.elementRef.nativeElement.parentElement)
|
|
56
|
+
// Add small delay for performance reasons.
|
|
57
|
+
.pipe(debounceTime(30))
|
|
55
58
|
.subscribe(() => this.onResize()));
|
|
56
59
|
});
|
|
57
60
|
}
|
|
@@ -59,24 +62,29 @@ export class BreadcrumbComponent {
|
|
|
59
62
|
ngOnDestroy() {
|
|
60
63
|
this._subscriptions.unsubscribe();
|
|
61
64
|
}
|
|
62
|
-
/**
|
|
65
|
+
/**
|
|
66
|
+
* Callback function when breadcrumbs container has been resized.
|
|
67
|
+
*/
|
|
63
68
|
onResize() {
|
|
64
69
|
if (!this.elementRef.nativeElement.parentElement) {
|
|
65
70
|
return;
|
|
66
71
|
}
|
|
67
|
-
this.
|
|
72
|
+
this._containerBoundary = this.elementRef.nativeElement.parentElement.getBoundingClientRect().width;
|
|
68
73
|
if (this.containerElement) {
|
|
69
|
-
this.
|
|
74
|
+
this._containerBoundary = this.containerElement.getBoundingClientRect().width;
|
|
75
|
+
}
|
|
76
|
+
if (this._overflowContainer) {
|
|
77
|
+
this._containerBoundary -= this._overflowContainer.nativeElement.getBoundingClientRect().width;
|
|
70
78
|
}
|
|
71
79
|
let visibleSum = 0;
|
|
72
|
-
const breadcrumbItemComponents = this.
|
|
80
|
+
const breadcrumbItemComponents = this._breadcrumbItems.toArray();
|
|
73
81
|
let i;
|
|
74
82
|
for (i = breadcrumbItemComponents.length - 1; i >= 0; i--) {
|
|
75
83
|
const breadcrumbItem = breadcrumbItemComponents[i];
|
|
76
84
|
const itemSize = this._itemToSize.has(breadcrumbItem)
|
|
77
85
|
? this._itemToSize.get(breadcrumbItem)
|
|
78
86
|
: breadcrumbItem.width;
|
|
79
|
-
if (visibleSum + itemSize <= this.
|
|
87
|
+
if (visibleSum + itemSize <= this._containerBoundary) {
|
|
80
88
|
visibleSum += itemSize;
|
|
81
89
|
breadcrumbItem.show();
|
|
82
90
|
}
|
|
@@ -85,13 +93,13 @@ export class BreadcrumbComponent {
|
|
|
85
93
|
}
|
|
86
94
|
}
|
|
87
95
|
const collapsedBreadcrumbItems = breadcrumbItemComponents.slice(0, ++i);
|
|
88
|
-
this.
|
|
89
|
-
this.
|
|
96
|
+
this._collapsedBreadcrumbItems = this.reverse ? collapsedBreadcrumbItems : collapsedBreadcrumbItems.reverse();
|
|
97
|
+
this._collapsedBreadcrumbItems.forEach((item) => item.hide());
|
|
90
98
|
this._cdRef.detectChanges();
|
|
91
99
|
}
|
|
92
100
|
/** @hidden */
|
|
93
|
-
|
|
94
|
-
this.
|
|
101
|
+
_keyDownHandle(event) {
|
|
102
|
+
this._menuComponent.toggle();
|
|
95
103
|
event.preventDefault();
|
|
96
104
|
}
|
|
97
105
|
/**
|
|
@@ -106,23 +114,26 @@ export class BreadcrumbComponent {
|
|
|
106
114
|
}
|
|
107
115
|
}
|
|
108
116
|
BreadcrumbComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.4", ngImport: i0, type: BreadcrumbComponent, deps: [{ token: i0.ElementRef }, { token: i1.RtlService, optional: true }, { token: i0.ChangeDetectorRef }, { token: i1.ResizeObserverService }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
|
|
109
|
-
BreadcrumbComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.4", type: BreadcrumbComponent, selector: "fd-breadcrumb", inputs: { containerElement: "containerElement", reverse: "reverse" }, host: { classAttribute: "fd-breadcrumb" }, queries: [{ propertyName: "
|
|
117
|
+
BreadcrumbComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.4", type: BreadcrumbComponent, selector: "fd-breadcrumb", inputs: { containerElement: "containerElement", reverse: "reverse" }, host: { classAttribute: "fd-breadcrumb" }, queries: [{ propertyName: "_breadcrumbItems", predicate: i0.forwardRef(function () { return BreadcrumbItemComponent; }) }], viewQueries: [{ propertyName: "_menuComponent", first: true, predicate: MenuComponent, descendants: true }, { propertyName: "_overflowContainer", first: true, predicate: ["overflowBreadcrumbsContainer"], descendants: true }], ngImport: i0, template: "<fd-menu #menu [closeOnEscapeKey]=\"true\" [focusAutoCapture]=\"true\" [placement]=\"_placement$ | async\">\n <ng-container *ngFor=\"let breadcrumbItem of _collapsedBreadcrumbItems\">\n <li fd-menu-item [disabled]=\"breadcrumbItem.breadcrumbLink ? breadcrumbItem.breadcrumbLink.disabled : false\">\n <a\n fd-menu-interactive\n (click)=\"itemClicked(breadcrumbItem, $event)\"\n (keydown.enter)=\"itemClicked(breadcrumbItem, $event)\"\n (keydown.space)=\"itemClicked(breadcrumbItem, $event)\"\n >\n <ng-container *ngIf=\"breadcrumbItem?.breadcrumbLink; else portalContent\">\n <ng-container *ngIf=\"breadcrumbItem.breadcrumbLink._prefixIconName\">\n <fd-menu-addon\n position=\"before\"\n [glyph]=\"breadcrumbItem.breadcrumbLink._prefixIconName\"\n ></fd-menu-addon>\n </ng-container>\n <span fd-menu-title>\n <ng-container [cdkPortalOutlet]=\"breadcrumbItem.linkContentPortal\"></ng-container>\n </span>\n <ng-container *ngIf=\"breadcrumbItem.breadcrumbLink._postfixIconName\">\n <fd-menu-addon [glyph]=\"breadcrumbItem.breadcrumbLink._postfixIconName\"></fd-menu-addon>\n </ng-container>\n </ng-container>\n <ng-template #portalContent>\n <span fd-menu-title>\n <ng-container [cdkPortalOutlet]=\"breadcrumbItem.breadcrumbItemPortal\"></ng-container>\n </span>\n </ng-template>\n </a>\n </li>\n </ng-container>\n</fd-menu>\n\n<span\n class=\"fd-breadcrumb__item\"\n *ngIf=\"_collapsedBreadcrumbItems.length\"\n [fdMenuTrigger]=\"menu\"\n #overflowBreadcrumbsContainer\n>\n <a\n fd-link\n tabindex=\"0\"\n class=\"fd-breadcrumb__collapsed\"\n (keydown.enter)=\"_keyDownHandle($event)\"\n (keydown.space)=\"_keyDownHandle($event)\"\n >\n ...\n <fd-icon glyph=\"slim-arrow-down\"></fd-icon>\n </a>\n</span>\n\n<ng-content></ng-content>\n", styles: ["/*!\n * Fundamental Library Styles v0.24.2\n * Copyright (c) 2022 SAP SE or an SAP affiliate company.\n * Licensed under Apache License 2.0 (https://github.com/SAP/fundamental-styles/blob/main/LICENSE)\n *//*!\n.fd-breadcrumb\n .fd-breadcrumb__item\n .fd-breadcrump__link\n*/.fd-breadcrumb{-webkit-box-sizing:border-box;-ms-flex-wrap:wrap;align-items:center;border:0;box-sizing:border-box;color:var(--sapTextColor);display:flex;flex-wrap:wrap;font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;line-height:var(--sapContent_LineHeight);list-style:none;margin:0;padding:0}.fd-breadcrumb:after,.fd-breadcrumb:before{box-sizing:inherit;font-size:inherit}.fd-breadcrumb__item{-webkit-box-sizing:border-box;border:0;box-sizing:border-box;color:var(--sapTextColor);color:var(--sapContent_LabelColor);font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;line-height:var(--sapContent_LineHeight);margin:0;padding:0}.fd-breadcrumb__item:after,.fd-breadcrumb__item:before{box-sizing:inherit;font-size:inherit}.fd-breadcrumb__item:after{color:var(--sapContent_LabelColor);content:\"/\";margin-left:.25rem;margin-right:.25rem}.fd-breadcrumb__item:last-child:after{content:none}.fd-breadcrumb__item .fd-breadcrumb__popover-body{border:none;border-top-left-radius:.125rem;border-top-right-radius:.125rem}.fd-breadcrumb{display:inline-block;white-space:nowrap}.fd-breadcrumb .fd-breadcrumb__collapsed{cursor:pointer}\n"], components: [{ type: i2.MenuComponent, selector: "fd-menu", inputs: ["mobile", "disabled", "focusTrapped", "openOnHoverTime", "mobileConfig", "ariaLabel", "ariaLabelledby", "id"], outputs: ["activePath"] }, { type: i2.MenuItemComponent, selector: "li[fd-menu-item]", inputs: ["disabled", "itemId", "submenu"], outputs: ["onSelect"], exportAs: ["fd-menu-item"] }, { type: i2.MenuAddonDirective, selector: "fd-menu-addon", inputs: ["position", "glyph", "submenuIndicator", "ariaHidden"] }, { type: i3.LinkComponent, selector: "[fdLink], [fd-link], [fd-breadcrumb-link]", inputs: ["class", "emphasized", "disabled", "inverted", "subtle", "undecorated"] }, { type: i4.IconComponent, selector: "fd-icon", inputs: ["glyph", "font", "class", "ariaLabel"] }], directives: [{ type: i5.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i2.MenuInteractiveDirective, selector: "[fd-menu-interactive]" }, { type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i2.MenuTitleDirective, selector: "[fd-menu-title]" }, { type: i6.CdkPortalOutlet, selector: "[cdkPortalOutlet]", inputs: ["cdkPortalOutlet"], outputs: ["attached"], exportAs: ["cdkPortalOutlet"] }, { type: i2.MenuTriggerDirective, selector: "[fdMenuTrigger]", inputs: ["fdMenuTrigger"] }], pipes: { "async": i5.AsyncPipe }, changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
110
118
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.4", ngImport: i0, type: BreadcrumbComponent, decorators: [{
|
|
111
119
|
type: Component,
|
|
112
120
|
args: [{ selector: 'fd-breadcrumb', host: {
|
|
113
121
|
class: 'fd-breadcrumb'
|
|
114
|
-
}, encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, template: "<fd-menu #menu [closeOnEscapeKey]=\"true\" [focusAutoCapture]=\"true\" [placement]=\"
|
|
122
|
+
}, encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, template: "<fd-menu #menu [closeOnEscapeKey]=\"true\" [focusAutoCapture]=\"true\" [placement]=\"_placement$ | async\">\n <ng-container *ngFor=\"let breadcrumbItem of _collapsedBreadcrumbItems\">\n <li fd-menu-item [disabled]=\"breadcrumbItem.breadcrumbLink ? breadcrumbItem.breadcrumbLink.disabled : false\">\n <a\n fd-menu-interactive\n (click)=\"itemClicked(breadcrumbItem, $event)\"\n (keydown.enter)=\"itemClicked(breadcrumbItem, $event)\"\n (keydown.space)=\"itemClicked(breadcrumbItem, $event)\"\n >\n <ng-container *ngIf=\"breadcrumbItem?.breadcrumbLink; else portalContent\">\n <ng-container *ngIf=\"breadcrumbItem.breadcrumbLink._prefixIconName\">\n <fd-menu-addon\n position=\"before\"\n [glyph]=\"breadcrumbItem.breadcrumbLink._prefixIconName\"\n ></fd-menu-addon>\n </ng-container>\n <span fd-menu-title>\n <ng-container [cdkPortalOutlet]=\"breadcrumbItem.linkContentPortal\"></ng-container>\n </span>\n <ng-container *ngIf=\"breadcrumbItem.breadcrumbLink._postfixIconName\">\n <fd-menu-addon [glyph]=\"breadcrumbItem.breadcrumbLink._postfixIconName\"></fd-menu-addon>\n </ng-container>\n </ng-container>\n <ng-template #portalContent>\n <span fd-menu-title>\n <ng-container [cdkPortalOutlet]=\"breadcrumbItem.breadcrumbItemPortal\"></ng-container>\n </span>\n </ng-template>\n </a>\n </li>\n </ng-container>\n</fd-menu>\n\n<span\n class=\"fd-breadcrumb__item\"\n *ngIf=\"_collapsedBreadcrumbItems.length\"\n [fdMenuTrigger]=\"menu\"\n #overflowBreadcrumbsContainer\n>\n <a\n fd-link\n tabindex=\"0\"\n class=\"fd-breadcrumb__collapsed\"\n (keydown.enter)=\"_keyDownHandle($event)\"\n (keydown.space)=\"_keyDownHandle($event)\"\n >\n ...\n <fd-icon glyph=\"slim-arrow-down\"></fd-icon>\n </a>\n</span>\n\n<ng-content></ng-content>\n", styles: ["/*!\n * Fundamental Library Styles v0.24.2\n * Copyright (c) 2022 SAP SE or an SAP affiliate company.\n * Licensed under Apache License 2.0 (https://github.com/SAP/fundamental-styles/blob/main/LICENSE)\n *//*!\n.fd-breadcrumb\n .fd-breadcrumb__item\n .fd-breadcrump__link\n*/.fd-breadcrumb{-webkit-box-sizing:border-box;-ms-flex-wrap:wrap;align-items:center;border:0;box-sizing:border-box;color:var(--sapTextColor);display:flex;flex-wrap:wrap;font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;line-height:var(--sapContent_LineHeight);list-style:none;margin:0;padding:0}.fd-breadcrumb:after,.fd-breadcrumb:before{box-sizing:inherit;font-size:inherit}.fd-breadcrumb__item{-webkit-box-sizing:border-box;border:0;box-sizing:border-box;color:var(--sapTextColor);color:var(--sapContent_LabelColor);font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;line-height:var(--sapContent_LineHeight);margin:0;padding:0}.fd-breadcrumb__item:after,.fd-breadcrumb__item:before{box-sizing:inherit;font-size:inherit}.fd-breadcrumb__item:after{color:var(--sapContent_LabelColor);content:\"/\";margin-left:.25rem;margin-right:.25rem}.fd-breadcrumb__item:last-child:after{content:none}.fd-breadcrumb__item .fd-breadcrumb__popover-body{border:none;border-top-left-radius:.125rem;border-top-right-radius:.125rem}.fd-breadcrumb{display:inline-block;white-space:nowrap}.fd-breadcrumb .fd-breadcrumb__collapsed{cursor:pointer}\n"] }]
|
|
115
123
|
}], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i1.RtlService, decorators: [{
|
|
116
124
|
type: Optional
|
|
117
|
-
}] }, { type: i0.ChangeDetectorRef }, { type: i1.ResizeObserverService }, { type: i0.NgZone }]; }, propDecorators: {
|
|
125
|
+
}] }, { type: i0.ChangeDetectorRef }, { type: i1.ResizeObserverService }, { type: i0.NgZone }]; }, propDecorators: { _breadcrumbItems: [{
|
|
118
126
|
type: ContentChildren,
|
|
119
127
|
args: [forwardRef(() => BreadcrumbItemComponent)]
|
|
120
|
-
}],
|
|
128
|
+
}], _menuComponent: [{
|
|
121
129
|
type: ViewChild,
|
|
122
130
|
args: [MenuComponent]
|
|
131
|
+
}], _overflowContainer: [{
|
|
132
|
+
type: ViewChild,
|
|
133
|
+
args: ['overflowBreadcrumbsContainer']
|
|
123
134
|
}], containerElement: [{
|
|
124
135
|
type: Input
|
|
125
136
|
}], reverse: [{
|
|
126
137
|
type: Input
|
|
127
138
|
}] } });
|
|
128
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnJlYWRjcnVtYi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWJzL2NvcmUvc3JjL2xpYi9icmVhZGNydW1iL2JyZWFkY3J1bWIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vbGlicy9jb3JlL3NyYy9saWIvYnJlYWRjcnVtYi9icmVhZGNydW1iLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFFSCx1QkFBdUIsRUFDdkIsaUJBQWlCLEVBQ2pCLFNBQVMsRUFDVCxlQUFlLEVBQ2YsVUFBVSxFQUNWLFVBQVUsRUFDVixLQUFLLEVBQ0wsTUFBTSxFQUdOLFFBQVEsRUFDUixTQUFTLEVBQ1QsU0FBUyxFQUNULGlCQUFpQixFQUNwQixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUN0RSxPQUFPLEVBQUUscUJBQXFCLEVBQUUsVUFBVSxFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDaEYsT0FBTyxFQUFFLGVBQWUsRUFBRSxjQUFjLEVBQUUsR0FBRyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsR0FBRyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQzFGLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQzs7Ozs7Ozs7QUFHM0Q7Ozs7Ozs7Ozs7R0FVRztBQWFILE1BQU0sT0FBTyxtQkFBbUI7SUFtQzVCLFlBQ1csVUFBK0IsRUFDbEIsV0FBdUIsRUFDbkMsTUFBeUIsRUFDekIsZUFBc0MsRUFDdEMsT0FBZTtRQUpoQixlQUFVLEdBQVYsVUFBVSxDQUFxQjtRQUNsQixnQkFBVyxHQUFYLFdBQVcsQ0FBWTtRQUNuQyxXQUFNLEdBQU4sTUFBTSxDQUFtQjtRQUN6QixvQkFBZSxHQUFmLGVBQWUsQ0FBdUI7UUFDdEMsWUFBTyxHQUFQLE9BQU8sQ0FBUTtRQS9CM0IsY0FBYztRQUNkLDZC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Y0FBYyxDQUFDLGNBQWMsQ0FBQyxVQUFVLEVBQUUsQ0FBQyxhQUFhLENBQUMsS0FBSyxFQUFFLENBQUM7U0FDcEU7SUFDTCxDQUFDOztnSEE1SFEsbUJBQW1CO29HQUFuQixtQkFBbUIseU9BRU0sdUJBQXVCLGdGQUk5QyxhQUFhLGdEQ3BENUIsa3NFQStDQTsyRkREYSxtQkFBbUI7a0JBWi9CLFNBQVM7K0JBR0ksZUFBZSxRQUNuQjt3QkFDRixLQUFLLEVBQUUsZUFBZTtxQkFDekIsaUJBR2MsaUJBQWlCLENBQUMsSUFBSSxtQkFDcEIsdUJBQXVCLENBQUMsTUFBTTs7MEJBdUMxQyxRQUFRO3FJQWxDYixlQUFlO3NCQURkLGVBQWU7dUJBQUMsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLHVCQUF1QixDQUFDO2dCQUsxRCxhQUFhO3NCQURaLFNBQVM7dUJBQUMsYUFBYTtnQkFjeEIsZ0JBQWdCO3NCQURmLEtBQUs7Z0JBS04sT0FBTztzQkFETixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgICBBZnRlclZpZXdJbml0LFxuICAgIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICAgIENoYW5nZURldGVjdG9yUmVmLFxuICAgIENvbXBvbmVudCxcbiAgICBDb250ZW50Q2hpbGRyZW4sXG4gICAgRWxlbWVudFJlZixcbiAgICBmb3J3YXJkUmVmLFxuICAgIElucHV0LFxuICAgIE5nWm9uZSxcbiAgICBPbkRlc3Ryb3ksXG4gICAgT25Jbml0LFxuICAgIE9wdGlvbmFsLFxuICAgIFF1ZXJ5TGlzdCxcbiAgICBWaWV3Q2hpbGQsXG4gICAgVmlld0VuY2Fwc3VsYXRpb25cbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBCcmVhZGNydW1iSXRlbUNvbXBvbmVudCB9IGZyb20gJy4vYnJlYWRjcnVtYi1pdGVtLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBSZXNpemVPYnNlcnZlclNlcnZpY2UsIFJ0bFNlcnZpY2UgfSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L2NvcmUvdXRpbHMnO1xuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBmaXJzdFZhbHVlRnJvbSwgbWFwLCBzdGFydFdpdGgsIFN1YnNjcmlwdGlvbiwgdGFwIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBNZW51Q29tcG9uZW50IH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9jb3JlL21lbnUnO1xuaW1wb3J0IHsgUGxhY2VtZW50IH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9jb3JlL3NoYXJlZCc7XG5cbi8qKlxuICogQnJlYWRjcnVtYiBwYXJlbnQgd3JhcHBlciBkaXJlY3RpdmUuIE11c3QgaGF2ZSBicmVhZGNydW1iIGl0ZW0gY2hpbGQgZGlyZWN0aXZlcy5cbiAqXG4gKiBgYGBodG1sXG4gKiA8ZmQtYnJlYWRjcnVtYj5cbiAqICAgICA8ZmQtYnJlYWRjcnVtYi1pdGVtPlxuICogICAgICAgICA8YSBmZC1saW5rIFtyb3V0ZXJMaW5rXT1cIicjJ1wiPkJyZWFkY3J1bWIgTGluazwvYT5cbiAqICAgICA8L2ZkLWJyZWFkY3J1bWItaXRlbT5cbiAqIDwvZmQtYnJlYWRjcnVtYj5cbiAqIGBgYFxuICovXG5AQ29tcG9uZW50KHtcbiAgICAvLyBUT0RPIHRvIGJlIGRpc2N1c3NlZFxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZVxuICAgIHNlbGVjdG9yOiAnZmQtYnJlYWRjcnVtYicsXG4gICAgaG9zdDoge1xuICAgICAgICBjbGFzczogJ2ZkLWJyZWFkY3J1bWInXG4gICAgfSxcbiAgICB0ZW1wbGF0ZVVybDogJy4vYnJlYWRjcnVtYi5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vYnJlYWRjcnVtYi5jb21wb25lbnQuc2NzcyddLFxuICAgIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2hcbn0pXG5leHBvcnQgY2xhc3MgQnJlYWRjcnVtYkNvbXBvbmVudCBpbXBsZW1lbnRzIEFmdGVyVmlld0luaXQsIE9uSW5pdCwgT25EZXN0cm95IHtcbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIEBDb250ZW50Q2hpbGRyZW4oZm9yd2FyZFJlZigoKSA9PiBCcmVhZGNydW1iSXRlbUNvbXBvbmVudCkpXG4gICAgYnJlYWRjcnVtYkl0ZW1zOiBRdWVyeUxpc3Q8QnJlYWRjcnVtYkl0ZW1Db21wb25lbnQ+O1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBAVmlld0NoaWxkKE1lbnVDb21wb25lbnQpXG4gICAgbWVudUNvbXBvbmVudDogTWVudUNvbXBvbmVudDtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgY29sbGFwc2VkQnJlYWRjcnVtYkl0ZW1zOiBBcnJheTxCcmVhZGNydW1iSXRlbUNvbXBvbmVudD4gPSBbXTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcGxhY2VtZW50JCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8UGxhY2VtZW50PignYm90dG9tLXN0YXJ0Jyk7XG5cbiAgICAvKipcbiAgICAgKiBUaGUgZWxlbWVudCB0byBhY3QgYXMgdGhlIGJyZWFkY3J1bWIgY29udGFpbmVyLiBXaGVuIHByb3ZpZGVkLCB0aGUgYnJlYWRjcnVtYidzIHJlc3BvbnNpdmUgY29sbGFwc2luZyBiZWhhdmlvclxuICAgICAqIHBlcmZvcm1zIGJldHRlci4gV2hlbiBub3QgcHJvdmlkZWQsIHRoZSBpbW1lZGlhdGUgcGFyZW50IGVsZW1lbnQncyB3aWR0aCB3aWxsIGJlIHVzZWQuXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBjb250YWluZXJFbGVtZW50OiBIVE1MRWxlbWVudDtcblxuICAgIC8qKiBXaGV0aGVyIHRvIGFwcGVuZCBpdGVtcyB0byB0aGUgb3ZlcmZsb3cgZHJvcGRvd24gaW4gcmV2ZXJzZSBvcmRlci4gRGVmYXVsdCBpcyB0cnVlLiAqL1xuICAgIEBJbnB1dCgpXG4gICAgcmV2ZXJzZSA9IGZhbHNlO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBjb250YWluZXJCb3VuZGFyeTogbnVtYmVyO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF9zdWJzY3JpcHRpb25zID0gbmV3IFN1YnNjcmlwdGlvbigpO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF9pdGVtVG9TaXplID0gbmV3IE1hcDxCcmVhZGNydW1iSXRlbUNvbXBvbmVudCwgbnVtYmVyPigpO1xuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIHB1YmxpYyBlbGVtZW50UmVmOiBFbGVtZW50UmVmPEVsZW1lbnQ+LFxuICAgICAgICBAT3B0aW9uYWwoKSBwcml2YXRlIF9ydGxTZXJ2aWNlOiBSdGxTZXJ2aWNlLFxuICAgICAgICBwcml2YXRlIF9jZFJlZjogQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgICAgIHByaXZhdGUgX3Jlc2l6ZU9ic2VydmVyOiBSZXNpemVPYnNlcnZlclNlcnZpY2UsXG4gICAgICAgIHByaXZhdGUgX25nWm9uZTogTmdab25lXG4gICAgKSB7fVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMuX3J0bFNlcnZpY2UpIHtcbiAgICAgICAgICAgIHRoaXMuX3N1YnNjcmlwdGlvbnMuYWRkKFxuICAgICAgICAgICAgICAgIHRoaXMuX3J0bFNlcnZpY2UucnRsLnN1YnNjcmliZSgodmFsdWUpID0+IHRoaXMucGxhY2VtZW50JC5uZXh0KHZhbHVlID8gJ2JvdHRvbS1lbmQnIDogJ2JvdHRvbS1zdGFydCcpKVxuICAgICAgICAgICAgKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fc3Vic2NyaXB0aW9ucy5hZGQoXG4gICAgICAgICAgICB0aGlzLmJyZWFkY3J1bWJJdGVtcy5jaGFuZ2VzXG4gICAgICAgICAgICAgICAgLnBpcGUoXG4gICAgICAgICAgICAgICAgICAgIHN0YXJ0V2l0aCh0aGlzLmJyZWFkY3J1bWJJdGVtcyksXG4gICAgICAgICAgICAgICAgICAgIG1hcCgoaXRlbXMpID0+IGl0ZW1zLnRvQXJyYXkoKSBhcyBCcmVhZGNydW1iSXRlbUNvbXBvbmVudFtdKSxcbiAgICAgICAgICAgICAgICAgICAgbWFwKChpdGVtcykgPT4gaXRlbXMubWFwKChpdGVtKSA9PiBbaXRlbSwgaXRlbS53aWR0aF0pIGFzIFtCcmVhZGNydW1iSXRlbUNvbXBvbmVudCwgbnVtYmVyXVtdKSxcbiAgICAgICAgICAgICAgICAgICAgdGFwKChpdGVtVG9TaXplOiBbQnJlYWRjcnVtYkl0ZW1Db21wb25lbnQsIG51bWJlcl1bXSkgPT4gKHRoaXMuX2l0ZW1Ub1NpemUgPSBuZXcgTWFwKGl0ZW1Ub1NpemUpKSlcbiAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgLnN1YnNjcmliZSgpXG4gICAgICAgICk7XG4gICAgICAgIGZpcnN0VmFsdWVGcm9tKHRoaXMuX25nWm9uZS5vblN0YWJsZSkudGhlbigoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLl9zdWJzY3JpcHRpb25zLmFkZChcbiAgICAgICAgICAgICAgICB0aGlzLl9yZXNpemVPYnNlcnZlclxuICAgICAgICAgICAgICAgICAgICAub2JzZXJ2ZSh0aGlzLmNvbnRhaW5lckVsZW1lbnQgfHwgKHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LnBhcmVudEVsZW1lbnQgYXMgRWxlbWVudCkpXG4gICAgICAgICAgICAgICAgICAgIC5zdWJzY3JpYmUoKCkgPT4gdGhpcy5vblJlc2l6ZSgpKVxuICAgICAgICAgICAgKTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fc3Vic2NyaXB0aW9ucy51bnN1YnNjcmliZSgpO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgb25SZXNpemUoKTogdm9pZCB7XG4gICAgICAgIGlmICghdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQucGFyZW50RWxlbWVudCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuY29udGFpbmVyQm91bmRhcnkgPSB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5wYXJlbnRFbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLndpZHRoO1xuXG4gICAgICAgIGlmICh0aGlzLmNvbnRhaW5lckVsZW1lbnQpIHtcbiAgICAgICAgICAgIHRoaXMuY29udGFpbmVyQm91bmRhcnkgPSB0aGlzLmNvbnRhaW5lckVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkud2lkdGg7XG4gICAgICAgIH1cblxuICAgICAgICBsZXQgdmlzaWJsZVN1bSA9IDA7XG4gICAgICAgIGNvbnN0IGJyZWFkY3J1bWJJdGVtQ29tcG9uZW50cyA9IHRoaXMuYnJlYWRjcnVtYkl0ZW1zLnRvQXJyYXkoKTtcbiAgICAgICAgbGV0IGk7XG4gICAgICAgIGZvciAoaSA9IGJyZWFkY3J1bWJJdGVtQ29tcG9uZW50cy5sZW5ndGggLSAxOyBpID49IDA7IGktLSkge1xuICAgICAgICAgICAgY29uc3QgYnJlYWRjcnVtYkl0ZW0gPSBicmVhZGNydW1iSXRlbUNvbXBvbmVudHNbaV07XG4gICAgICAgICAgICBjb25zdCBpdGVtU2l6ZSA9IHRoaXMuX2l0ZW1Ub1NpemUuaGFzKGJyZWFkY3J1bWJJdGVtKVxuICAgICAgICAgICAgICAgID8gKHRoaXMuX2l0ZW1Ub1NpemUuZ2V0KGJyZWFkY3J1bWJJdGVtKSBhcyBudW1iZXIpXG4gICAgICAgICAgICAgICAgOiBicmVhZGNydW1iSXRlbS53aWR0aDtcbiAgICAgICAgICAgIGlmICh2aXNpYmxlU3VtICsgaXRlbVNpemUgPD0gdGhpcy5jb250YWluZXJCb3VuZGFyeSkge1xuICAgICAgICAgICAgICAgIHZpc2libGVTdW0gKz0gaXRlbVNpemU7XG4gICAgICAgICAgICAgICAgYnJlYWRjcnVtYkl0ZW0uc2hvdygpO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBjb25zdCBjb2xsYXBzZWRCcmVhZGNydW1iSXRlbXMgPSBicmVhZGNydW1iSXRlbUNvbXBvbmVudHMuc2xpY2UoMCwgKytpKTtcbiAgICAgICAgdGhpcy5jb2xsYXBzZWRCcmVhZGNydW1iSXRlbXMgPSB0aGlzLnJldmVyc2UgPyBjb2xsYXBzZWRCcmVhZGNydW1iSXRlbXMgOiBjb2xsYXBzZWRCcmVhZGNydW1iSXRlbXMucmV2ZXJzZSgpO1xuICAgICAgICB0aGlzLmNvbGxhcHNlZEJyZWFkY3J1bWJJdGVtcy5mb3JFYWNoKChpdGVtKSA9PiBpdGVtLmhpZGUoKSk7XG4gICAgICAgIHRoaXMuX2NkUmVmLmRldGVjdENoYW5nZXMoKTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIGtleURvd25IYW5kbGUoZXZlbnQ6IEV2ZW50KTogdm9pZCB7XG4gICAgICAgIHRoaXMubWVudUNvbXBvbmVudC50b2dnbGUoKTtcbiAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBXZSBjYXRjaCBpbnRlcmFjdGlvbnMgd2l0aCBpdGVtLCBFbnRlciwgU3BhY2UsIE1vdXNlIGNsaWNrIGFuZCBUb3VjaCBjbGljayxcbiAgICAgKiBpZiBvcmlnaW5hbCBlbGVtZW50IGhhZCByb3V0ZXIgbGluayB3ZSBhcmUgcHJveHlpbmcgY2xpY2sgdG8gdGhhdCBlbGVtZW50XG4gICAgICogKi9cbiAgICBpdGVtQ2xpY2tlZChicmVhZGNydW1iSXRlbTogQnJlYWRjcnVtYkl0ZW1Db21wb25lbnQsICRldmVudDogYW55KTogdm9pZCB7XG4gICAgICAgIGlmIChicmVhZGNydW1iSXRlbS5uZWVkc0NsaWNrUHJveHkpIHtcbiAgICAgICAgICAgICRldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgYnJlYWRjcnVtYkl0ZW0uYnJlYWRjcnVtYkxpbmsuZWxlbWVudFJlZigpLm5hdGl2ZUVsZW1lbnQuY2xpY2soKTtcbiAgICAgICAgfVxuICAgIH1cbn1cbiIsIjxmZC1tZW51ICNtZW51IFtjbG9zZU9uRXNjYXBlS2V5XT1cInRydWVcIiBbZm9jdXNBdXRvQ2FwdHVyZV09XCJ0cnVlXCIgW3BsYWNlbWVudF09XCJwbGFjZW1lbnQkIHwgYXN5bmNcIj5cbiAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBicmVhZGNydW1iSXRlbSBvZiBjb2xsYXBzZWRCcmVhZGNydW1iSXRlbXNcIj5cbiAgICAgICAgPGxpIGZkLW1lbnUtaXRlbSBbZGlzYWJsZWRdPVwiYnJlYWRjcnVtYkl0ZW0uYnJlYWRjcnVtYkxpbmsgPyBicmVhZGNydW1iSXRlbS5icmVhZGNydW1iTGluay5kaXNhYmxlZCA6IGZhbHNlXCI+XG4gICAgICAgICAgICA8YVxuICAgICAgICAgICAgICAgIGZkLW1lbnUtaW50ZXJhY3RpdmVcbiAgICAgICAgICAgICAgICAoY2xpY2spPVwiaXRlbUNsaWNrZWQoYnJlYWRjcnVtYkl0ZW0sICRldmVudClcIlxuICAgICAgICAgICAgICAgIChrZXlkb3duLmVudGVyKT1cIml0ZW1DbGlja2VkKGJyZWFkY3J1bWJJdGVtLCAkZXZlbnQpXCJcbiAgICAgICAgICAgICAgICAoa2V5ZG93bi5zcGFjZSk9XCJpdGVtQ2xpY2tlZChicmVhZGNydW1iSXRlbSwgJGV2ZW50KVwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImJyZWFkY3J1bWJJdGVtPy5icmVhZGNydW1iTGluazsgZWxzZSBwb3J0YWxDb250ZW50XCI+XG4gICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJicmVhZGNydW1iSXRlbS5icmVhZGNydW1iTGluay5fcHJlZml4SWNvbk5hbWVcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxmZC1tZW51LWFkZG9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcG9zaXRpb249XCJiZWZvcmVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtnbHlwaF09XCJicmVhZGNydW1iSXRlbS5icmVhZGNydW1iTGluay5fcHJlZml4SWNvbk5hbWVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgPjwvZmQtbWVudS1hZGRvbj5cbiAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGZkLW1lbnUtdGl0bGU+XG4gICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyIFtjZGtQb3J0YWxPdXRsZXRdPVwiYnJlYWRjcnVtYkl0ZW0ubGlua0NvbnRlbnRQb3J0YWxcIj48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiYnJlYWRjcnVtYkl0ZW0uYnJlYWRjcnVtYkxpbmsuX3Bvc3RmaXhJY29uTmFtZVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGZkLW1lbnUtYWRkb24gW2dseXBoXT1cImJyZWFkY3J1bWJJdGVtLmJyZWFkY3J1bWJMaW5rLl9wb3N0Zml4SWNvbk5hbWVcIj48L2ZkLW1lbnUtYWRkb24+XG4gICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjcG9ydGFsQ29udGVudD5cbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gZmQtbWVudS10aXRsZT5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgW2Nka1BvcnRhbE91dGxldF09XCJicmVhZGNydW1iSXRlbS5icmVhZGNydW1iSXRlbVBvcnRhbFwiPjwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgICAgIDwvYT5cbiAgICAgICAgPC9saT5cbiAgICA8L25nLWNvbnRhaW5lcj5cbjwvZmQtbWVudT5cblxuPHNwYW4gY2xhc3M9XCJmZC1icmVhZGNydW1iX19pdGVtXCIgKm5nSWY9XCJjb2xsYXBzZWRCcmVhZGNydW1iSXRlbXMubGVuZ3RoXCIgW2ZkTWVudVRyaWdnZXJdPVwibWVudVwiPlxuICAgIDxhXG4gICAgICAgIGZkLWxpbmtcbiAgICAgICAgdGFiaW5kZXg9XCIwXCJcbiAgICAgICAgY2xhc3M9XCJmZC1icmVhZGNydW1iX19jb2xsYXBzZWRcIlxuICAgICAgICAoa2V5ZG93bi5lbnRlcik9XCJrZXlEb3duSGFuZGxlKCRldmVudClcIlxuICAgICAgICAoa2V5ZG93bi5zcGFjZSk9XCJrZXlEb3duSGFuZGxlKCRldmVudClcIlxuICAgID5cbiAgICAgICAgLi4uXG4gICAgICAgIDxmZC1pY29uIGdseXBoPVwic2xpbS1hcnJvdy1kb3duXCI+PC9mZC1pY29uPlxuICAgIDwvYT5cbjwvc3Bhbj5cblxuPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxuIl19
|
|
139
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnJlYWRjcnVtYi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWJzL2NvcmUvc3JjL2xpYi9icmVhZGNydW1iL2JyZWFkY3J1bWIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vbGlicy9jb3JlL3NyYy9saWIvYnJlYWRjcnVtYi9icmVhZGNydW1iLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFFSCx1QkFBdUIsRUFDdkIsaUJBQWlCLEVBQ2pCLFNBQVMsRUFDVCxlQUFlLEVBQ2YsVUFBVSxFQUNWLFVBQVUsRUFDVixLQUFLLEVBQ0wsTUFBTSxFQUdOLFFBQVEsRUFDUixTQUFTLEVBQ1QsU0FBUyxFQUNULGlCQUFpQixFQUNwQixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUN0RSxPQUFPLEVBQUUscUJBQXFCLEVBQWMsTUFBTSw2QkFBNkIsQ0FBQztBQUNoRixPQUFPLEVBQUUsZUFBZSxFQUFFLFlBQVksRUFBRSxjQUFjLEVBQUUsR0FBRyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsR0FBRyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ3hHLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQzs7Ozs7Ozs7QUFHM0Q7Ozs7Ozs7Ozs7R0FVRztBQWFILE1BQU0sT0FBTyxtQkFBbUI7SUFzQzVCLFlBQ29CLFVBQStCLEVBQ2xCLFdBQThCLEVBQzFDLE1BQXlCLEVBQ3pCLGVBQXNDLEVBQ3RDLE9BQWU7UUFKaEIsZUFBVSxHQUFWLFVBQVUsQ0FBcUI7UUFDbEIsZ0JBQVcsR0FBWCxXQUFXLENBQW1CO1FBQzFDLFdBQU0sR0FBTixNQUFNLENBQW1CO1FBQ3pCLG9CQUFlLEdBQWYsZUFBZSxDQUF1QjtRQUN0QyxZQUFPLEdBQVAsT0FBTyxDQUFRO1FBL0JwQyxjQUFjO1FBQ2Qs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QyxLQUFZO1FBQ3ZCLElBQUksQ0FBQyxjQUFjLENBQUMsTUFBTSxFQUFFLENBQUM7UUFDN0IsS0FBSyxDQUFDLGNBQWMsRUFBRSxDQUFDO0lBQzNCLENBQUM7SUFFRDs7O1NBR0s7SUFDTCxXQUFXLENBQUMsY0FBdUMsRUFBRSxNQUFXO1FBQzVELElBQUksY0FBYyxDQUFDLGVBQWUsRUFBRTtZQUNoQyxNQUFNLENBQUMsY0FBYyxFQUFFLENBQUM7WUFDeEIsY0FBYyxDQUFDLGNBQWMsQ0FBQyxVQUFVLEVBQUUsQ0FBQyxhQUFhLENBQUMsS0FBSyxFQUFFLENBQUM7U0FDcEU7SUFDTCxDQUFDOztnSEF4SVEsbUJBQW1CO29HQUFuQixtQkFBbUIsME9BRU0sdUJBQXVCLGlGQUk5QyxhQUFhLHFLQ3BENUIsMnZFQW9EQTsyRkROYSxtQkFBbUI7a0JBWi9CLFNBQVM7K0JBR0ksZUFBZSxRQUNuQjt3QkFDRixLQUFLLEVBQUUsZUFBZTtxQkFDekIsaUJBR2MsaUJBQWlCLENBQUMsSUFBSSxtQkFDcEIsdUJBQXVCLENBQUMsTUFBTTs7MEJBMEMxQyxRQUFRO3FJQXJDYixnQkFBZ0I7c0JBRGYsZUFBZTt1QkFBQyxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsdUJBQXVCLENBQUM7Z0JBSzFELGNBQWM7c0JBRGIsU0FBUzt1QkFBQyxhQUFhO2dCQUlQLGtCQUFrQjtzQkFEbEMsU0FBUzt1QkFBQyw4QkFBOEI7Z0JBY3pDLGdCQUFnQjtzQkFEZixLQUFLO2dCQUtOLE9BQU87c0JBRE4sS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gICAgQWZ0ZXJWaWV3SW5pdCxcbiAgICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBDb21wb25lbnQsXG4gICAgQ29udGVudENoaWxkcmVuLFxuICAgIEVsZW1lbnRSZWYsXG4gICAgZm9yd2FyZFJlZixcbiAgICBJbnB1dCxcbiAgICBOZ1pvbmUsXG4gICAgT25EZXN0cm95LFxuICAgIE9uSW5pdCxcbiAgICBPcHRpb25hbCxcbiAgICBRdWVyeUxpc3QsXG4gICAgVmlld0NoaWxkLFxuICAgIFZpZXdFbmNhcHN1bGF0aW9uXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQnJlYWRjcnVtYkl0ZW1Db21wb25lbnQgfSBmcm9tICcuL2JyZWFkY3J1bWItaXRlbS5jb21wb25lbnQnO1xuaW1wb3J0IHsgUmVzaXplT2JzZXJ2ZXJTZXJ2aWNlLCBSdGxTZXJ2aWNlIH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9jb3JlL3V0aWxzJztcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgZGVib3VuY2VUaW1lLCBmaXJzdFZhbHVlRnJvbSwgbWFwLCBzdGFydFdpdGgsIFN1YnNjcmlwdGlvbiwgdGFwIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBNZW51Q29tcG9uZW50IH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9jb3JlL21lbnUnO1xuaW1wb3J0IHsgUGxhY2VtZW50IH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9jb3JlL3NoYXJlZCc7XG5cbi8qKlxuICogQnJlYWRjcnVtYiBwYXJlbnQgd3JhcHBlciBkaXJlY3RpdmUuIE11c3QgaGF2ZSBicmVhZGNydW1iIGl0ZW0gY2hpbGQgZGlyZWN0aXZlcy5cbiAqXG4gKiBgYGBodG1sXG4gKiA8ZmQtYnJlYWRjcnVtYj5cbiAqICAgICA8ZmQtYnJlYWRjcnVtYi1pdGVtPlxuICogICAgICAgICA8YSBmZC1saW5rIFtyb3V0ZXJMaW5rXT1cIicjJ1wiPkJyZWFkY3J1bWIgTGluazwvYT5cbiAqICAgICA8L2ZkLWJyZWFkY3J1bWItaXRlbT5cbiAqIDwvZmQtYnJlYWRjcnVtYj5cbiAqIGBgYFxuICovXG5AQ29tcG9uZW50KHtcbiAgICAvLyBUT0RPIHRvIGJlIGRpc2N1c3NlZFxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZVxuICAgIHNlbGVjdG9yOiAnZmQtYnJlYWRjcnVtYicsXG4gICAgaG9zdDoge1xuICAgICAgICBjbGFzczogJ2ZkLWJyZWFkY3J1bWInXG4gICAgfSxcbiAgICB0ZW1wbGF0ZVVybDogJy4vYnJlYWRjcnVtYi5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vYnJlYWRjcnVtYi5jb21wb25lbnQuc2NzcyddLFxuICAgIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2hcbn0pXG5leHBvcnQgY2xhc3MgQnJlYWRjcnVtYkNvbXBvbmVudCBpbXBsZW1lbnRzIEFmdGVyVmlld0luaXQsIE9uSW5pdCwgT25EZXN0cm95IHtcbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIEBDb250ZW50Q2hpbGRyZW4oZm9yd2FyZFJlZigoKSA9PiBCcmVhZGNydW1iSXRlbUNvbXBvbmVudCkpXG4gICAgX2JyZWFkY3J1bWJJdGVtczogUXVlcnlMaXN0PEJyZWFkY3J1bWJJdGVtQ29tcG9uZW50PjtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgQFZpZXdDaGlsZChNZW51Q29tcG9uZW50KVxuICAgIF9tZW51Q29tcG9uZW50OiBNZW51Q29tcG9uZW50O1xuXG4gICAgQFZpZXdDaGlsZCgnb3ZlcmZsb3dCcmVhZGNydW1ic0NvbnRhaW5lcicpXG4gICAgcHJpdmF0ZSByZWFkb25seSBfb3ZlcmZsb3dDb250YWluZXI6IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+O1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBfY29sbGFwc2VkQnJlYWRjcnVtYkl0ZW1zOiBBcnJheTxCcmVhZGNydW1iSXRlbUNvbXBvbmVudD4gPSBbXTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgX3BsYWNlbWVudCQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PFBsYWNlbWVudD4oJ2JvdHRvbS1zdGFydCcpO1xuXG4gICAgLyoqXG4gICAgICogVGhlIGVsZW1lbnQgdG8gYWN0IGFzIHRoZSBicmVhZGNydW1iIGNvbnRhaW5lci4gV2hlbiBwcm92aWRlZCwgdGhlIGJyZWFkY3J1bWIncyByZXNwb25zaXZlIGNvbGxhcHNpbmcgYmVoYXZpb3JcbiAgICAgKiBwZXJmb3JtcyBiZXR0ZXIuIFdoZW4gbm90IHByb3ZpZGVkLCB0aGUgaW1tZWRpYXRlIHBhcmVudCBlbGVtZW50J3Mgd2lkdGggd2lsbCBiZSB1c2VkLlxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgY29udGFpbmVyRWxlbWVudDogSFRNTEVsZW1lbnQ7XG5cbiAgICAvKiogV2hldGhlciB0byBhcHBlbmQgaXRlbXMgdG8gdGhlIG92ZXJmbG93IGRyb3Bkb3duIGluIHJldmVyc2Ugb3JkZXIuIERlZmF1bHQgaXMgdHJ1ZS4gKi9cbiAgICBASW5wdXQoKVxuICAgIHJldmVyc2UgPSBmYWxzZTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgX2NvbnRhaW5lckJvdW5kYXJ5OiBudW1iZXI7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX3N1YnNjcmlwdGlvbnMgPSBuZXcgU3Vic2NyaXB0aW9uKCk7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX2l0ZW1Ub1NpemUgPSBuZXcgTWFwPEJyZWFkY3J1bWJJdGVtQ29tcG9uZW50LCBudW1iZXI+KCk7XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHVibGljIHJlYWRvbmx5IGVsZW1lbnRSZWY6IEVsZW1lbnRSZWY8RWxlbWVudD4sXG4gICAgICAgIEBPcHRpb25hbCgpIHByaXZhdGUgcmVhZG9ubHkgX3J0bFNlcnZpY2U6IFJ0bFNlcnZpY2UgfCBudWxsLFxuICAgICAgICBwcml2YXRlIHJlYWRvbmx5IF9jZFJlZjogQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgICAgIHByaXZhdGUgcmVhZG9ubHkgX3Jlc2l6ZU9ic2VydmVyOiBSZXNpemVPYnNlcnZlclNlcnZpY2UsXG4gICAgICAgIHByaXZhdGUgcmVhZG9ubHkgX25nWm9uZTogTmdab25lXG4gICAgKSB7fVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMuX3J0bFNlcnZpY2UpIHtcbiAgICAgICAgICAgIHRoaXMuX3N1YnNjcmlwdGlvbnMuYWRkKFxuICAgICAgICAgICAgICAgIHRoaXMuX3J0bFNlcnZpY2UucnRsLnN1YnNjcmliZSgodmFsdWUpID0+IHRoaXMuX3BsYWNlbWVudCQubmV4dCh2YWx1ZSA/ICdib3R0b20tZW5kJyA6ICdib3R0b20tc3RhcnQnKSlcbiAgICAgICAgICAgICk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fc3Vic2NyaXB0aW9ucy5hZGQoXG4gICAgICAgICAgICB0aGlzLl9icmVhZGNydW1iSXRlbXMuY2hhbmdlc1xuICAgICAgICAgICAgICAgIC5waXBlKFxuICAgICAgICAgICAgICAgICAgICBzdGFydFdpdGgodGhpcy5fYnJlYWRjcnVtYkl0ZW1zKSxcbiAgICAgICAgICAgICAgICAgICAgbWFwKChpdGVtcykgPT4gaXRlbXMudG9BcnJheSgpIGFzIEJyZWFkY3J1bWJJdGVtQ29tcG9uZW50W10pLFxuICAgICAgICAgICAgICAgICAgICBtYXAoKGl0ZW1zKSA9PiBpdGVtcy5tYXAoKGl0ZW0pID0+IFtpdGVtLCBpdGVtLndpZHRoXSkgYXMgW0JyZWFkY3J1bWJJdGVtQ29tcG9uZW50LCBudW1iZXJdW10pLFxuICAgICAgICAgICAgICAgICAgICB0YXAoKGl0ZW1Ub1NpemU6IFtCcmVhZGNydW1iSXRlbUNvbXBvbmVudCwgbnVtYmVyXVtdKSA9PiAodGhpcy5faXRlbVRvU2l6ZSA9IG5ldyBNYXAoaXRlbVRvU2l6ZSkpKVxuICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICAuc3Vic2NyaWJlKClcbiAgICAgICAgKTtcbiAgICAgICAgZmlyc3RWYWx1ZUZyb20odGhpcy5fbmdab25lLm9uU3RhYmxlKS50aGVuKCgpID0+IHtcbiAgICAgICAgICAgIHRoaXMuX3N1YnNjcmlwdGlvbnMuYWRkKFxuICAgICAgICAgICAgICAgIHRoaXMuX3Jlc2l6ZU9ic2VydmVyXG4gICAgICAgICAgICAgICAgICAgIC5vYnNlcnZlKHRoaXMuY29udGFpbmVyRWxlbWVudCB8fCAodGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQucGFyZW50RWxlbWVudCBhcyBFbGVtZW50KSlcbiAgICAgICAgICAgICAgICAgICAgLy8gQWRkIHNtYWxsIGRlbGF5IGZvciBwZXJmb3JtYW5jZSByZWFzb25zLlxuICAgICAgICAgICAgICAgICAgICAucGlwZShkZWJvdW5jZVRpbWUoMzApKVxuICAgICAgICAgICAgICAgICAgICAuc3Vic2NyaWJlKCgpID0+IHRoaXMub25SZXNpemUoKSlcbiAgICAgICAgICAgICk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX3N1YnNjcmlwdGlvbnMudW5zdWJzY3JpYmUoKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDYWxsYmFjayBmdW5jdGlvbiB3aGVuIGJyZWFkY3J1bWJzIGNvbnRhaW5lciBoYXMgYmVlbiByZXNpemVkLlxuICAgICAqL1xuICAgIG9uUmVzaXplKCk6IHZvaWQge1xuICAgICAgICBpZiAoIXRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LnBhcmVudEVsZW1lbnQpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLl9jb250YWluZXJCb3VuZGFyeSA9IHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LnBhcmVudEVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkud2lkdGg7XG5cbiAgICAgICAgaWYgKHRoaXMuY29udGFpbmVyRWxlbWVudCkge1xuICAgICAgICAgICAgdGhpcy5fY29udGFpbmVyQm91bmRhcnkgPSB0aGlzLmNvbnRhaW5lckVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkud2lkdGg7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodGhpcy5fb3ZlcmZsb3dDb250YWluZXIpIHtcbiAgICAgICAgICAgIHRoaXMuX2NvbnRhaW5lckJvdW5kYXJ5IC09IHRoaXMuX292ZXJmbG93Q29udGFpbmVyLm5hdGl2ZUVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkud2lkdGg7XG4gICAgICAgIH1cblxuICAgICAgICBsZXQgdmlzaWJsZVN1bSA9IDA7XG4gICAgICAgIGNvbnN0IGJyZWFkY3J1bWJJdGVtQ29tcG9uZW50cyA9IHRoaXMuX2JyZWFkY3J1bWJJdGVtcy50b0FycmF5KCk7XG4gICAgICAgIGxldCBpO1xuICAgICAgICBmb3IgKGkgPSBicmVhZGNydW1iSXRlbUNvbXBvbmVudHMubGVuZ3RoIC0gMTsgaSA+PSAwOyBpLS0pIHtcbiAgICAgICAgICAgIGNvbnN0IGJyZWFkY3J1bWJJdGVtID0gYnJlYWRjcnVtYkl0ZW1Db21wb25lbnRzW2ldO1xuICAgICAgICAgICAgY29uc3QgaXRlbVNpemUgPSB0aGlzLl9pdGVtVG9TaXplLmhhcyhicmVhZGNydW1iSXRlbSlcbiAgICAgICAgICAgICAgICA/ICh0aGlzLl9pdGVtVG9TaXplLmdldChicmVhZGNydW1iSXRlbSkgYXMgbnVtYmVyKVxuICAgICAgICAgICAgICAgIDogYnJlYWRjcnVtYkl0ZW0ud2lkdGg7XG4gICAgICAgICAgICBpZiAodmlzaWJsZVN1bSArIGl0ZW1TaXplIDw9IHRoaXMuX2NvbnRhaW5lckJvdW5kYXJ5KSB7XG4gICAgICAgICAgICAgICAgdmlzaWJsZVN1bSArPSBpdGVtU2l6ZTtcbiAgICAgICAgICAgICAgICBicmVhZGNydW1iSXRlbS5zaG93KCk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGNvbnN0IGNvbGxhcHNlZEJyZWFkY3J1bWJJdGVtcyA9IGJyZWFkY3J1bWJJdGVtQ29tcG9uZW50cy5zbGljZSgwLCArK2kpO1xuICAgICAgICB0aGlzLl9jb2xsYXBzZWRCcmVhZGNydW1iSXRlbXMgPSB0aGlzLnJldmVyc2UgPyBjb2xsYXBzZWRCcmVhZGNydW1iSXRlbXMgOiBjb2xsYXBzZWRCcmVhZGNydW1iSXRlbXMucmV2ZXJzZSgpO1xuICAgICAgICB0aGlzLl9jb2xsYXBzZWRCcmVhZGNydW1iSXRlbXMuZm9yRWFjaCgoaXRlbSkgPT4gaXRlbS5oaWRlKCkpO1xuICAgICAgICB0aGlzLl9jZFJlZi5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBfa2V5RG93bkhhbmRsZShldmVudDogRXZlbnQpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fbWVudUNvbXBvbmVudC50b2dnbGUoKTtcbiAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBXZSBjYXRjaCBpbnRlcmFjdGlvbnMgd2l0aCBpdGVtLCBFbnRlciwgU3BhY2UsIE1vdXNlIGNsaWNrIGFuZCBUb3VjaCBjbGljayxcbiAgICAgKiBpZiBvcmlnaW5hbCBlbGVtZW50IGhhZCByb3V0ZXIgbGluayB3ZSBhcmUgcHJveHlpbmcgY2xpY2sgdG8gdGhhdCBlbGVtZW50XG4gICAgICogKi9cbiAgICBpdGVtQ2xpY2tlZChicmVhZGNydW1iSXRlbTogQnJlYWRjcnVtYkl0ZW1Db21wb25lbnQsICRldmVudDogYW55KTogdm9pZCB7XG4gICAgICAgIGlmIChicmVhZGNydW1iSXRlbS5uZWVkc0NsaWNrUHJveHkpIHtcbiAgICAgICAgICAgICRldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgYnJlYWRjcnVtYkl0ZW0uYnJlYWRjcnVtYkxpbmsuZWxlbWVudFJlZigpLm5hdGl2ZUVsZW1lbnQuY2xpY2soKTtcbiAgICAgICAgfVxuICAgIH1cbn1cbiIsIjxmZC1tZW51ICNtZW51IFtjbG9zZU9uRXNjYXBlS2V5XT1cInRydWVcIiBbZm9jdXNBdXRvQ2FwdHVyZV09XCJ0cnVlXCIgW3BsYWNlbWVudF09XCJfcGxhY2VtZW50JCB8IGFzeW5jXCI+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgYnJlYWRjcnVtYkl0ZW0gb2YgX2NvbGxhcHNlZEJyZWFkY3J1bWJJdGVtc1wiPlxuICAgICAgICA8bGkgZmQtbWVudS1pdGVtIFtkaXNhYmxlZF09XCJicmVhZGNydW1iSXRlbS5icmVhZGNydW1iTGluayA/IGJyZWFkY3J1bWJJdGVtLmJyZWFkY3J1bWJMaW5rLmRpc2FibGVkIDogZmFsc2VcIj5cbiAgICAgICAgICAgIDxhXG4gICAgICAgICAgICAgICAgZmQtbWVudS1pbnRlcmFjdGl2ZVxuICAgICAgICAgICAgICAgIChjbGljayk9XCJpdGVtQ2xpY2tlZChicmVhZGNydW1iSXRlbSwgJGV2ZW50KVwiXG4gICAgICAgICAgICAgICAgKGtleWRvd24uZW50ZXIpPVwiaXRlbUNsaWNrZWQoYnJlYWRjcnVtYkl0ZW0sICRldmVudClcIlxuICAgICAgICAgICAgICAgIChrZXlkb3duLnNwYWNlKT1cIml0ZW1DbGlja2VkKGJyZWFkY3J1bWJJdGVtLCAkZXZlbnQpXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiYnJlYWRjcnVtYkl0ZW0/LmJyZWFkY3J1bWJMaW5rOyBlbHNlIHBvcnRhbENvbnRlbnRcIj5cbiAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImJyZWFkY3J1bWJJdGVtLmJyZWFkY3J1bWJMaW5rLl9wcmVmaXhJY29uTmFtZVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGZkLW1lbnUtYWRkb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbj1cImJlZm9yZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW2dseXBoXT1cImJyZWFkY3J1bWJJdGVtLmJyZWFkY3J1bWJMaW5rLl9wcmVmaXhJY29uTmFtZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICA+PC9mZC1tZW51LWFkZG9uPlxuICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gZmQtbWVudS10aXRsZT5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgW2Nka1BvcnRhbE91dGxldF09XCJicmVhZGNydW1iSXRlbS5saW5rQ29udGVudFBvcnRhbFwiPjwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJicmVhZGNydW1iSXRlbS5icmVhZGNydW1iTGluay5fcG9zdGZpeEljb25OYW1lXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZmQtbWVudS1hZGRvbiBbZ2x5cGhdPVwiYnJlYWRjcnVtYkl0ZW0uYnJlYWRjcnVtYkxpbmsuX3Bvc3RmaXhJY29uTmFtZVwiPjwvZmQtbWVudS1hZGRvbj5cbiAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlICNwb3J0YWxDb250ZW50PlxuICAgICAgICAgICAgICAgICAgICA8c3BhbiBmZC1tZW51LXRpdGxlPlxuICAgICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciBbY2RrUG9ydGFsT3V0bGV0XT1cImJyZWFkY3J1bWJJdGVtLmJyZWFkY3J1bWJJdGVtUG9ydGFsXCI+PC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICAgICAgPC9hPlxuICAgICAgICA8L2xpPlxuICAgIDwvbmctY29udGFpbmVyPlxuPC9mZC1tZW51PlxuXG48c3BhblxuICAgIGNsYXNzPVwiZmQtYnJlYWRjcnVtYl9faXRlbVwiXG4gICAgKm5nSWY9XCJfY29sbGFwc2VkQnJlYWRjcnVtYkl0ZW1zLmxlbmd0aFwiXG4gICAgW2ZkTWVudVRyaWdnZXJdPVwibWVudVwiXG4gICAgI292ZXJmbG93QnJlYWRjcnVtYnNDb250YWluZXJcbj5cbiAgICA8YVxuICAgICAgICBmZC1saW5rXG4gICAgICAgIHRhYmluZGV4PVwiMFwiXG4gICAgICAgIGNsYXNzPVwiZmQtYnJlYWRjcnVtYl9fY29sbGFwc2VkXCJcbiAgICAgICAgKGtleWRvd24uZW50ZXIpPVwiX2tleURvd25IYW5kbGUoJGV2ZW50KVwiXG4gICAgICAgIChrZXlkb3duLnNwYWNlKT1cIl9rZXlEb3duSGFuZGxlKCRldmVudClcIlxuICAgID5cbiAgICAgICAgLi4uXG4gICAgICAgIDxmZC1pY29uIGdseXBoPVwic2xpbS1hcnJvdy1kb3duXCI+PC9mZC1pY29uPlxuICAgIDwvYT5cbjwvc3Bhbj5cblxuPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxuIl19
|
|
@@ -6,7 +6,7 @@ import * as i3 from '@fundamental-ngx/core/link';
|
|
|
6
6
|
import { LinkComponent, LinkModule } from '@fundamental-ngx/core/link';
|
|
7
7
|
import * as i6 from '@angular/cdk/portal';
|
|
8
8
|
import { DomPortal, PortalModule } from '@angular/cdk/portal';
|
|
9
|
-
import { BehaviorSubject, Subscription, startWith, map, tap, firstValueFrom } from 'rxjs';
|
|
9
|
+
import { BehaviorSubject, Subscription, startWith, map, tap, firstValueFrom, debounceTime } from 'rxjs';
|
|
10
10
|
import * as i2 from '@fundamental-ngx/core/menu';
|
|
11
11
|
import { MenuComponent, MenuModule } from '@fundamental-ngx/core/menu';
|
|
12
12
|
import * as i1 from '@fundamental-ngx/core/utils';
|
|
@@ -90,9 +90,9 @@ class BreadcrumbComponent {
|
|
|
90
90
|
this._resizeObserver = _resizeObserver;
|
|
91
91
|
this._ngZone = _ngZone;
|
|
92
92
|
/** @hidden */
|
|
93
|
-
this.
|
|
93
|
+
this._collapsedBreadcrumbItems = [];
|
|
94
94
|
/** @hidden */
|
|
95
|
-
this.
|
|
95
|
+
this._placement$ = new BehaviorSubject('bottom-start');
|
|
96
96
|
/** Whether to append items to the overflow dropdown in reverse order. Default is true. */
|
|
97
97
|
this.reverse = false;
|
|
98
98
|
/** @hidden */
|
|
@@ -103,16 +103,19 @@ class BreadcrumbComponent {
|
|
|
103
103
|
/** @hidden */
|
|
104
104
|
ngOnInit() {
|
|
105
105
|
if (this._rtlService) {
|
|
106
|
-
this._subscriptions.add(this._rtlService.rtl.subscribe((value) => this.
|
|
106
|
+
this._subscriptions.add(this._rtlService.rtl.subscribe((value) => this._placement$.next(value ? 'bottom-end' : 'bottom-start')));
|
|
107
107
|
}
|
|
108
108
|
}
|
|
109
|
+
/** @hidden */
|
|
109
110
|
ngAfterViewInit() {
|
|
110
|
-
this._subscriptions.add(this.
|
|
111
|
-
.pipe(startWith(this.
|
|
111
|
+
this._subscriptions.add(this._breadcrumbItems.changes
|
|
112
|
+
.pipe(startWith(this._breadcrumbItems), map((items) => items.toArray()), map((items) => items.map((item) => [item, item.width])), tap((itemToSize) => (this._itemToSize = new Map(itemToSize))))
|
|
112
113
|
.subscribe());
|
|
113
114
|
firstValueFrom(this._ngZone.onStable).then(() => {
|
|
114
115
|
this._subscriptions.add(this._resizeObserver
|
|
115
116
|
.observe(this.containerElement || this.elementRef.nativeElement.parentElement)
|
|
117
|
+
// Add small delay for performance reasons.
|
|
118
|
+
.pipe(debounceTime(30))
|
|
116
119
|
.subscribe(() => this.onResize()));
|
|
117
120
|
});
|
|
118
121
|
}
|
|
@@ -120,24 +123,29 @@ class BreadcrumbComponent {
|
|
|
120
123
|
ngOnDestroy() {
|
|
121
124
|
this._subscriptions.unsubscribe();
|
|
122
125
|
}
|
|
123
|
-
/**
|
|
126
|
+
/**
|
|
127
|
+
* Callback function when breadcrumbs container has been resized.
|
|
128
|
+
*/
|
|
124
129
|
onResize() {
|
|
125
130
|
if (!this.elementRef.nativeElement.parentElement) {
|
|
126
131
|
return;
|
|
127
132
|
}
|
|
128
|
-
this.
|
|
133
|
+
this._containerBoundary = this.elementRef.nativeElement.parentElement.getBoundingClientRect().width;
|
|
129
134
|
if (this.containerElement) {
|
|
130
|
-
this.
|
|
135
|
+
this._containerBoundary = this.containerElement.getBoundingClientRect().width;
|
|
136
|
+
}
|
|
137
|
+
if (this._overflowContainer) {
|
|
138
|
+
this._containerBoundary -= this._overflowContainer.nativeElement.getBoundingClientRect().width;
|
|
131
139
|
}
|
|
132
140
|
let visibleSum = 0;
|
|
133
|
-
const breadcrumbItemComponents = this.
|
|
141
|
+
const breadcrumbItemComponents = this._breadcrumbItems.toArray();
|
|
134
142
|
let i;
|
|
135
143
|
for (i = breadcrumbItemComponents.length - 1; i >= 0; i--) {
|
|
136
144
|
const breadcrumbItem = breadcrumbItemComponents[i];
|
|
137
145
|
const itemSize = this._itemToSize.has(breadcrumbItem)
|
|
138
146
|
? this._itemToSize.get(breadcrumbItem)
|
|
139
147
|
: breadcrumbItem.width;
|
|
140
|
-
if (visibleSum + itemSize <= this.
|
|
148
|
+
if (visibleSum + itemSize <= this._containerBoundary) {
|
|
141
149
|
visibleSum += itemSize;
|
|
142
150
|
breadcrumbItem.show();
|
|
143
151
|
}
|
|
@@ -146,13 +154,13 @@ class BreadcrumbComponent {
|
|
|
146
154
|
}
|
|
147
155
|
}
|
|
148
156
|
const collapsedBreadcrumbItems = breadcrumbItemComponents.slice(0, ++i);
|
|
149
|
-
this.
|
|
150
|
-
this.
|
|
157
|
+
this._collapsedBreadcrumbItems = this.reverse ? collapsedBreadcrumbItems : collapsedBreadcrumbItems.reverse();
|
|
158
|
+
this._collapsedBreadcrumbItems.forEach((item) => item.hide());
|
|
151
159
|
this._cdRef.detectChanges();
|
|
152
160
|
}
|
|
153
161
|
/** @hidden */
|
|
154
|
-
|
|
155
|
-
this.
|
|
162
|
+
_keyDownHandle(event) {
|
|
163
|
+
this._menuComponent.toggle();
|
|
156
164
|
event.preventDefault();
|
|
157
165
|
}
|
|
158
166
|
/**
|
|
@@ -167,22 +175,25 @@ class BreadcrumbComponent {
|
|
|
167
175
|
}
|
|
168
176
|
}
|
|
169
177
|
BreadcrumbComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.4", ngImport: i0, type: BreadcrumbComponent, deps: [{ token: i0.ElementRef }, { token: i1.RtlService, optional: true }, { token: i0.ChangeDetectorRef }, { token: i1.ResizeObserverService }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
|
|
170
|
-
BreadcrumbComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.4", type: BreadcrumbComponent, selector: "fd-breadcrumb", inputs: { containerElement: "containerElement", reverse: "reverse" }, host: { classAttribute: "fd-breadcrumb" }, queries: [{ propertyName: "
|
|
178
|
+
BreadcrumbComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.4", type: BreadcrumbComponent, selector: "fd-breadcrumb", inputs: { containerElement: "containerElement", reverse: "reverse" }, host: { classAttribute: "fd-breadcrumb" }, queries: [{ propertyName: "_breadcrumbItems", predicate: i0.forwardRef(function () { return BreadcrumbItemComponent; }) }], viewQueries: [{ propertyName: "_menuComponent", first: true, predicate: MenuComponent, descendants: true }, { propertyName: "_overflowContainer", first: true, predicate: ["overflowBreadcrumbsContainer"], descendants: true }], ngImport: i0, template: "<fd-menu #menu [closeOnEscapeKey]=\"true\" [focusAutoCapture]=\"true\" [placement]=\"_placement$ | async\">\n <ng-container *ngFor=\"let breadcrumbItem of _collapsedBreadcrumbItems\">\n <li fd-menu-item [disabled]=\"breadcrumbItem.breadcrumbLink ? breadcrumbItem.breadcrumbLink.disabled : false\">\n <a\n fd-menu-interactive\n (click)=\"itemClicked(breadcrumbItem, $event)\"\n (keydown.enter)=\"itemClicked(breadcrumbItem, $event)\"\n (keydown.space)=\"itemClicked(breadcrumbItem, $event)\"\n >\n <ng-container *ngIf=\"breadcrumbItem?.breadcrumbLink; else portalContent\">\n <ng-container *ngIf=\"breadcrumbItem.breadcrumbLink._prefixIconName\">\n <fd-menu-addon\n position=\"before\"\n [glyph]=\"breadcrumbItem.breadcrumbLink._prefixIconName\"\n ></fd-menu-addon>\n </ng-container>\n <span fd-menu-title>\n <ng-container [cdkPortalOutlet]=\"breadcrumbItem.linkContentPortal\"></ng-container>\n </span>\n <ng-container *ngIf=\"breadcrumbItem.breadcrumbLink._postfixIconName\">\n <fd-menu-addon [glyph]=\"breadcrumbItem.breadcrumbLink._postfixIconName\"></fd-menu-addon>\n </ng-container>\n </ng-container>\n <ng-template #portalContent>\n <span fd-menu-title>\n <ng-container [cdkPortalOutlet]=\"breadcrumbItem.breadcrumbItemPortal\"></ng-container>\n </span>\n </ng-template>\n </a>\n </li>\n </ng-container>\n</fd-menu>\n\n<span\n class=\"fd-breadcrumb__item\"\n *ngIf=\"_collapsedBreadcrumbItems.length\"\n [fdMenuTrigger]=\"menu\"\n #overflowBreadcrumbsContainer\n>\n <a\n fd-link\n tabindex=\"0\"\n class=\"fd-breadcrumb__collapsed\"\n (keydown.enter)=\"_keyDownHandle($event)\"\n (keydown.space)=\"_keyDownHandle($event)\"\n >\n ...\n <fd-icon glyph=\"slim-arrow-down\"></fd-icon>\n </a>\n</span>\n\n<ng-content></ng-content>\n", styles: ["/*!\n * Fundamental Library Styles v0.24.2\n * Copyright (c) 2022 SAP SE or an SAP affiliate company.\n * Licensed under Apache License 2.0 (https://github.com/SAP/fundamental-styles/blob/main/LICENSE)\n *//*!\n.fd-breadcrumb\n .fd-breadcrumb__item\n .fd-breadcrump__link\n*/.fd-breadcrumb{-webkit-box-sizing:border-box;-ms-flex-wrap:wrap;align-items:center;border:0;box-sizing:border-box;color:var(--sapTextColor);display:flex;flex-wrap:wrap;font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;line-height:var(--sapContent_LineHeight);list-style:none;margin:0;padding:0}.fd-breadcrumb:after,.fd-breadcrumb:before{box-sizing:inherit;font-size:inherit}.fd-breadcrumb__item{-webkit-box-sizing:border-box;border:0;box-sizing:border-box;color:var(--sapTextColor);color:var(--sapContent_LabelColor);font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;line-height:var(--sapContent_LineHeight);margin:0;padding:0}.fd-breadcrumb__item:after,.fd-breadcrumb__item:before{box-sizing:inherit;font-size:inherit}.fd-breadcrumb__item:after{color:var(--sapContent_LabelColor);content:\"/\";margin-left:.25rem;margin-right:.25rem}.fd-breadcrumb__item:last-child:after{content:none}.fd-breadcrumb__item .fd-breadcrumb__popover-body{border:none;border-top-left-radius:.125rem;border-top-right-radius:.125rem}.fd-breadcrumb{display:inline-block;white-space:nowrap}.fd-breadcrumb .fd-breadcrumb__collapsed{cursor:pointer}\n"], components: [{ type: i2.MenuComponent, selector: "fd-menu", inputs: ["mobile", "disabled", "focusTrapped", "openOnHoverTime", "mobileConfig", "ariaLabel", "ariaLabelledby", "id"], outputs: ["activePath"] }, { type: i2.MenuItemComponent, selector: "li[fd-menu-item]", inputs: ["disabled", "itemId", "submenu"], outputs: ["onSelect"], exportAs: ["fd-menu-item"] }, { type: i2.MenuAddonDirective, selector: "fd-menu-addon", inputs: ["position", "glyph", "submenuIndicator", "ariaHidden"] }, { type: i3.LinkComponent, selector: "[fdLink], [fd-link], [fd-breadcrumb-link]", inputs: ["class", "emphasized", "disabled", "inverted", "subtle", "undecorated"] }, { type: i4.IconComponent, selector: "fd-icon", inputs: ["glyph", "font", "class", "ariaLabel"] }], directives: [{ type: i5.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i2.MenuInteractiveDirective, selector: "[fd-menu-interactive]" }, { type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i2.MenuTitleDirective, selector: "[fd-menu-title]" }, { type: i6.CdkPortalOutlet, selector: "[cdkPortalOutlet]", inputs: ["cdkPortalOutlet"], outputs: ["attached"], exportAs: ["cdkPortalOutlet"] }, { type: i2.MenuTriggerDirective, selector: "[fdMenuTrigger]", inputs: ["fdMenuTrigger"] }], pipes: { "async": i5.AsyncPipe }, changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
171
179
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.4", ngImport: i0, type: BreadcrumbComponent, decorators: [{
|
|
172
180
|
type: Component,
|
|
173
181
|
args: [{ selector: 'fd-breadcrumb', host: {
|
|
174
182
|
class: 'fd-breadcrumb'
|
|
175
|
-
}, encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, template: "<fd-menu #menu [closeOnEscapeKey]=\"true\" [focusAutoCapture]=\"true\" [placement]=\"
|
|
183
|
+
}, encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, template: "<fd-menu #menu [closeOnEscapeKey]=\"true\" [focusAutoCapture]=\"true\" [placement]=\"_placement$ | async\">\n <ng-container *ngFor=\"let breadcrumbItem of _collapsedBreadcrumbItems\">\n <li fd-menu-item [disabled]=\"breadcrumbItem.breadcrumbLink ? breadcrumbItem.breadcrumbLink.disabled : false\">\n <a\n fd-menu-interactive\n (click)=\"itemClicked(breadcrumbItem, $event)\"\n (keydown.enter)=\"itemClicked(breadcrumbItem, $event)\"\n (keydown.space)=\"itemClicked(breadcrumbItem, $event)\"\n >\n <ng-container *ngIf=\"breadcrumbItem?.breadcrumbLink; else portalContent\">\n <ng-container *ngIf=\"breadcrumbItem.breadcrumbLink._prefixIconName\">\n <fd-menu-addon\n position=\"before\"\n [glyph]=\"breadcrumbItem.breadcrumbLink._prefixIconName\"\n ></fd-menu-addon>\n </ng-container>\n <span fd-menu-title>\n <ng-container [cdkPortalOutlet]=\"breadcrumbItem.linkContentPortal\"></ng-container>\n </span>\n <ng-container *ngIf=\"breadcrumbItem.breadcrumbLink._postfixIconName\">\n <fd-menu-addon [glyph]=\"breadcrumbItem.breadcrumbLink._postfixIconName\"></fd-menu-addon>\n </ng-container>\n </ng-container>\n <ng-template #portalContent>\n <span fd-menu-title>\n <ng-container [cdkPortalOutlet]=\"breadcrumbItem.breadcrumbItemPortal\"></ng-container>\n </span>\n </ng-template>\n </a>\n </li>\n </ng-container>\n</fd-menu>\n\n<span\n class=\"fd-breadcrumb__item\"\n *ngIf=\"_collapsedBreadcrumbItems.length\"\n [fdMenuTrigger]=\"menu\"\n #overflowBreadcrumbsContainer\n>\n <a\n fd-link\n tabindex=\"0\"\n class=\"fd-breadcrumb__collapsed\"\n (keydown.enter)=\"_keyDownHandle($event)\"\n (keydown.space)=\"_keyDownHandle($event)\"\n >\n ...\n <fd-icon glyph=\"slim-arrow-down\"></fd-icon>\n </a>\n</span>\n\n<ng-content></ng-content>\n", styles: ["/*!\n * Fundamental Library Styles v0.24.2\n * Copyright (c) 2022 SAP SE or an SAP affiliate company.\n * Licensed under Apache License 2.0 (https://github.com/SAP/fundamental-styles/blob/main/LICENSE)\n *//*!\n.fd-breadcrumb\n .fd-breadcrumb__item\n .fd-breadcrump__link\n*/.fd-breadcrumb{-webkit-box-sizing:border-box;-ms-flex-wrap:wrap;align-items:center;border:0;box-sizing:border-box;color:var(--sapTextColor);display:flex;flex-wrap:wrap;font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;line-height:var(--sapContent_LineHeight);list-style:none;margin:0;padding:0}.fd-breadcrumb:after,.fd-breadcrumb:before{box-sizing:inherit;font-size:inherit}.fd-breadcrumb__item{-webkit-box-sizing:border-box;border:0;box-sizing:border-box;color:var(--sapTextColor);color:var(--sapContent_LabelColor);font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;line-height:var(--sapContent_LineHeight);margin:0;padding:0}.fd-breadcrumb__item:after,.fd-breadcrumb__item:before{box-sizing:inherit;font-size:inherit}.fd-breadcrumb__item:after{color:var(--sapContent_LabelColor);content:\"/\";margin-left:.25rem;margin-right:.25rem}.fd-breadcrumb__item:last-child:after{content:none}.fd-breadcrumb__item .fd-breadcrumb__popover-body{border:none;border-top-left-radius:.125rem;border-top-right-radius:.125rem}.fd-breadcrumb{display:inline-block;white-space:nowrap}.fd-breadcrumb .fd-breadcrumb__collapsed{cursor:pointer}\n"] }]
|
|
176
184
|
}], ctorParameters: function () {
|
|
177
185
|
return [{ type: i0.ElementRef }, { type: i1.RtlService, decorators: [{
|
|
178
186
|
type: Optional
|
|
179
187
|
}] }, { type: i0.ChangeDetectorRef }, { type: i1.ResizeObserverService }, { type: i0.NgZone }];
|
|
180
|
-
}, propDecorators: {
|
|
188
|
+
}, propDecorators: { _breadcrumbItems: [{
|
|
181
189
|
type: ContentChildren,
|
|
182
190
|
args: [forwardRef(() => BreadcrumbItemComponent)]
|
|
183
|
-
}],
|
|
191
|
+
}], _menuComponent: [{
|
|
184
192
|
type: ViewChild,
|
|
185
193
|
args: [MenuComponent]
|
|
194
|
+
}], _overflowContainer: [{
|
|
195
|
+
type: ViewChild,
|
|
196
|
+
args: ['overflowBreadcrumbsContainer']
|
|
186
197
|
}], containerElement: [{
|
|
187
198
|
type: Input
|
|
188
199
|
}], reverse: [{
|