@fundamental-ngx/core 0.35.2-rc.28 → 0.35.2-rc.30

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.
Files changed (121) hide show
  1. package/action-bar/package.json +1 -1
  2. package/action-sheet/package.json +1 -1
  3. package/alert/package.json +1 -1
  4. package/avatar/package.json +1 -1
  5. package/avatar-group/package.json +1 -1
  6. package/bar/package.json +1 -1
  7. package/breadcrumb/breadcrumb.component.d.ts +18 -14
  8. package/breadcrumb/esm2020/breadcrumb.component.mjs +32 -21
  9. package/breadcrumb/fesm2015/fundamental-ngx-core-breadcrumb.mjs +30 -19
  10. package/breadcrumb/fesm2015/fundamental-ngx-core-breadcrumb.mjs.map +1 -1
  11. package/breadcrumb/fesm2020/fundamental-ngx-core-breadcrumb.mjs +30 -19
  12. package/breadcrumb/fesm2020/fundamental-ngx-core-breadcrumb.mjs.map +1 -1
  13. package/breadcrumb/package.json +1 -1
  14. package/busy-indicator/package.json +1 -1
  15. package/button/package.json +1 -1
  16. package/calendar/package.json +1 -1
  17. package/card/package.json +1 -1
  18. package/carousel/package.json +1 -1
  19. package/checkbox/package.json +1 -1
  20. package/combobox/package.json +1 -1
  21. package/content-density/package.json +3 -3
  22. package/date-picker/package.json +1 -1
  23. package/datetime/package.json +1 -1
  24. package/datetime-picker/package.json +1 -1
  25. package/dialog/package.json +1 -1
  26. package/dynamic-page/package.json +1 -1
  27. package/dynamic-side-content/package.json +1 -1
  28. package/esm2020/breadcrumb/breadcrumb.component.mjs +32 -21
  29. package/esm2020/illustrated-message/illustrated-message.component.mjs +28 -21
  30. package/esm2020/utils/interfaces/require.interface.mjs +2 -0
  31. package/esm2020/utils/public_api.mjs +2 -1
  32. package/facets/package.json +1 -1
  33. package/feed-input/package.json +1 -1
  34. package/feed-list-item/package.json +1 -1
  35. package/fesm2015/fundamental-ngx-core-breadcrumb.mjs +30 -19
  36. package/fesm2015/fundamental-ngx-core-breadcrumb.mjs.map +1 -1
  37. package/fesm2015/fundamental-ngx-core-illustrated-message.mjs +27 -21
  38. package/fesm2015/fundamental-ngx-core-illustrated-message.mjs.map +1 -1
  39. package/fesm2020/fundamental-ngx-core-breadcrumb.mjs +30 -19
  40. package/fesm2020/fundamental-ngx-core-breadcrumb.mjs.map +1 -1
  41. package/fesm2020/fundamental-ngx-core-illustrated-message.mjs +26 -20
  42. package/fesm2020/fundamental-ngx-core-illustrated-message.mjs.map +1 -1
  43. package/file-uploader/package.json +1 -1
  44. package/fixed-card-layout/package.json +1 -1
  45. package/flexible-column-layout/package.json +1 -1
  46. package/form/package.json +1 -1
  47. package/formatted-text/package.json +1 -1
  48. package/grid-list/package.json +1 -1
  49. package/icon/package.json +1 -1
  50. package/illustrated-message/esm2020/illustrated-message.component.mjs +28 -21
  51. package/illustrated-message/fesm2015/fundamental-ngx-core-illustrated-message.mjs +27 -21
  52. package/illustrated-message/fesm2015/fundamental-ngx-core-illustrated-message.mjs.map +1 -1
  53. package/illustrated-message/fesm2020/fundamental-ngx-core-illustrated-message.mjs +26 -20
  54. package/illustrated-message/fesm2020/fundamental-ngx-core-illustrated-message.mjs.map +1 -1
  55. package/illustrated-message/illustrated-message.component.d.ts +17 -15
  56. package/illustrated-message/package.json +1 -1
  57. package/infinite-scroll/package.json +1 -1
  58. package/info-label/package.json +1 -1
  59. package/inline-help/package.json +1 -1
  60. package/input-group/package.json +1 -1
  61. package/layout-grid/package.json +1 -1
  62. package/layout-panel/package.json +1 -1
  63. package/link/package.json +1 -1
  64. package/list/package.json +1 -1
  65. package/menu/package.json +1 -1
  66. package/message-box/package.json +1 -1
  67. package/message-strip/package.json +1 -1
  68. package/message-toast/package.json +1 -1
  69. package/micro-process-flow/package.json +1 -1
  70. package/mobile-mode/package.json +1 -1
  71. package/multi-input/package.json +1 -1
  72. package/nested-list/package.json +1 -1
  73. package/notification/package.json +1 -1
  74. package/object-identifier/package.json +1 -1
  75. package/object-marker/package.json +1 -1
  76. package/object-number/package.json +1 -1
  77. package/object-status/package.json +1 -1
  78. package/overflow-layout/package.json +13 -13
  79. package/package.json +1 -1
  80. package/pagination/package.json +1 -1
  81. package/panel/package.json +1 -1
  82. package/popover/package.json +1 -1
  83. package/product-switch/package.json +1 -1
  84. package/progress-indicator/package.json +1 -1
  85. package/quick-view/package.json +1 -1
  86. package/radio/package.json +1 -1
  87. package/rating-indicator/package.json +1 -1
  88. package/resizable-card-layout/package.json +1 -1
  89. package/scroll-spy/package.json +1 -1
  90. package/scrollbar/package.json +1 -1
  91. package/segmented-button/package.json +1 -1
  92. package/select/package.json +1 -1
  93. package/shared/package.json +1 -1
  94. package/shellbar/package.json +1 -1
  95. package/side-navigation/package.json +1 -1
  96. package/slider/package.json +1 -1
  97. package/split-button/package.json +1 -1
  98. package/splitter/package.json +1 -1
  99. package/status-indicator/package.json +1 -1
  100. package/step-input/package.json +1 -1
  101. package/switch/package.json +1 -1
  102. package/table/package.json +1 -1
  103. package/tabs/package.json +1 -1
  104. package/text/package.json +1 -1
  105. package/theming/package.json +1 -1
  106. package/tile/package.json +1 -1
  107. package/time/package.json +1 -1
  108. package/time-picker/package.json +1 -1
  109. package/timeline/package.json +1 -1
  110. package/title/package.json +1 -1
  111. package/token/package.json +1 -1
  112. package/toolbar/package.json +1 -1
  113. package/tree/package.json +1 -1
  114. package/upload-collection/package.json +1 -1
  115. package/utils/esm2020/interfaces/require.interface.mjs +2 -0
  116. package/utils/esm2020/public_api.mjs +2 -1
  117. package/utils/interfaces/require.interface.d.ts +6 -0
  118. package/utils/package.json +1 -1
  119. package/utils/public_api.d.ts +1 -0
  120. package/vertical-navigation/package.json +1 -1
  121. package/wizard/package.json +1 -1
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@fundamental-ngx/core/action-bar",
3
- "version": "0.35.2-rc.28",
3
+ "version": "0.35.2-rc.30",
4
4
  "peerDependencies": {
5
5
  "@angular/common": "^13.0.0",
6
6
  "@angular/core": "^13.0.0"
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@fundamental-ngx/core/action-sheet",
3
- "version": "0.35.2-rc.28",
3
+ "version": "0.35.2-rc.30",
4
4
  "peerDependencies": {
5
5
  "@angular/common": "^13.0.0",
6
6
  "@angular/core": "^13.0.0"
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@fundamental-ngx/core/alert",
3
- "version": "0.35.2-rc.28",
3
+ "version": "0.35.2-rc.30",
4
4
  "peerDependencies": {
5
5
  "@angular/common": "^13.0.0",
6
6
  "@angular/core": "^13.0.0"
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@fundamental-ngx/core/avatar",
3
- "version": "0.35.2-rc.28",
3
+ "version": "0.35.2-rc.30",
4
4
  "peerDependencies": {
5
5
  "@angular/common": "^13.0.0",
6
6
  "@angular/core": "^13.0.0"
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@fundamental-ngx/core/avatar-group",
3
- "version": "0.35.2-rc.28",
3
+ "version": "0.35.2-rc.30",
4
4
  "peerDependencies": {
5
5
  "@angular/common": "^13.0.0",
6
6
  "@angular/core": "^13.0.0"
package/bar/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@fundamental-ngx/core/bar",
3
- "version": "0.35.2-rc.28",
3
+ "version": "0.35.2-rc.30",
4
4
  "peerDependencies": {
5
5
  "@angular/common": "^13.0.0",
6
6
  "@angular/core": "^13.0.0"
@@ -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
- breadcrumbItems: QueryList<BreadcrumbItemComponent>;
26
+ _breadcrumbItems: QueryList<BreadcrumbItemComponent>;
27
27
  /** @hidden */
28
- menuComponent: MenuComponent;
28
+ _menuComponent: MenuComponent;
29
+ private readonly _overflowContainer;
29
30
  /** @hidden */
30
- collapsedBreadcrumbItems: Array<BreadcrumbItemComponent>;
31
+ _collapsedBreadcrumbItems: Array<BreadcrumbItemComponent>;
31
32
  /** @hidden */
32
- placement$: BehaviorSubject<Placement>;
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
- containerBoundary: number;
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
- /** @hidden */
54
+ /**
55
+ * Callback function when breadcrumbs container has been resized.
56
+ */
53
57
  onResize(): void;
54
58
  /** @hidden */
55
- keyDownHandle(event: Event): void;
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"; }, {}, ["breadcrumbItems"], ["*"]>;
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, RtlService } from '@fundamental-ngx/core/utils';
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.collapsedBreadcrumbItems = [];
32
+ this._collapsedBreadcrumbItems = [];
33
33
  /** @hidden */
34
- this.placement$ = new BehaviorSubject('bottom-start');
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.placement$.next(value ? 'bottom-end' : 'bottom-start')));
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.breadcrumbItems.changes
50
- .pipe(startWith(this.breadcrumbItems), map((items) => items.toArray()), map((items) => items.map((item) => [item, item.width])), tap((itemToSize) => (this._itemToSize = new Map(itemToSize))))
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
- /** @hidden */
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.containerBoundary = this.elementRef.nativeElement.parentElement.getBoundingClientRect().width;
72
+ this._containerBoundary = this.elementRef.nativeElement.parentElement.getBoundingClientRect().width;
68
73
  if (this.containerElement) {
69
- this.containerBoundary = this.containerElement.getBoundingClientRect().width;
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.breadcrumbItems.toArray();
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.containerBoundary) {
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.collapsedBreadcrumbItems = this.reverse ? collapsedBreadcrumbItems : collapsedBreadcrumbItems.reverse();
89
- this.collapsedBreadcrumbItems.forEach((item) => item.hide());
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
- keyDownHandle(event) {
94
- this.menuComponent.toggle();
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: "breadcrumbItems", predicate: i0.forwardRef(function () { return BreadcrumbItemComponent; }) }], viewQueries: [{ propertyName: "menuComponent", first: true, predicate: MenuComponent, 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 class=\"fd-breadcrumb__item\" *ngIf=\"collapsedBreadcrumbItems.length\" [fdMenuTrigger]=\"menu\">\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 });
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]=\"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 class=\"fd-breadcrumb__item\" *ngIf=\"collapsedBreadcrumbItems.length\" [fdMenuTrigger]=\"menu\">\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"] }]
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: { breadcrumbItems: [{
125
+ }] }, { type: i0.ChangeDetectorRef }, { type: i1.ResizeObserverService }, { type: i0.NgZone }]; }, propDecorators: { _breadcrumbItems: [{
118
126
  type: ContentChildren,
119
127
  args: [forwardRef(() => BreadcrumbItemComponent)]
120
- }], menuComponent: [{
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.collapsedBreadcrumbItems = [];
93
+ this._collapsedBreadcrumbItems = [];
94
94
  /** @hidden */
95
- this.placement$ = new BehaviorSubject('bottom-start');
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.placement$.next(value ? 'bottom-end' : 'bottom-start')));
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.breadcrumbItems.changes
111
- .pipe(startWith(this.breadcrumbItems), map((items) => items.toArray()), map((items) => items.map((item) => [item, item.width])), tap((itemToSize) => (this._itemToSize = new Map(itemToSize))))
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
- /** @hidden */
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.containerBoundary = this.elementRef.nativeElement.parentElement.getBoundingClientRect().width;
133
+ this._containerBoundary = this.elementRef.nativeElement.parentElement.getBoundingClientRect().width;
129
134
  if (this.containerElement) {
130
- this.containerBoundary = this.containerElement.getBoundingClientRect().width;
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.breadcrumbItems.toArray();
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.containerBoundary) {
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.collapsedBreadcrumbItems = this.reverse ? collapsedBreadcrumbItems : collapsedBreadcrumbItems.reverse();
150
- this.collapsedBreadcrumbItems.forEach((item) => item.hide());
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
- keyDownHandle(event) {
155
- this.menuComponent.toggle();
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: "breadcrumbItems", predicate: i0.forwardRef(function () { return BreadcrumbItemComponent; }) }], viewQueries: [{ propertyName: "menuComponent", first: true, predicate: MenuComponent, 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 class=\"fd-breadcrumb__item\" *ngIf=\"collapsedBreadcrumbItems.length\" [fdMenuTrigger]=\"menu\">\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 });
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]=\"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 class=\"fd-breadcrumb__item\" *ngIf=\"collapsedBreadcrumbItems.length\" [fdMenuTrigger]=\"menu\">\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"] }]
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: { breadcrumbItems: [{
188
+ }, propDecorators: { _breadcrumbItems: [{
181
189
  type: ContentChildren,
182
190
  args: [forwardRef(() => BreadcrumbItemComponent)]
183
- }], menuComponent: [{
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: [{