@fundamental-ngx/core 0.35.0-rc.10 → 0.35.0-rc.13

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 (190) 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-hidden-item/breadcrumb-hidden-item.component.d.ts +23 -0
  8. package/breadcrumb/breadcrumb-item.component.d.ts +29 -0
  9. package/breadcrumb/breadcrumb.component.d.ts +16 -39
  10. package/breadcrumb/breadcrumb.module.d.ts +6 -4
  11. package/breadcrumb/esm2020/breadcrumb-hidden-item/breadcrumb-hidden-item.component.mjs +39 -0
  12. package/breadcrumb/esm2020/breadcrumb-item.component.mjs +48 -0
  13. package/breadcrumb/esm2020/breadcrumb.component.mjs +50 -137
  14. package/breadcrumb/esm2020/breadcrumb.module.mjs +11 -9
  15. package/breadcrumb/esm2020/public_api.mjs +2 -3
  16. package/breadcrumb/fesm2015/fundamental-ngx-core-breadcrumb.mjs +112 -197
  17. package/breadcrumb/fesm2015/fundamental-ngx-core-breadcrumb.mjs.map +1 -1
  18. package/breadcrumb/fesm2020/fundamental-ngx-core-breadcrumb.mjs +111 -197
  19. package/breadcrumb/fesm2020/fundamental-ngx-core-breadcrumb.mjs.map +1 -1
  20. package/breadcrumb/package.json +1 -1
  21. package/breadcrumb/public_api.d.ts +1 -2
  22. package/busy-indicator/package.json +1 -1
  23. package/button/package.json +1 -1
  24. package/calendar/package.json +1 -1
  25. package/card/package.json +1 -1
  26. package/carousel/package.json +1 -1
  27. package/checkbox/package.json +1 -1
  28. package/combobox/package.json +1 -1
  29. package/date-picker/package.json +1 -1
  30. package/datetime/package.json +1 -1
  31. package/datetime-picker/package.json +1 -1
  32. package/dialog/package.json +1 -1
  33. package/dynamic-page/package.json +1 -1
  34. package/dynamic-side-content/package.json +1 -1
  35. package/esm2020/breadcrumb/breadcrumb-hidden-item/breadcrumb-hidden-item.component.mjs +39 -0
  36. package/esm2020/breadcrumb/breadcrumb-item.component.mjs +48 -0
  37. package/esm2020/breadcrumb/breadcrumb.component.mjs +50 -137
  38. package/esm2020/breadcrumb/breadcrumb.module.mjs +11 -9
  39. package/esm2020/breadcrumb/public_api.mjs +2 -3
  40. package/esm2020/feed-list-item/components/item/feed-list-item.component.mjs +1 -1
  41. package/esm2020/form/form-label/form-label.component.mjs +1 -1
  42. package/esm2020/link/link.component.mjs +45 -7
  43. package/esm2020/multi-input/multi-input.component.mjs +1 -1
  44. package/esm2020/popover/popover-service/popover.service.mjs +2 -1
  45. package/esm2020/table/directives/table-text.directive.mjs +7 -5
  46. package/esm2020/text/text.component.mjs +1 -1
  47. package/esm2020/utils/public_api.mjs +2 -1
  48. package/esm2020/utils/services/resize-observer.service.mjs +83 -0
  49. package/facets/package.json +1 -1
  50. package/feed-input/package.json +1 -1
  51. package/feed-list-item/esm2020/components/item/feed-list-item.component.mjs +1 -1
  52. package/feed-list-item/fesm2015/fundamental-ngx-core-feed-list-item.mjs +1 -1
  53. package/feed-list-item/fesm2020/fundamental-ngx-core-feed-list-item.mjs +1 -1
  54. package/feed-list-item/package.json +1 -1
  55. package/fesm2015/fundamental-ngx-core-breadcrumb.mjs +112 -197
  56. package/fesm2015/fundamental-ngx-core-breadcrumb.mjs.map +1 -1
  57. package/fesm2015/fundamental-ngx-core-feed-list-item.mjs +1 -1
  58. package/fesm2015/fundamental-ngx-core-form.mjs +1 -1
  59. package/fesm2015/fundamental-ngx-core-link.mjs +46 -6
  60. package/fesm2015/fundamental-ngx-core-link.mjs.map +1 -1
  61. package/fesm2015/fundamental-ngx-core-multi-input.mjs +1 -1
  62. package/fesm2015/fundamental-ngx-core-popover.mjs +1 -0
  63. package/fesm2015/fundamental-ngx-core-popover.mjs.map +1 -1
  64. package/fesm2015/fundamental-ngx-core-table.mjs +6 -4
  65. package/fesm2015/fundamental-ngx-core-table.mjs.map +1 -1
  66. package/fesm2015/fundamental-ngx-core-text.mjs +1 -1
  67. package/fesm2015/fundamental-ngx-core-utils.mjs +81 -2
  68. package/fesm2015/fundamental-ngx-core-utils.mjs.map +1 -1
  69. package/fesm2020/fundamental-ngx-core-breadcrumb.mjs +111 -197
  70. package/fesm2020/fundamental-ngx-core-breadcrumb.mjs.map +1 -1
  71. package/fesm2020/fundamental-ngx-core-feed-list-item.mjs +1 -1
  72. package/fesm2020/fundamental-ngx-core-form.mjs +1 -1
  73. package/fesm2020/fundamental-ngx-core-link.mjs +44 -6
  74. package/fesm2020/fundamental-ngx-core-link.mjs.map +1 -1
  75. package/fesm2020/fundamental-ngx-core-multi-input.mjs +1 -1
  76. package/fesm2020/fundamental-ngx-core-popover.mjs +1 -0
  77. package/fesm2020/fundamental-ngx-core-popover.mjs.map +1 -1
  78. package/fesm2020/fundamental-ngx-core-table.mjs +6 -4
  79. package/fesm2020/fundamental-ngx-core-table.mjs.map +1 -1
  80. package/fesm2020/fundamental-ngx-core-text.mjs +1 -1
  81. package/fesm2020/fundamental-ngx-core-utils.mjs +81 -2
  82. package/fesm2020/fundamental-ngx-core-utils.mjs.map +1 -1
  83. package/file-uploader/package.json +1 -1
  84. package/fixed-card-layout/package.json +1 -1
  85. package/flexible-column-layout/package.json +1 -1
  86. package/form/esm2020/form-label/form-label.component.mjs +1 -1
  87. package/form/fesm2015/fundamental-ngx-core-form.mjs +1 -1
  88. package/form/fesm2020/fundamental-ngx-core-form.mjs +1 -1
  89. package/form/package.json +1 -1
  90. package/formatted-text/package.json +1 -1
  91. package/grid-list/package.json +1 -1
  92. package/icon/package.json +1 -1
  93. package/illustrated-message/package.json +1 -1
  94. package/infinite-scroll/package.json +1 -1
  95. package/info-label/package.json +1 -1
  96. package/inline-help/package.json +1 -1
  97. package/input-group/package.json +1 -1
  98. package/layout-grid/package.json +1 -1
  99. package/layout-panel/package.json +1 -1
  100. package/link/esm2020/link.component.mjs +45 -7
  101. package/link/fesm2015/fundamental-ngx-core-link.mjs +46 -6
  102. package/link/fesm2015/fundamental-ngx-core-link.mjs.map +1 -1
  103. package/link/fesm2020/fundamental-ngx-core-link.mjs +44 -6
  104. package/link/fesm2020/fundamental-ngx-core-link.mjs.map +1 -1
  105. package/link/link.component.d.ts +8 -2
  106. package/link/package.json +1 -1
  107. package/list/package.json +1 -1
  108. package/menu/package.json +1 -1
  109. package/message-box/package.json +1 -1
  110. package/message-strip/package.json +1 -1
  111. package/message-toast/package.json +1 -1
  112. package/micro-process-flow/package.json +1 -1
  113. package/mobile-mode/package.json +1 -1
  114. package/multi-input/esm2020/multi-input.component.mjs +1 -1
  115. package/multi-input/fesm2015/fundamental-ngx-core-multi-input.mjs +1 -1
  116. package/multi-input/fesm2020/fundamental-ngx-core-multi-input.mjs +1 -1
  117. package/multi-input/package.json +1 -1
  118. package/nested-list/package.json +1 -1
  119. package/notification/package.json +1 -1
  120. package/object-identifier/package.json +1 -1
  121. package/object-marker/package.json +1 -1
  122. package/object-number/package.json +1 -1
  123. package/object-status/package.json +1 -1
  124. package/package.json +1 -1
  125. package/pagination/package.json +1 -1
  126. package/panel/package.json +1 -1
  127. package/popover/esm2020/popover-service/popover.service.mjs +2 -1
  128. package/popover/fesm2015/fundamental-ngx-core-popover.mjs +1 -0
  129. package/popover/fesm2015/fundamental-ngx-core-popover.mjs.map +1 -1
  130. package/popover/fesm2020/fundamental-ngx-core-popover.mjs +1 -0
  131. package/popover/fesm2020/fundamental-ngx-core-popover.mjs.map +1 -1
  132. package/popover/package.json +1 -1
  133. package/product-switch/package.json +1 -1
  134. package/progress-indicator/package.json +1 -1
  135. package/quick-view/package.json +1 -1
  136. package/radio/package.json +1 -1
  137. package/rating-indicator/package.json +1 -1
  138. package/resizable-card-layout/package.json +1 -1
  139. package/scroll-spy/package.json +1 -1
  140. package/scrollbar/package.json +1 -1
  141. package/segmented-button/package.json +1 -1
  142. package/select/package.json +1 -1
  143. package/shared/package.json +1 -1
  144. package/shellbar/package.json +1 -1
  145. package/side-navigation/package.json +1 -1
  146. package/slider/package.json +1 -1
  147. package/split-button/package.json +1 -1
  148. package/splitter/package.json +1 -1
  149. package/status-indicator/package.json +1 -1
  150. package/step-input/package.json +1 -1
  151. package/switch/package.json +1 -1
  152. package/table/directives/table-text.directive.d.ts +5 -5
  153. package/table/esm2020/directives/table-text.directive.mjs +7 -5
  154. package/table/fesm2015/fundamental-ngx-core-table.mjs +6 -4
  155. package/table/fesm2015/fundamental-ngx-core-table.mjs.map +1 -1
  156. package/table/fesm2020/fundamental-ngx-core-table.mjs +6 -4
  157. package/table/fesm2020/fundamental-ngx-core-table.mjs.map +1 -1
  158. package/table/package.json +1 -1
  159. package/tabs/package.json +1 -1
  160. package/text/esm2020/text.component.mjs +1 -1
  161. package/text/fesm2015/fundamental-ngx-core-text.mjs +1 -1
  162. package/text/fesm2020/fundamental-ngx-core-text.mjs +1 -1
  163. package/text/package.json +1 -1
  164. package/theming/package.json +1 -1
  165. package/tile/package.json +1 -1
  166. package/time/package.json +1 -1
  167. package/time-picker/package.json +1 -1
  168. package/timeline/package.json +1 -1
  169. package/title/package.json +1 -1
  170. package/token/package.json +1 -1
  171. package/toolbar/package.json +1 -1
  172. package/tree/package.json +1 -1
  173. package/upload-collection/package.json +1 -1
  174. package/utils/esm2020/public_api.mjs +2 -1
  175. package/utils/esm2020/services/resize-observer.service.mjs +83 -0
  176. package/utils/fesm2015/fundamental-ngx-core-utils.mjs +81 -2
  177. package/utils/fesm2015/fundamental-ngx-core-utils.mjs.map +1 -1
  178. package/utils/fesm2020/fundamental-ngx-core-utils.mjs +81 -2
  179. package/utils/fesm2020/fundamental-ngx-core-utils.mjs.map +1 -1
  180. package/utils/package.json +1 -1
  181. package/utils/public_api.d.ts +1 -0
  182. package/utils/services/resize-observer.service.d.ts +29 -0
  183. package/vertical-navigation/package.json +1 -1
  184. package/wizard/package.json +1 -1
  185. package/breadcrumb/breadcrumb-item.directive.d.ts +0 -28
  186. package/breadcrumb/breadcrumb-link.directive.d.ts +0 -18
  187. package/breadcrumb/esm2020/breadcrumb-item.directive.mjs +0 -51
  188. package/breadcrumb/esm2020/breadcrumb-link.directive.mjs +0 -35
  189. package/esm2020/breadcrumb/breadcrumb-item.directive.mjs +0 -51
  190. package/esm2020/breadcrumb/breadcrumb-link.directive.mjs +0 -35
@@ -1,47 +1,44 @@
1
- import { ChangeDetectionStrategy, ChangeDetectorRef, Component, ContentChildren, ElementRef, forwardRef, HostListener, Input, Optional, QueryList, ViewChild, ViewEncapsulation } from '@angular/core';
2
- import { BreadcrumbItemDirective } from './breadcrumb-item.directive';
3
- import { RtlService } from '@fundamental-ngx/core/utils';
4
- import { BehaviorSubject, Subscription } from 'rxjs';
5
- import { KeyUtil } from '@fundamental-ngx/core/utils';
1
+ import { ChangeDetectionStrategy, ChangeDetectorRef, Component, ContentChildren, ElementRef, forwardRef, Input, NgZone, Optional, QueryList, ViewChild, ViewEncapsulation } from '@angular/core';
2
+ import { BreadcrumbItemComponent } from './breadcrumb-item.component';
3
+ import { ContentDensityService, ResizeObserverService, RtlService } from '@fundamental-ngx/core/utils';
4
+ import { BehaviorSubject, firstValueFrom, map, startWith, Subscription, tap } from 'rxjs';
6
5
  import { MenuComponent } from '@fundamental-ngx/core/menu';
7
- import { ENTER, SPACE } from '@angular/cdk/keycodes';
8
- import { ContentDensityService } from '@fundamental-ngx/core/utils';
9
6
  import * as i0 from "@angular/core";
10
7
  import * as i1 from "@fundamental-ngx/core/utils";
11
8
  import * as i2 from "@fundamental-ngx/core/menu";
12
- import * as i3 from "@angular/common";
13
- import * as i4 from "@angular/router";
14
- import * as i5 from "./breadcrumb-item.directive";
15
- import * as i6 from "./breadcrumb-link.directive";
9
+ import * as i3 from "./breadcrumb-hidden-item/breadcrumb-hidden-item.component";
10
+ import * as i4 from "@fundamental-ngx/core/link";
11
+ import * as i5 from "@fundamental-ngx/core/icon";
12
+ import * as i6 from "@angular/common";
16
13
  /**
17
14
  * Breadcrumb parent wrapper directive. Must have breadcrumb item child directives.
18
15
  *
19
16
  * ```html
20
17
  * <fd-breadcrumb>
21
18
  * <fd-breadcrumb-item>
22
- * <a fd-breadcrumb-link [routerLink]="'#'">Breadcrumb Link</a>
19
+ * <a fd-link [routerLink]="'#'">Breadcrumb Link</a>
23
20
  * </fd-breadcrumb-item>
24
21
  * </fd-breadcrumb>
25
22
  * ```
26
23
  */
27
24
  export class BreadcrumbComponent {
28
- constructor(elementRef, _rtlService, _contentDensityService, _cdRef) {
25
+ constructor(elementRef, _rtlService, _contentDensityService, _cdRef, _resizeObserver, _ngZone) {
29
26
  this.elementRef = elementRef;
30
27
  this._rtlService = _rtlService;
31
28
  this._contentDensityService = _contentDensityService;
32
29
  this._cdRef = _cdRef;
30
+ this._resizeObserver = _resizeObserver;
31
+ this._ngZone = _ngZone;
33
32
  /** @hidden */
34
33
  this.collapsedBreadcrumbItems = [];
35
34
  /** @hidden */
36
35
  this.placement$ = new BehaviorSubject('bottom-start');
37
- /** Whether or not to append items to the overflow dropdown in reverse order. Default is true. */
36
+ /** Whether to append items to the overflow dropdown in reverse order. Default is true. */
38
37
  this.reverse = false;
39
38
  /** @hidden */
40
39
  this._subscriptions = new Subscription();
41
- }
42
- /** @hidden */
43
- ngAfterContentInit() {
44
- this.onResize();
40
+ /** @hidden */
41
+ this._itemToSize = new Map();
45
42
  }
46
43
  /** @hidden */
47
44
  ngOnInit() {
@@ -55,6 +52,16 @@ export class BreadcrumbComponent {
55
52
  }));
56
53
  }
57
54
  }
55
+ ngAfterViewInit() {
56
+ this._subscriptions.add(this.breadcrumbItems.changes
57
+ .pipe(startWith(this.breadcrumbItems), map((items) => items.toArray()), map((items) => items.map((item) => [item, item.width])), tap((itemToSize) => (this._itemToSize = new Map(itemToSize))))
58
+ .subscribe());
59
+ firstValueFrom(this._ngZone.onStable).then(() => {
60
+ this._subscriptions.add(this._resizeObserver
61
+ .observe(this.containerElement || this.elementRef.nativeElement.parentElement)
62
+ .subscribe(() => this.onResize()));
63
+ });
64
+ }
58
65
  /** @hidden */
59
66
  ngOnDestroy() {
60
67
  this._subscriptions.unsubscribe();
@@ -68,140 +75,49 @@ export class BreadcrumbComponent {
68
75
  if (this.containerElement) {
69
76
  this.containerBoundary = this.containerElement.getBoundingClientRect().width;
70
77
  }
71
- /*
72
- if this is the first load and there is no previousContainerWidth,
73
- or the container boundary is smaller than the previousContainerWidth
74
- */
75
- if (!this.previousContainerWidth || this.containerBoundary < this.previousContainerWidth) {
76
- // and the breadcrumbs extend past the window
77
- if (this.elementRef.nativeElement.getBoundingClientRect().width > this.containerBoundary) {
78
- this.collapseBreadcrumbs();
78
+ let visibleSum = 0;
79
+ const breadcrumbItemComponents = this.breadcrumbItems.toArray();
80
+ let i;
81
+ for (i = breadcrumbItemComponents.length - 1; i >= 0; i--) {
82
+ const breadcrumbItem = breadcrumbItemComponents[i];
83
+ const itemSize = this._itemToSize.has(breadcrumbItem)
84
+ ? this._itemToSize.get(breadcrumbItem)
85
+ : breadcrumbItem.width;
86
+ if (visibleSum + itemSize <= this.containerBoundary) {
87
+ visibleSum += itemSize;
88
+ breadcrumbItem.show();
89
+ }
90
+ else {
91
+ break;
79
92
  }
80
93
  }
81
- else if (this.collapsedBreadcrumbItems.length) {
82
- // if the screen is getting bigger and there are collapsed breadcrumbs
83
- this.expandBreadcrumbs();
84
- }
85
- this.previousContainerWidth = this.containerBoundary;
94
+ const collapsedBreadcrumbItems = breadcrumbItemComponents.slice(0, ++i);
95
+ this.collapsedBreadcrumbItems = this.reverse ? collapsedBreadcrumbItems : collapsedBreadcrumbItems.reverse();
96
+ this.collapsedBreadcrumbItems.forEach((item) => item.hide());
86
97
  this._cdRef.detectChanges();
87
98
  }
88
99
  /** @hidden */
89
100
  keyDownHandle(event) {
90
- if (KeyUtil.isKeyCode(event, [ENTER, SPACE])) {
91
- this.menuComponent.toggle();
92
- event.preventDefault();
93
- }
94
- }
95
- /** @hidden */
96
- getContainerBoundary() {
97
- let containerBoundary = this.elementRef.nativeElement.parentElement.getBoundingClientRect().width;
98
- if (this.containerElement) {
99
- containerBoundary = this.containerElement.getBoundingClientRect().width;
100
- }
101
- return containerBoundary;
102
- }
103
- /**
104
- * @hidden
105
- *
106
- * This function moves breadcrumbs from the original QueryList of BreadCrumbItemDirectives into the array of
107
- * collapsedBreadcrumbItems.
108
- * */
109
- collapseBreadcrumbs() {
110
- let i = 0;
111
- const containerBoundary = this.getContainerBoundary();
112
- // move the breadcrumb items into a collapsed menu one by one, until the last one is inside the window
113
- while (this.elementRef.nativeElement.getBoundingClientRect().width > containerBoundary &&
114
- i < this.breadcrumbItems.length) {
115
- const breadcrumbItem = this.breadcrumbItems.filter((item, index) => index === i)[0];
116
- if (this.collapsedBreadcrumbItems.indexOf(breadcrumbItem) === -1) {
117
- this.reverse
118
- ? this.collapsedBreadcrumbItems.push(breadcrumbItem)
119
- : this.collapsedBreadcrumbItems.unshift(breadcrumbItem);
120
- }
121
- // hide the original breadcrumb items that have been moved in to the collapsed menu
122
- breadcrumbItem.elementRef.nativeElement.style.display = 'none';
123
- i++;
124
- }
125
- }
126
- /**
127
- * @hidden
128
- *
129
- * This function removes breadcrumb items from the collapsedBreadcrumbItems array and makes them visible again in the
130
- * original QueryList of BreadcrumbItemDirectives.
131
- * */
132
- expandBreadcrumbs() {
133
- let breakLoop = false;
134
- let i = 0;
135
- const originalCollapsedLength = this.collapsedBreadcrumbItems.length;
136
- while (this.fitInBoundries() && !breakLoop && i < originalCollapsedLength) {
137
- // get the most recently collapsed breadcrumb
138
- const collapsedItemToPop = this.getCollapsedItem();
139
- // find the corresponding breadcrumb from the original breadcrumb item QueryList
140
- const breadcrumbToCheck = this.getBreadcrumbToCheck(collapsedItemToPop);
141
- /*
142
- set display: 'inline-block' and visibility: 'hidden' - this way, the parent breadcrumb component's width will
143
- contain the width of the breadcrumb item we might pop, without actually making the item visible to the user
144
- */
145
- this.applyStylesToBreadcrumb(breadcrumbToCheck);
146
- if (this.fitInBoundries()) {
147
- /*
148
- if the width of the breadcrumb component is still smaller than the window width, including the
149
- breadcrumbToCheck, pop the latest collapsedBreadcrumbItem
150
- */
151
- this.popLastElement();
152
- this.makeBreadcrumbVisible(breadcrumbToCheck);
153
- }
154
- else {
155
- /*
156
- if the width of the breadcrumb component is wider than the window after making the breadcrumbToCheck's
157
- display: 'inline-block', then put it's display back to 'none' and don't pop the collapsedBreadcrumbItem
158
- */
159
- this.makeBreadcrumbInvisible(breadcrumbToCheck);
160
- breakLoop = true;
161
- }
162
- i++;
163
- }
164
- }
165
- fitInBoundries() {
166
- return this.elementRef.nativeElement.getBoundingClientRect().width < this.getContainerBoundary();
167
- }
168
- getCollapsedItem() {
169
- return this.collapsedBreadcrumbItems[this.collapsedBreadcrumbItems.length - 1];
170
- }
171
- getBreadcrumbToCheck(collapsedItemToPop) {
172
- return this.breadcrumbItems.filter((item) => item === collapsedItemToPop)[0];
173
- }
174
- applyStylesToBreadcrumb(breadcrumb) {
175
- breadcrumb.elementRef.nativeElement.style.display = 'inline-block';
176
- breadcrumb.elementRef.nativeElement.style.visibility = 'hidden';
177
- }
178
- popLastElement() {
179
- this.collapsedBreadcrumbItems.pop();
180
- // make the breadcrumb we checked visible
181
- }
182
- makeBreadcrumbVisible(breadcrumb) {
183
- breadcrumb.elementRef.nativeElement.style.visibility = 'visible';
184
- }
185
- makeBreadcrumbInvisible(breadcrumb) {
186
- breadcrumb.elementRef.nativeElement.style.display = 'none';
101
+ this.menuComponent.toggle();
102
+ event.preventDefault();
187
103
  }
188
104
  }
189
- 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: i1.ContentDensityService, optional: true }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
190
- BreadcrumbComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.4", type: BreadcrumbComponent, selector: "fd-breadcrumb", inputs: { compact: "compact", containerElement: "containerElement", reverse: "reverse" }, host: { listeners: { "window:resize": "onResize()" }, classAttribute: "fd-breadcrumb" }, queries: [{ propertyName: "breadcrumbItems", predicate: i0.forwardRef(function () { return BreadcrumbItemDirective; }) }], viewQueries: [{ propertyName: "menuComponent", first: true, predicate: MenuComponent, descendants: true }], ngImport: i0, template: "<fd-menu #menu [compact]=\"compact\" [closeOnEscapeKey]=\"true\" [focusAutoCapture]=\"true\" [placement]=\"placement$ | async\">\n <li fd-menu-item *ngFor=\"let collapsedBreadcrumbItem of collapsedBreadcrumbItems\">\n <a\n fd-menu-interactive\n [attr.href]=\"collapsedBreadcrumbItem.href\"\n [routerLink]=\"collapsedBreadcrumbItem.routerLink\"\n >\n <span fd-menu-title>{{ collapsedBreadcrumbItem.elementRef.nativeElement.innerText }}</span>\n </a>\n </li>\n</fd-menu>\n\n<fd-breadcrumb-item *ngIf=\"collapsedBreadcrumbItems.length\" [fdMenuTrigger]=\"menu\">\n <a fd-breadcrumb-link tabindex=\"0\" class=\"fd-breadcrumb__collapsed\" (keydown)=\"keyDownHandle($event)\">\n ...\n <i role=\"presentation\" class=\"fd-breadcrumb__dropdown-icon sap-icon sap-icon--slim-arrow-down\"></i>\n </a>\n</fd-breadcrumb-item>\n\n<ng-content></ng-content>\n", styles: ["/*!\n * Fundamental Library Styles v0.24.0-rc.128\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{font-size:var(--sapFontSize);line-height:var(--sapContent_LineHeight);color:var(--sapTextColor);font-family:var(--sapFontFamily);font-weight:400;box-sizing:border-box;padding:0;margin:0;border:0;display:flex;flex-wrap:wrap;align-items:center;list-style:none}.fd-breadcrumb:before,.fd-breadcrumb:after{box-sizing:inherit;font-size:inherit}.fd-breadcrumb__item{font-size:var(--sapFontSize);line-height:var(--sapContent_LineHeight);color:var(--sapTextColor);font-family:var(--sapFontFamily);font-weight:400;box-sizing:border-box;padding:0;margin:0;border:0;color:var(--sapContent_LabelColor)}.fd-breadcrumb__item:before,.fd-breadcrumb__item:after{box-sizing:inherit;font-size:inherit}.fd-breadcrumb__item:after{content:\"/\";color:var(--sapContent_LabelColor);margin-right:.25rem;margin-left:.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__link{font-size:var(--sapFontSize);line-height:var(--sapContent_LineHeight);color:var(--sapTextColor);font-family:var(--sapFontFamily);font-weight:400;box-sizing:border-box;padding:0;margin:0;border:0;color:var(--sapLinkColor);text-shadow:var(--sapContent_TextShadow);display:var(--fdLink_Display, inline-block);align-items:center;line-height:inherit;-webkit-text-decoration:none;-webkit-text-decoration:var(--fdLink_Text_Decoration, none);text-decoration:none;text-decoration:var(--fdLink_Text_Decoration, none);display:inline-block;transition:all .125s ease-in}.fd-breadcrumb__link:before,.fd-breadcrumb__link:after{box-sizing:inherit;font-size:inherit}.fd-breadcrumb__link__content{-webkit-text-decoration:none;-webkit-text-decoration:var(--fdLink_Text_Content_Decoration, none);text-decoration:none;text-decoration:var(--fdLink_Text_Content_Decoration, none)}.fd-breadcrumb__link:hover,.fd-breadcrumb__link.is-hover{--fdLink_Text_Decoration: var(--fdLink_Text_Decoration_Hover, none);--fdLink_Text_Content_Decoration: var(--fdLink_Text_Content_Decoration_Hover, none)}.fd-breadcrumb__link:focus,.fd-breadcrumb__link.is-focus{z-index:5;--fdLink_Text_Decoration: var(--fdLink_Text_Decoration_Focus, none);--fdLink_Text_Content_Decoration: var(--fdLink_Text_Content_Decoration_Focus, none)}.fd-breadcrumb__link:active,.fd-breadcrumb__link.is-active{--fdLink_Text_Decoration: var(--fdLink_Text_Decoration_Active, none);--fdLink_Text_Content_Decoration: var(--fdLink_Text_Content_Decoration_Active, none)}.fd-breadcrumb__link[aria-disabled=true],.fd-breadcrumb__link.is-disabled,.fd-breadcrumb__link:disabled{--fdLink_Text_Decoration: var(--fdLink_Text_Decoration_Disabled, none);--fdLink_Text_Content_Decoration: var(--fdLink_Text_Content_Decoration_Disabled, none)}.fd-breadcrumb__link--subtle{--fdLink_Text_Content_Decoration: var(--fdLink_Text_Content_Decoration_Subtle, none);--fdLink_Text_Content_Decoration_Hover: var(--fdLink_Text_Content_Decoration_Subtle_Hover, none);--fdLink_Text_Content_Decoration_Active: var(--fdLink_Text_Content_Decoration_Subtle_Active, none);--fdLink_Text_Decoration: var(--fdLink_Text_Decoration_Subtle, none);--fdLink_Text_Decoration_Hover: var(--fdLink_Text_Decoration_Subtle_Hover, none);--fdLink_Text_Decoration_Active: var(--fdLink_Text_Decoration_Subtle_Active, none)}.fd-breadcrumb__link--undecorated{--fdLink_Text_Decoration: none;--fdLink_Text_Decoration_Subtle: none;--fdLink_Text_Decoration_Subtle_Hover: none;--fdLink_Text_Decoration_Subtle_Active: none;--fdLink_Text_Decoration_Hover: none;--fdLink_Text_Decoration_Focus: none;--fdLink_Text_Decoration_Active: none;--fdLink_Text_Decoration_Visited: none;--fdLink_Text_Decoration_Disabled: none;--fdLink_Text_Content_Decoration: none;--fdLink_Text_Content_Decoration_Subtle: none;--fdLink_Text_Content_Decoration_Subtle_Hover: none;--fdLink_Text_Content_Decoration_Subtle_Active: none;--fdLink_Text_Content_Decoration_Hover: none;--fdLink_Text_Content_Decoration_Focus: none;--fdLink_Text_Content_Decoration_Active: none;--fdLink_Text_Content_Decoration_Visited: none;--fdLink_Text_Content_Decoration_Disabled: none}.fd-breadcrumb__link--emphasized{font-weight:700}.fd-breadcrumb__link:visited{color:var(--sapLink_Visited_Color)}.fd-breadcrumb__link:hover,.fd-breadcrumb__link.is-hover{color:var(--sapLink_Hover_Color)}.fd-breadcrumb__link:focus,.fd-breadcrumb__link.is-focus{z-index:5;box-shadow:none;color:var(--fdLink_Text_Focus_Color);background-color:var(--fdLink_Focus_Background);border-radius:var(--fdLink_Focus_Border_Radius);text-shadow:var(--fdLink_Focus_Text_Shadow);outline-offset:var(--fdLink_Hover_Outline_Offset);outline-width:var(--fdLink_Hover_Outline_Width);outline-color:var(--fdLink_Hover_Outline_Color);outline-style:var(--fdLink_Hover_Outline_Style)}.fd-breadcrumb__link:active,.fd-breadcrumb__link.is-active{color:var(--sapLink_Active_Color)}.fd-breadcrumb__link:active:focus,.fd-breadcrumb__link:active.is-focus,.fd-breadcrumb__link.is-active:focus,.fd-breadcrumb__link.is-active.is-focus{z-index:5;background-color:transparent}.fd-breadcrumb__link--inverted{color:var(--sapLink_InvertedColor);text-shadow:none}.fd-breadcrumb__link--inverted:hover,.fd-breadcrumb__link--inverted.is-hover{color:var(--sapLink_InvertedColor)}.fd-breadcrumb__link--inverted:focus,.fd-breadcrumb__link--inverted.is-focus{z-index:5;outline-color:var(--sapContent_ContrastFocusColor)}.fd-breadcrumb__link--subtle{color:var(--sapLink_SubtleColor)}.fd-breadcrumb__link[aria-disabled=true],.fd-breadcrumb__link.is-disabled,.fd-breadcrumb__link:disabled{opacity:var(--sapContent_DisabledOpacity);color:var(--sapLinkColor);pointer-events:none}.fd-breadcrumb__link>img{vertical-align:bottom}.fd-breadcrumb__link:focus .fd-breadcrumb__dropdown-icon{color:var(--sapLink_Active_Color)}.fd-breadcrumb__link:active .fd-breadcrumb__dropdown-icon,.fd-breadcrumb__link:active:hover .fd-breadcrumb__dropdown-icon{color:var(--sapLink_Active_Color)}.fd-breadcrumb__link:hover .fd-breadcrumb__dropdown-icon{color:var(--sapLink_Hover_Color)}.fd-breadcrumb__dropdown-icon [class*=sap-icon],.fd-breadcrumb__dropdown-icon[class*=sap-icon]{color:inherit;background:inherit;font-size:inherit;border-radius:inherit;line-height:1;text-decoration:inherit;color:var(--sapLinkColor)}.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", "compact", "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"] }], directives: [{ type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i4.RouterLinkWithHref, selector: "a[routerLink],area[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "preserveFragment", "skipLocationChange", "replaceUrl", "state", "relativeTo", "routerLink"] }, { type: i2.MenuInteractiveDirective, selector: "[fd-menu-interactive]" }, { type: i2.MenuTitleDirective, selector: "[fd-menu-title]" }, { type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i5.BreadcrumbItemDirective, selector: "fd-breadcrumb-item" }, { type: i2.MenuTriggerDirective, selector: "[fdMenuTrigger]", inputs: ["fdMenuTrigger"] }, { type: i6.BreadcrumbLinkDirective, selector: "[fd-breadcrumb-link]", inputs: ["routerLink"] }], pipes: { "async": i3.AsyncPipe }, changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
105
+ 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: i1.ContentDensityService, optional: true }, { token: i0.ChangeDetectorRef }, { token: i1.ResizeObserverService }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
106
+ BreadcrumbComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.4", type: BreadcrumbComponent, selector: "fd-breadcrumb", inputs: { compact: "compact", 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 [compact]=\"compact\" [closeOnEscapeKey]=\"true\" [focusAutoCapture]=\"true\" [placement]=\"placement$ | async\">\n <fd-breadcrumb-hidden-item\n *ngFor=\"let collapsedBreadcrumbItem of collapsedBreadcrumbItems\"\n [breadcrumbItem]=\"collapsedBreadcrumbItem\"\n >\n </fd-breadcrumb-hidden-item>\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.0-rc.128\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{font-size:var(--sapFontSize);line-height:var(--sapContent_LineHeight);color:var(--sapTextColor);font-family:var(--sapFontFamily);font-weight:400;box-sizing:border-box;padding:0;margin:0;border:0;display:flex;flex-wrap:wrap;align-items:center;list-style:none}.fd-breadcrumb:before,.fd-breadcrumb:after{box-sizing:inherit;font-size:inherit}.fd-breadcrumb__item{font-size:var(--sapFontSize);line-height:var(--sapContent_LineHeight);color:var(--sapTextColor);font-family:var(--sapFontFamily);font-weight:400;box-sizing:border-box;padding:0;margin:0;border:0;color:var(--sapContent_LabelColor)}.fd-breadcrumb__item:before,.fd-breadcrumb__item:after{box-sizing:inherit;font-size:inherit}.fd-breadcrumb__item:after{content:\"/\";color:var(--sapContent_LabelColor);margin-right:.25rem;margin-left:.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__link{font-size:var(--sapFontSize);line-height:var(--sapContent_LineHeight);color:var(--sapTextColor);font-family:var(--sapFontFamily);font-weight:400;box-sizing:border-box;padding:0;margin:0;border:0;color:var(--sapLinkColor);text-shadow:var(--sapContent_TextShadow);display:var(--fdLink_Display, inline-block);align-items:center;line-height:inherit;-webkit-text-decoration:none;-webkit-text-decoration:var(--fdLink_Text_Decoration, none);text-decoration:none;text-decoration:var(--fdLink_Text_Decoration, none);display:inline-block;transition:all .125s ease-in}.fd-breadcrumb__link:before,.fd-breadcrumb__link:after{box-sizing:inherit;font-size:inherit}.fd-breadcrumb__link__content{-webkit-text-decoration:none;-webkit-text-decoration:var(--fdLink_Text_Content_Decoration, none);text-decoration:none;text-decoration:var(--fdLink_Text_Content_Decoration, none)}.fd-breadcrumb__link:hover,.fd-breadcrumb__link.is-hover{--fdLink_Text_Decoration: var(--fdLink_Text_Decoration_Hover, none);--fdLink_Text_Content_Decoration: var(--fdLink_Text_Content_Decoration_Hover, none)}.fd-breadcrumb__link:focus,.fd-breadcrumb__link.is-focus{z-index:5;--fdLink_Text_Decoration: var(--fdLink_Text_Decoration_Focus, none);--fdLink_Text_Content_Decoration: var(--fdLink_Text_Content_Decoration_Focus, none)}.fd-breadcrumb__link:active,.fd-breadcrumb__link.is-active{--fdLink_Text_Decoration: var(--fdLink_Text_Decoration_Active, none);--fdLink_Text_Content_Decoration: var(--fdLink_Text_Content_Decoration_Active, none)}.fd-breadcrumb__link[aria-disabled=true],.fd-breadcrumb__link.is-disabled,.fd-breadcrumb__link:disabled{--fdLink_Text_Decoration: var(--fdLink_Text_Decoration_Disabled, none);--fdLink_Text_Content_Decoration: var(--fdLink_Text_Content_Decoration_Disabled, none)}.fd-breadcrumb__link--subtle{--fdLink_Text_Content_Decoration: var(--fdLink_Text_Content_Decoration_Subtle, none);--fdLink_Text_Content_Decoration_Hover: var(--fdLink_Text_Content_Decoration_Subtle_Hover, none);--fdLink_Text_Content_Decoration_Active: var(--fdLink_Text_Content_Decoration_Subtle_Active, none);--fdLink_Text_Decoration: var(--fdLink_Text_Decoration_Subtle, none);--fdLink_Text_Decoration_Hover: var(--fdLink_Text_Decoration_Subtle_Hover, none);--fdLink_Text_Decoration_Active: var(--fdLink_Text_Decoration_Subtle_Active, none)}.fd-breadcrumb__link--undecorated{--fdLink_Text_Decoration: none;--fdLink_Text_Decoration_Subtle: none;--fdLink_Text_Decoration_Subtle_Hover: none;--fdLink_Text_Decoration_Subtle_Active: none;--fdLink_Text_Decoration_Hover: none;--fdLink_Text_Decoration_Focus: none;--fdLink_Text_Decoration_Active: none;--fdLink_Text_Decoration_Visited: none;--fdLink_Text_Decoration_Disabled: none;--fdLink_Text_Content_Decoration: none;--fdLink_Text_Content_Decoration_Subtle: none;--fdLink_Text_Content_Decoration_Subtle_Hover: none;--fdLink_Text_Content_Decoration_Subtle_Active: none;--fdLink_Text_Content_Decoration_Hover: none;--fdLink_Text_Content_Decoration_Focus: none;--fdLink_Text_Content_Decoration_Active: none;--fdLink_Text_Content_Decoration_Visited: none;--fdLink_Text_Content_Decoration_Disabled: none}.fd-breadcrumb__link--emphasized{font-weight:700}.fd-breadcrumb__link:visited{color:var(--sapLink_Visited_Color)}.fd-breadcrumb__link:hover,.fd-breadcrumb__link.is-hover{color:var(--sapLink_Hover_Color)}.fd-breadcrumb__link:focus,.fd-breadcrumb__link.is-focus{z-index:5;box-shadow:none;color:var(--fdLink_Text_Focus_Color);background-color:var(--fdLink_Focus_Background);border-radius:var(--fdLink_Focus_Border_Radius);text-shadow:var(--fdLink_Focus_Text_Shadow);outline-offset:var(--fdLink_Hover_Outline_Offset);outline-width:var(--fdLink_Hover_Outline_Width);outline-color:var(--fdLink_Hover_Outline_Color);outline-style:var(--fdLink_Hover_Outline_Style)}.fd-breadcrumb__link:active,.fd-breadcrumb__link.is-active{color:var(--sapLink_Active_Color)}.fd-breadcrumb__link:active:focus,.fd-breadcrumb__link:active.is-focus,.fd-breadcrumb__link.is-active:focus,.fd-breadcrumb__link.is-active.is-focus{z-index:5;background-color:transparent}.fd-breadcrumb__link--inverted{color:var(--sapLink_InvertedColor);text-shadow:none}.fd-breadcrumb__link--inverted:hover,.fd-breadcrumb__link--inverted.is-hover{color:var(--sapLink_InvertedColor)}.fd-breadcrumb__link--inverted:focus,.fd-breadcrumb__link--inverted.is-focus{z-index:5;outline-color:var(--sapContent_ContrastFocusColor)}.fd-breadcrumb__link--subtle{color:var(--sapLink_SubtleColor)}.fd-breadcrumb__link[aria-disabled=true],.fd-breadcrumb__link.is-disabled,.fd-breadcrumb__link:disabled{opacity:var(--sapContent_DisabledOpacity);color:var(--sapLinkColor);pointer-events:none}.fd-breadcrumb__link>img{vertical-align:bottom}.fd-breadcrumb__link:focus .fd-breadcrumb__dropdown-icon{color:var(--sapLink_Active_Color)}.fd-breadcrumb__link:active .fd-breadcrumb__dropdown-icon,.fd-breadcrumb__link:active:hover .fd-breadcrumb__dropdown-icon{color:var(--sapLink_Active_Color)}.fd-breadcrumb__link:hover .fd-breadcrumb__dropdown-icon{color:var(--sapLink_Hover_Color)}.fd-breadcrumb__dropdown-icon [class*=sap-icon],.fd-breadcrumb__dropdown-icon[class*=sap-icon]{color:inherit;background:inherit;font-size:inherit;border-radius:inherit;line-height:1;text-decoration:inherit;color:var(--sapLinkColor)}.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", "compact", "focusTrapped", "openOnHoverTime", "mobileConfig", "ariaLabel", "ariaLabelledby", "id"], outputs: ["activePath"] }, { type: i3.BreadcrumbHiddenItemComponent, selector: "fd-breadcrumb-hidden-item", inputs: ["breadcrumbItem"] }, { type: i4.LinkComponent, selector: "[fdLink], [fd-link], [fd-breadcrumb-link]", inputs: ["class", "emphasized", "disabled", "inverted", "subtle", "undecorated"] }, { type: i5.IconComponent, selector: "fd-icon", inputs: ["glyph", "font", "class", "ariaLabel"] }], directives: [{ type: i6.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i6.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i2.MenuTriggerDirective, selector: "[fdMenuTrigger]", inputs: ["fdMenuTrigger"] }], pipes: { "async": i6.AsyncPipe }, changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
191
107
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.4", ngImport: i0, type: BreadcrumbComponent, decorators: [{
192
108
  type: Component,
193
109
  args: [{ selector: 'fd-breadcrumb', host: {
194
110
  class: 'fd-breadcrumb'
195
- }, encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, template: "<fd-menu #menu [compact]=\"compact\" [closeOnEscapeKey]=\"true\" [focusAutoCapture]=\"true\" [placement]=\"placement$ | async\">\n <li fd-menu-item *ngFor=\"let collapsedBreadcrumbItem of collapsedBreadcrumbItems\">\n <a\n fd-menu-interactive\n [attr.href]=\"collapsedBreadcrumbItem.href\"\n [routerLink]=\"collapsedBreadcrumbItem.routerLink\"\n >\n <span fd-menu-title>{{ collapsedBreadcrumbItem.elementRef.nativeElement.innerText }}</span>\n </a>\n </li>\n</fd-menu>\n\n<fd-breadcrumb-item *ngIf=\"collapsedBreadcrumbItems.length\" [fdMenuTrigger]=\"menu\">\n <a fd-breadcrumb-link tabindex=\"0\" class=\"fd-breadcrumb__collapsed\" (keydown)=\"keyDownHandle($event)\">\n ...\n <i role=\"presentation\" class=\"fd-breadcrumb__dropdown-icon sap-icon sap-icon--slim-arrow-down\"></i>\n </a>\n</fd-breadcrumb-item>\n\n<ng-content></ng-content>\n", styles: ["/*!\n * Fundamental Library Styles v0.24.0-rc.128\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{font-size:var(--sapFontSize);line-height:var(--sapContent_LineHeight);color:var(--sapTextColor);font-family:var(--sapFontFamily);font-weight:400;box-sizing:border-box;padding:0;margin:0;border:0;display:flex;flex-wrap:wrap;align-items:center;list-style:none}.fd-breadcrumb:before,.fd-breadcrumb:after{box-sizing:inherit;font-size:inherit}.fd-breadcrumb__item{font-size:var(--sapFontSize);line-height:var(--sapContent_LineHeight);color:var(--sapTextColor);font-family:var(--sapFontFamily);font-weight:400;box-sizing:border-box;padding:0;margin:0;border:0;color:var(--sapContent_LabelColor)}.fd-breadcrumb__item:before,.fd-breadcrumb__item:after{box-sizing:inherit;font-size:inherit}.fd-breadcrumb__item:after{content:\"/\";color:var(--sapContent_LabelColor);margin-right:.25rem;margin-left:.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__link{font-size:var(--sapFontSize);line-height:var(--sapContent_LineHeight);color:var(--sapTextColor);font-family:var(--sapFontFamily);font-weight:400;box-sizing:border-box;padding:0;margin:0;border:0;color:var(--sapLinkColor);text-shadow:var(--sapContent_TextShadow);display:var(--fdLink_Display, inline-block);align-items:center;line-height:inherit;-webkit-text-decoration:none;-webkit-text-decoration:var(--fdLink_Text_Decoration, none);text-decoration:none;text-decoration:var(--fdLink_Text_Decoration, none);display:inline-block;transition:all .125s ease-in}.fd-breadcrumb__link:before,.fd-breadcrumb__link:after{box-sizing:inherit;font-size:inherit}.fd-breadcrumb__link__content{-webkit-text-decoration:none;-webkit-text-decoration:var(--fdLink_Text_Content_Decoration, none);text-decoration:none;text-decoration:var(--fdLink_Text_Content_Decoration, none)}.fd-breadcrumb__link:hover,.fd-breadcrumb__link.is-hover{--fdLink_Text_Decoration: var(--fdLink_Text_Decoration_Hover, none);--fdLink_Text_Content_Decoration: var(--fdLink_Text_Content_Decoration_Hover, none)}.fd-breadcrumb__link:focus,.fd-breadcrumb__link.is-focus{z-index:5;--fdLink_Text_Decoration: var(--fdLink_Text_Decoration_Focus, none);--fdLink_Text_Content_Decoration: var(--fdLink_Text_Content_Decoration_Focus, none)}.fd-breadcrumb__link:active,.fd-breadcrumb__link.is-active{--fdLink_Text_Decoration: var(--fdLink_Text_Decoration_Active, none);--fdLink_Text_Content_Decoration: var(--fdLink_Text_Content_Decoration_Active, none)}.fd-breadcrumb__link[aria-disabled=true],.fd-breadcrumb__link.is-disabled,.fd-breadcrumb__link:disabled{--fdLink_Text_Decoration: var(--fdLink_Text_Decoration_Disabled, none);--fdLink_Text_Content_Decoration: var(--fdLink_Text_Content_Decoration_Disabled, none)}.fd-breadcrumb__link--subtle{--fdLink_Text_Content_Decoration: var(--fdLink_Text_Content_Decoration_Subtle, none);--fdLink_Text_Content_Decoration_Hover: var(--fdLink_Text_Content_Decoration_Subtle_Hover, none);--fdLink_Text_Content_Decoration_Active: var(--fdLink_Text_Content_Decoration_Subtle_Active, none);--fdLink_Text_Decoration: var(--fdLink_Text_Decoration_Subtle, none);--fdLink_Text_Decoration_Hover: var(--fdLink_Text_Decoration_Subtle_Hover, none);--fdLink_Text_Decoration_Active: var(--fdLink_Text_Decoration_Subtle_Active, none)}.fd-breadcrumb__link--undecorated{--fdLink_Text_Decoration: none;--fdLink_Text_Decoration_Subtle: none;--fdLink_Text_Decoration_Subtle_Hover: none;--fdLink_Text_Decoration_Subtle_Active: none;--fdLink_Text_Decoration_Hover: none;--fdLink_Text_Decoration_Focus: none;--fdLink_Text_Decoration_Active: none;--fdLink_Text_Decoration_Visited: none;--fdLink_Text_Decoration_Disabled: none;--fdLink_Text_Content_Decoration: none;--fdLink_Text_Content_Decoration_Subtle: none;--fdLink_Text_Content_Decoration_Subtle_Hover: none;--fdLink_Text_Content_Decoration_Subtle_Active: none;--fdLink_Text_Content_Decoration_Hover: none;--fdLink_Text_Content_Decoration_Focus: none;--fdLink_Text_Content_Decoration_Active: none;--fdLink_Text_Content_Decoration_Visited: none;--fdLink_Text_Content_Decoration_Disabled: none}.fd-breadcrumb__link--emphasized{font-weight:700}.fd-breadcrumb__link:visited{color:var(--sapLink_Visited_Color)}.fd-breadcrumb__link:hover,.fd-breadcrumb__link.is-hover{color:var(--sapLink_Hover_Color)}.fd-breadcrumb__link:focus,.fd-breadcrumb__link.is-focus{z-index:5;box-shadow:none;color:var(--fdLink_Text_Focus_Color);background-color:var(--fdLink_Focus_Background);border-radius:var(--fdLink_Focus_Border_Radius);text-shadow:var(--fdLink_Focus_Text_Shadow);outline-offset:var(--fdLink_Hover_Outline_Offset);outline-width:var(--fdLink_Hover_Outline_Width);outline-color:var(--fdLink_Hover_Outline_Color);outline-style:var(--fdLink_Hover_Outline_Style)}.fd-breadcrumb__link:active,.fd-breadcrumb__link.is-active{color:var(--sapLink_Active_Color)}.fd-breadcrumb__link:active:focus,.fd-breadcrumb__link:active.is-focus,.fd-breadcrumb__link.is-active:focus,.fd-breadcrumb__link.is-active.is-focus{z-index:5;background-color:transparent}.fd-breadcrumb__link--inverted{color:var(--sapLink_InvertedColor);text-shadow:none}.fd-breadcrumb__link--inverted:hover,.fd-breadcrumb__link--inverted.is-hover{color:var(--sapLink_InvertedColor)}.fd-breadcrumb__link--inverted:focus,.fd-breadcrumb__link--inverted.is-focus{z-index:5;outline-color:var(--sapContent_ContrastFocusColor)}.fd-breadcrumb__link--subtle{color:var(--sapLink_SubtleColor)}.fd-breadcrumb__link[aria-disabled=true],.fd-breadcrumb__link.is-disabled,.fd-breadcrumb__link:disabled{opacity:var(--sapContent_DisabledOpacity);color:var(--sapLinkColor);pointer-events:none}.fd-breadcrumb__link>img{vertical-align:bottom}.fd-breadcrumb__link:focus .fd-breadcrumb__dropdown-icon{color:var(--sapLink_Active_Color)}.fd-breadcrumb__link:active .fd-breadcrumb__dropdown-icon,.fd-breadcrumb__link:active:hover .fd-breadcrumb__dropdown-icon{color:var(--sapLink_Active_Color)}.fd-breadcrumb__link:hover .fd-breadcrumb__dropdown-icon{color:var(--sapLink_Hover_Color)}.fd-breadcrumb__dropdown-icon [class*=sap-icon],.fd-breadcrumb__dropdown-icon[class*=sap-icon]{color:inherit;background:inherit;font-size:inherit;border-radius:inherit;line-height:1;text-decoration:inherit;color:var(--sapLinkColor)}.fd-breadcrumb{display:inline-block;white-space:nowrap}.fd-breadcrumb .fd-breadcrumb__collapsed{cursor:pointer}\n"] }]
111
+ }, encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, template: "<fd-menu #menu [compact]=\"compact\" [closeOnEscapeKey]=\"true\" [focusAutoCapture]=\"true\" [placement]=\"placement$ | async\">\n <fd-breadcrumb-hidden-item\n *ngFor=\"let collapsedBreadcrumbItem of collapsedBreadcrumbItems\"\n [breadcrumbItem]=\"collapsedBreadcrumbItem\"\n >\n </fd-breadcrumb-hidden-item>\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.0-rc.128\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{font-size:var(--sapFontSize);line-height:var(--sapContent_LineHeight);color:var(--sapTextColor);font-family:var(--sapFontFamily);font-weight:400;box-sizing:border-box;padding:0;margin:0;border:0;display:flex;flex-wrap:wrap;align-items:center;list-style:none}.fd-breadcrumb:before,.fd-breadcrumb:after{box-sizing:inherit;font-size:inherit}.fd-breadcrumb__item{font-size:var(--sapFontSize);line-height:var(--sapContent_LineHeight);color:var(--sapTextColor);font-family:var(--sapFontFamily);font-weight:400;box-sizing:border-box;padding:0;margin:0;border:0;color:var(--sapContent_LabelColor)}.fd-breadcrumb__item:before,.fd-breadcrumb__item:after{box-sizing:inherit;font-size:inherit}.fd-breadcrumb__item:after{content:\"/\";color:var(--sapContent_LabelColor);margin-right:.25rem;margin-left:.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__link{font-size:var(--sapFontSize);line-height:var(--sapContent_LineHeight);color:var(--sapTextColor);font-family:var(--sapFontFamily);font-weight:400;box-sizing:border-box;padding:0;margin:0;border:0;color:var(--sapLinkColor);text-shadow:var(--sapContent_TextShadow);display:var(--fdLink_Display, inline-block);align-items:center;line-height:inherit;-webkit-text-decoration:none;-webkit-text-decoration:var(--fdLink_Text_Decoration, none);text-decoration:none;text-decoration:var(--fdLink_Text_Decoration, none);display:inline-block;transition:all .125s ease-in}.fd-breadcrumb__link:before,.fd-breadcrumb__link:after{box-sizing:inherit;font-size:inherit}.fd-breadcrumb__link__content{-webkit-text-decoration:none;-webkit-text-decoration:var(--fdLink_Text_Content_Decoration, none);text-decoration:none;text-decoration:var(--fdLink_Text_Content_Decoration, none)}.fd-breadcrumb__link:hover,.fd-breadcrumb__link.is-hover{--fdLink_Text_Decoration: var(--fdLink_Text_Decoration_Hover, none);--fdLink_Text_Content_Decoration: var(--fdLink_Text_Content_Decoration_Hover, none)}.fd-breadcrumb__link:focus,.fd-breadcrumb__link.is-focus{z-index:5;--fdLink_Text_Decoration: var(--fdLink_Text_Decoration_Focus, none);--fdLink_Text_Content_Decoration: var(--fdLink_Text_Content_Decoration_Focus, none)}.fd-breadcrumb__link:active,.fd-breadcrumb__link.is-active{--fdLink_Text_Decoration: var(--fdLink_Text_Decoration_Active, none);--fdLink_Text_Content_Decoration: var(--fdLink_Text_Content_Decoration_Active, none)}.fd-breadcrumb__link[aria-disabled=true],.fd-breadcrumb__link.is-disabled,.fd-breadcrumb__link:disabled{--fdLink_Text_Decoration: var(--fdLink_Text_Decoration_Disabled, none);--fdLink_Text_Content_Decoration: var(--fdLink_Text_Content_Decoration_Disabled, none)}.fd-breadcrumb__link--subtle{--fdLink_Text_Content_Decoration: var(--fdLink_Text_Content_Decoration_Subtle, none);--fdLink_Text_Content_Decoration_Hover: var(--fdLink_Text_Content_Decoration_Subtle_Hover, none);--fdLink_Text_Content_Decoration_Active: var(--fdLink_Text_Content_Decoration_Subtle_Active, none);--fdLink_Text_Decoration: var(--fdLink_Text_Decoration_Subtle, none);--fdLink_Text_Decoration_Hover: var(--fdLink_Text_Decoration_Subtle_Hover, none);--fdLink_Text_Decoration_Active: var(--fdLink_Text_Decoration_Subtle_Active, none)}.fd-breadcrumb__link--undecorated{--fdLink_Text_Decoration: none;--fdLink_Text_Decoration_Subtle: none;--fdLink_Text_Decoration_Subtle_Hover: none;--fdLink_Text_Decoration_Subtle_Active: none;--fdLink_Text_Decoration_Hover: none;--fdLink_Text_Decoration_Focus: none;--fdLink_Text_Decoration_Active: none;--fdLink_Text_Decoration_Visited: none;--fdLink_Text_Decoration_Disabled: none;--fdLink_Text_Content_Decoration: none;--fdLink_Text_Content_Decoration_Subtle: none;--fdLink_Text_Content_Decoration_Subtle_Hover: none;--fdLink_Text_Content_Decoration_Subtle_Active: none;--fdLink_Text_Content_Decoration_Hover: none;--fdLink_Text_Content_Decoration_Focus: none;--fdLink_Text_Content_Decoration_Active: none;--fdLink_Text_Content_Decoration_Visited: none;--fdLink_Text_Content_Decoration_Disabled: none}.fd-breadcrumb__link--emphasized{font-weight:700}.fd-breadcrumb__link:visited{color:var(--sapLink_Visited_Color)}.fd-breadcrumb__link:hover,.fd-breadcrumb__link.is-hover{color:var(--sapLink_Hover_Color)}.fd-breadcrumb__link:focus,.fd-breadcrumb__link.is-focus{z-index:5;box-shadow:none;color:var(--fdLink_Text_Focus_Color);background-color:var(--fdLink_Focus_Background);border-radius:var(--fdLink_Focus_Border_Radius);text-shadow:var(--fdLink_Focus_Text_Shadow);outline-offset:var(--fdLink_Hover_Outline_Offset);outline-width:var(--fdLink_Hover_Outline_Width);outline-color:var(--fdLink_Hover_Outline_Color);outline-style:var(--fdLink_Hover_Outline_Style)}.fd-breadcrumb__link:active,.fd-breadcrumb__link.is-active{color:var(--sapLink_Active_Color)}.fd-breadcrumb__link:active:focus,.fd-breadcrumb__link:active.is-focus,.fd-breadcrumb__link.is-active:focus,.fd-breadcrumb__link.is-active.is-focus{z-index:5;background-color:transparent}.fd-breadcrumb__link--inverted{color:var(--sapLink_InvertedColor);text-shadow:none}.fd-breadcrumb__link--inverted:hover,.fd-breadcrumb__link--inverted.is-hover{color:var(--sapLink_InvertedColor)}.fd-breadcrumb__link--inverted:focus,.fd-breadcrumb__link--inverted.is-focus{z-index:5;outline-color:var(--sapContent_ContrastFocusColor)}.fd-breadcrumb__link--subtle{color:var(--sapLink_SubtleColor)}.fd-breadcrumb__link[aria-disabled=true],.fd-breadcrumb__link.is-disabled,.fd-breadcrumb__link:disabled{opacity:var(--sapContent_DisabledOpacity);color:var(--sapLinkColor);pointer-events:none}.fd-breadcrumb__link>img{vertical-align:bottom}.fd-breadcrumb__link:focus .fd-breadcrumb__dropdown-icon{color:var(--sapLink_Active_Color)}.fd-breadcrumb__link:active .fd-breadcrumb__dropdown-icon,.fd-breadcrumb__link:active:hover .fd-breadcrumb__dropdown-icon{color:var(--sapLink_Active_Color)}.fd-breadcrumb__link:hover .fd-breadcrumb__dropdown-icon{color:var(--sapLink_Hover_Color)}.fd-breadcrumb__dropdown-icon [class*=sap-icon],.fd-breadcrumb__dropdown-icon[class*=sap-icon]{color:inherit;background:inherit;font-size:inherit;border-radius:inherit;line-height:1;text-decoration:inherit;color:var(--sapLinkColor)}.fd-breadcrumb{display:inline-block;white-space:nowrap}.fd-breadcrumb .fd-breadcrumb__collapsed{cursor:pointer}\n"] }]
196
112
  }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i1.RtlService, decorators: [{
197
113
  type: Optional
198
114
  }] }, { type: i1.ContentDensityService, decorators: [{
199
115
  type: Optional
200
- }] }, { type: i0.ChangeDetectorRef }]; }, propDecorators: { compact: [{
116
+ }] }, { type: i0.ChangeDetectorRef }, { type: i1.ResizeObserverService }, { type: i0.NgZone }]; }, propDecorators: { compact: [{
201
117
  type: Input
202
118
  }], breadcrumbItems: [{
203
119
  type: ContentChildren,
204
- args: [forwardRef(() => BreadcrumbItemDirective)]
120
+ args: [forwardRef(() => BreadcrumbItemComponent)]
205
121
  }], menuComponent: [{
206
122
  type: ViewChild,
207
123
  args: [MenuComponent]
@@ -209,8 +125,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.4", ngImpor
209
125
  type: Input
210
126
  }], reverse: [{
211
127
  type: Input
212
- }], onResize: [{
213
- type: HostListener,
214
- args: ['window:resize', []]
215
128
  }] } });
216
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnJlYWRjcnVtYi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWJzL2NvcmUvc3JjL2xpYi9icmVhZGNydW1iL2JyZWFkY3J1bWIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vbGlicy9jb3JlL3NyYy9saWIvYnJlYWRjcnVtYi9icmVhZGNydW1iLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFFSCx1QkFBdUIsRUFDdkIsaUJBQWlCLEVBQ2pCLFNBQVMsRUFDVCxlQUFlLEVBQ2YsVUFBVSxFQUNWLFVBQVUsRUFDVixZQUFZLEVBQ1osS0FBSyxFQUdMLFFBQVEsRUFDUixTQUFTLEVBQ1QsU0FBUyxFQUNULGlCQUFpQixFQUNwQixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUN0RSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDekQsT0FBTyxFQUFFLGVBQWUsRUFBRSxZQUFZLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDckQsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQ3RELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBRXJELE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLDZCQUE2QixDQUFDOzs7Ozs7OztBQUVwRTs7Ozs7Ozs7OztHQVVHO0FBYUgsTUFBTSxPQUFPLG1CQUFtQjtJQXVDNUIsWUFDVyxVQUFzQixFQUNULFdBQXVCLEVBQ3ZCLHNCQUE2QyxFQUN6RCxNQUF5QjtRQUgxQixlQUFVLEdBQVYsVUFBVSxDQUFZO1FBQ1QsZ0JBQVcsR0FBWCxXQUFXLENBQVk7UUFDdkIsMkJBQXNCLEdBQXRCLHNCQUFz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O2dCQUtOLGVBQWU7c0JBRGQsZUFBZTt1QkFBQyxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsdUJBQXVCLENBQUM7Z0JBSzFELGFBQWE7c0JBRFosU0FBUzt1QkFBQyxhQUFhO2dCQWlCeEIsZ0JBQWdCO3NCQURmLEtBQUs7Z0JBS04sT0FBTztzQkFETixLQUFLO2dCQTZDTixRQUFRO3NCQURQLFlBQVk7dUJBQUMsZUFBZSxFQUFFLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgIEFmdGVyQ29udGVudEluaXQsXG4gICAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gICAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgQ29tcG9uZW50LFxuICAgIENvbnRlbnRDaGlsZHJlbixcbiAgICBFbGVtZW50UmVmLFxuICAgIGZvcndhcmRSZWYsXG4gICAgSG9zdExpc3RlbmVyLFxuICAgIElucHV0LFxuICAgIE9uRGVzdHJveSxcbiAgICBPbkluaXQsXG4gICAgT3B0aW9uYWwsXG4gICAgUXVlcnlMaXN0LFxuICAgIFZpZXdDaGlsZCxcbiAgICBWaWV3RW5jYXBzdWxhdGlvblxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEJyZWFkY3J1bWJJdGVtRGlyZWN0aXZlIH0gZnJvbSAnLi9icmVhZGNydW1iLWl0ZW0uZGlyZWN0aXZlJztcbmltcG9ydCB7IFJ0bFNlcnZpY2UgfSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L2NvcmUvdXRpbHMnO1xuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IEtleVV0aWwgfSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L2NvcmUvdXRpbHMnO1xuaW1wb3J0IHsgTWVudUNvbXBvbmVudCB9IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvY29yZS9tZW51JztcbmltcG9ydCB7IEVOVEVSLCBTUEFDRSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9rZXljb2Rlcyc7XG5pbXBvcnQgeyBQbGFjZW1lbnQgfSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L2NvcmUvc2hhcmVkJztcbmltcG9ydCB7IENvbnRlbnREZW5zaXR5U2VydmljZSB9IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvY29yZS91dGlscyc7XG5cbi8qKlxuICogQnJlYWRjcnVtYiBwYXJlbnQgd3JhcHBlciBkaXJlY3RpdmUuIE11c3QgaGF2ZSBicmVhZGNydW1iIGl0ZW0gY2hpbGQgZGlyZWN0aXZlcy5cbiAqXG4gKiBgYGBodG1sXG4gKiA8ZmQtYnJlYWRjcnVtYj5cbiAqICAgICA8ZmQtYnJlYWRjcnVtYi1pdGVtPlxuICogICAgICAgICA8YSBmZC1icmVhZGNydW1iLWxpbmsgW3JvdXRlckxpbmtdPVwiJyMnXCI+QnJlYWRjcnVtYiBMaW5rPC9hPlxuICogICAgIDwvZmQtYnJlYWRjcnVtYi1pdGVtPlxuICogPC9mZC1icmVhZGNydW1iPlxuICogYGBgXG4gKi9cbkBDb21wb25lbnQoe1xuICAgIC8vIFRPRE8gdG8gYmUgZGlzY3Vzc2VkXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lXG4gICAgc2VsZWN0b3I6ICdmZC1icmVhZGNydW1iJyxcbiAgICBob3N0OiB7XG4gICAgICAgIGNsYXNzOiAnZmQtYnJlYWRjcnVtYidcbiAgICB9LFxuICAgIHRlbXBsYXRlVXJsOiAnLi9icmVhZGNydW1iLmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsnLi9icmVhZGNydW1iLmNvbXBvbmVudC5zY3NzJ10sXG4gICAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaFxufSlcbmV4cG9ydCBjbGFzcyBCcmVhZGNydW1iQ29tcG9uZW50IGltcGxlbWVudHMgQWZ0ZXJDb250ZW50SW5pdCwgT25Jbml0LCBPbkRlc3Ryb3kge1xuICAgIC8qKiBXaGVuZXZlciBsaW5rcyB3cmFwcGVkIGluc2lkZSBvdmVyZmxvdyBzaG91bGQgYmUgZGlzcGxheWVkIGluIGNvbXBhY3QgbW9kZSAgKi9cbiAgICBASW5wdXQoKVxuICAgIGNvbXBhY3Q/OiBib29sZWFuO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBAQ29udGVudENoaWxkcmVuKGZvcndhcmRSZWYoKCkgPT4gQnJlYWRjcnVtYkl0ZW1EaXJlY3RpdmUpKVxuICAgIGJyZWFkY3J1bWJJdGVtczogUXVlcnlMaXN0PEJyZWFkY3J1bWJJdGVtRGlyZWN0aXZlPjtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgQFZpZXdDaGlsZChNZW51Q29tcG9uZW50KVxuICAgIG1lbnVDb21wb25lbnQ6IE1lbnVDb21wb25lbnQ7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIGNvbGxhcHNlZEJyZWFkY3J1bWJJdGVtczogQXJyYXk8QnJlYWRjcnVtYkl0ZW1EaXJlY3RpdmU+ID0gW107XG5cbiAgICAvKiogQGhpZGRlbiB1c2VkIHRvIGNvbXBhcmUgdG8gdGhlIGN1cnJlbnQgd2lkdGggdG8ga25vdyB3aGV0aGVyIHRvIGNvbGxhcHNlIG9yIGV4cGFuZCBicmVhZGNydW1icyAqL1xuICAgIHByZXZpb3VzQ29udGFpbmVyV2lkdGg6IG51bWJlcjtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcGxhY2VtZW50JCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8UGxhY2VtZW50PignYm90dG9tLXN0YXJ0Jyk7XG5cbiAgICAvKipcbiAgICAgKiBUaGUgZWxlbWVudCB0byBhY3QgYXMgdGhlIGJyZWFkY3J1bWIgY29udGFpbmVyLiBXaGVuIHByb3ZpZGVkLCB0aGUgYnJlYWRjcnVtYidzIHJlc3BvbnNpdmUgY29sbGFwc2luZyBiZWhhdmlvclxuICAgICAqIHBlcmZvcm1zIGJldHRlci4gV2hlbiBub3QgcHJvdmlkZWQsIHRoZSBpbW1lZGlhdGUgcGFyZW50IGVsZW1lbnQncyB3aWR0aCB3aWxsIGJlIHVzZWQuXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBjb250YWluZXJFbGVtZW50OiBIVE1MRWxlbWVudDtcblxuICAgIC8qKiBXaGV0aGVyIG9yIG5vdCB0byBhcHBlbmQgaXRlbXMgdG8gdGhlIG92ZXJmbG93IGRyb3Bkb3duIGluIHJldmVyc2Ugb3JkZXIuIERlZmF1bHQgaXMgdHJ1ZS4gKi9cbiAgICBASW5wdXQoKVxuICAgIHJldmVyc2UgPSBmYWxzZTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgY29udGFpbmVyQm91bmRhcnk6IG51bWJlcjtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBfc3Vic2NyaXB0aW9ucyA9IG5ldyBTdWJzY3JpcHRpb24oKTtcblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBwdWJsaWMgZWxlbWVudFJlZjogRWxlbWVudFJlZixcbiAgICAgICAgQE9wdGlvbmFsKCkgcHJpdmF0ZSBfcnRsU2VydmljZTogUnRsU2VydmljZSxcbiAgICAgICAgQE9wdGlvbmFsKCkgcHJpdmF0ZSBfY29udGVudERlbnNpdHlTZXJ2aWNlOiBDb250ZW50RGVuc2l0eVNlcnZpY2UsXG4gICAgICAgIHByaXZhdGUgX2NkUmVmOiBDaGFuZ2VEZXRlY3RvclJlZlxuICAgICkge31cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgbmdBZnRlckNvbnRlbnRJbml0KCk6IHZvaWQge1xuICAgICAgICB0aGlzLm9uUmVzaXplKCk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMuX3J0bFNlcnZpY2UpIHtcbiAgICAgICAgICAgIHRoaXMuX3N1YnNjcmlwdGlvbnMuYWRkKFxuICAgICAgICAgICAgICAgIHRoaXMuX3J0bFNlcnZpY2UucnRsLnN1YnNjcmliZSgodmFsdWUpID0+IHRoaXMucGxhY2VtZW50JC5uZXh0KHZhbHVlID8gJ2JvdHRvbS1lbmQnIDogJ2JvdHRvbS1zdGFydCcpKVxuICAgICAgICAgICAgKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAodGhpcy5jb21wYWN0ID09PSB1bmRlZmluZWQgJiYgdGhpcy5fY29udGVudERlbnNpdHlTZXJ2aWNlKSB7XG4gICAgICAgICAgICB0aGlzLl9zdWJzY3JpcHRpb25zLmFkZChcbiAgICAgICAgICAgICAgICB0aGlzLl9jb250ZW50RGVuc2l0eVNlcnZpY2UuX2lzQ29tcGFjdERlbnNpdHkuc3Vic2NyaWJlKChpc0NvbXBhY3QpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5jb21wYWN0ID0gaXNDb21wYWN0O1xuICAgICAgICAgICAgICAgICAgICB0aGlzLl9jZFJlZi5tYXJrRm9yQ2hlY2soKTtcbiAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX3N1YnNjcmlwdGlvbnMudW5zdWJzY3JpYmUoKTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIEBIb3N0TGlzdGVuZXIoJ3dpbmRvdzpyZXNpemUnLCBbXSlcbiAgICBvblJlc2l6ZSgpOiB2b2lkIHtcbiAgICAgICAgaWYgKCF0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5wYXJlbnRFbGVtZW50KSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5jb250YWluZXJCb3VuZGFyeSA9IHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LnBhcmVudEVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkud2lkdGg7XG4gICAgICAgIGlmICh0aGlzLmNvbnRhaW5lckVsZW1lbnQpIHtcbiAgICAgICAgICAgIHRoaXMuY29udGFpbmVyQm91bmRhcnkgPSB0aGlzLmNvbnRhaW5lckVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkud2lkdGg7XG4gICAgICAgIH1cbiAgICAgICAgLypcbiAgICAgICAgICAgIGlmIHRoaXMgaXMgdGhlIGZpcnN0IGxvYWQgYW5kIHRoZXJlIGlzIG5vIHByZXZpb3VzQ29udGFpbmVyV2lkdGgsXG4gICAgICAgICAgICBvciB0aGUgY29udGFpbmVyIGJvdW5kYXJ5IGlzIHNtYWxsZXIgdGhhbiB0aGUgcHJldmlvdXNDb250YWluZXJXaWR0aFxuICAgICAgICAgKi9cbiAgICAgICAgaWYgKCF0aGlzLnByZXZpb3VzQ29udGFpbmVyV2lkdGggfHwgdGhpcy5jb250YWluZXJCb3VuZGFyeSA8IHRoaXMucHJldmlvdXNDb250YWluZXJXaWR0aCkge1xuICAgICAgICAgICAgLy8gYW5kIHRoZSBicmVhZGNydW1icyBleHRlbmQgcGFzdCB0aGUgd2luZG93XG4gICAgICAgICAgICBpZiAodGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkud2lkdGggPiB0aGlzLmNvbnRhaW5lckJvdW5kYXJ5KSB7XG4gICAgICAgICAgICAgICAgdGhpcy5jb2xsYXBzZUJyZWFkY3J1bWJzKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSBpZiAodGhpcy5jb2xsYXBzZWRCcmVhZGNydW1iSXRlbXMubGVuZ3RoKSB7XG4gICAgICAgICAgICAvLyBpZiB0aGUgc2NyZWVuIGlzIGdldHRpbmcgYmlnZ2VyIGFuZCB0aGVyZSBhcmUgY29sbGFwc2VkIGJyZWFkY3J1bWJzXG4gICAgICAgICAgICB0aGlzLmV4cGFuZEJyZWFkY3J1bWJzKCk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5wcmV2aW91c0NvbnRhaW5lcldpZHRoID0gdGhpcy5jb250YWluZXJCb3VuZGFyeTtcbiAgICAgICAgdGhpcy5fY2RSZWYuZGV0ZWN0Q2hhbmdlcygpO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAga2V5RG93bkhhbmRsZShldmVudDogS2V5Ym9hcmRFdmVudCk6IHZvaWQge1xuICAgICAgICBpZiAoS2V5VXRpbC5pc0tleUNvZGUoZXZlbnQsIFtFTlRFUiwgU1BBQ0VdKSkge1xuICAgICAgICAgICAgdGhpcy5tZW51Q29tcG9uZW50LnRvZ2dsZSgpO1xuICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgZ2V0Q29udGFpbmVyQm91bmRhcnkoKTogbnVtYmVyIHtcbiAgICAgICAgbGV0IGNvbnRhaW5lckJvdW5kYXJ5ID0gdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQucGFyZW50RWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS53aWR0aDtcbiAgICAgICAgaWYgKHRoaXMuY29udGFpbmVyRWxlbWVudCkge1xuICAgICAgICAgICAgY29udGFpbmVyQm91bmRhcnkgPSB0aGlzLmNvbnRhaW5lckVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkud2lkdGg7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gY29udGFpbmVyQm91bmRhcnk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQGhpZGRlblxuICAgICAqXG4gICAgICogVGhpcyBmdW5jdGlvbiBtb3ZlcyBicmVhZGNydW1icyBmcm9tIHRoZSBvcmlnaW5hbCBRdWVyeUxpc3Qgb2YgQnJlYWRDcnVtYkl0ZW1EaXJlY3RpdmVzIGludG8gdGhlIGFycmF5IG9mXG4gICAgICogY29sbGFwc2VkQnJlYWRjcnVtYkl0ZW1zLlxuICAgICAqICovXG4gICAgY29sbGFwc2VCcmVhZGNydW1icygpOiB2b2lkIHtcbiAgICAgICAgbGV0IGkgPSAwO1xuICAgICAgICBjb25zdCBjb250YWluZXJCb3VuZGFyeSA9IHRoaXMuZ2V0Q29udGFpbmVyQm91bmRhcnkoKTtcbiAgICAgICAgLy8gbW92ZSB0aGUgYnJlYWRjcnVtYiBpdGVtcyBpbnRvIGEgY29sbGFwc2VkIG1lbnUgb25lIGJ5IG9uZSwgdW50aWwgdGhlIGxhc3Qgb25lIGlzIGluc2lkZSB0aGUgd2luZG93XG4gICAgICAgIHdoaWxlIChcbiAgICAgICAgICAgIHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLndpZHRoID4gY29udGFpbmVyQm91bmRhcnkgJiZcbiAgICAgICAgICAgIGkgPCB0aGlzLmJyZWFkY3J1bWJJdGVtcy5sZW5ndGhcbiAgICAgICAgKSB7XG4gICAgICAgICAgICBjb25zdCBicmVhZGNydW1iSXRlbSA9IHRoaXMuYnJlYWRjcnVtYkl0ZW1zLmZpbHRlcigoaXRlbSwgaW5kZXgpID0+IGluZGV4ID09PSBpKVswXTtcbiAgICAgICAgICAgIGlmICh0aGlzLmNvbGxhcHNlZEJyZWFkY3J1bWJJdGVtcy5pbmRleE9mKGJyZWFkY3J1bWJJdGVtKSA9PT0gLTEpIHtcbiAgICAgICAgICAgICAgICB0aGlzLnJldmVyc2VcbiAgICAgICAgICAgICAgICAgICAgPyB0aGlzLmNvbGxhcHNlZEJyZWFkY3J1bWJJdGVtcy5wdXNoKGJyZWFkY3J1bWJJdGVtKVxuICAgICAgICAgICAgICAgICAgICA6IHRoaXMuY29sbGFwc2VkQnJlYWRjcnVtYkl0ZW1zLnVuc2hpZnQoYnJlYWRjcnVtYkl0ZW0pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgLy8gaGlkZSB0aGUgb3JpZ2luYWwgYnJlYWRjcnVtYiBpdGVtcyB0aGF0IGhhdmUgYmVlbiBtb3ZlZCBpbiB0byB0aGUgY29sbGFwc2VkIG1lbnVcbiAgICAgICAgICAgIGJyZWFkY3J1bWJJdGVtLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5zdHlsZS5kaXNwbGF5ID0gJ25vbmUnO1xuICAgICAgICAgICAgaSsrO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQGhpZGRlblxuICAgICAqXG4gICAgICogVGhpcyBmdW5jdGlvbiByZW1vdmVzIGJyZWFkY3J1bWIgaXRlbXMgZnJvbSB0aGUgY29sbGFwc2VkQnJlYWRjcnVtYkl0ZW1zIGFycmF5IGFuZCBtYWtlcyB0aGVtIHZpc2libGUgYWdhaW4gaW4gdGhlXG4gICAgICogb3JpZ2luYWwgUXVlcnlMaXN0IG9mIEJyZWFkY3J1bWJJdGVtRGlyZWN0aXZlcy5cbiAgICAgKiAqL1xuICAgIGV4cGFuZEJyZWFkY3J1bWJzKCk6IHZvaWQge1xuICAgICAgICBsZXQgYnJlYWtMb29wID0gZmFsc2U7XG4gICAgICAgIGxldCBpID0gMDtcbiAgICAgICAgY29uc3Qgb3JpZ2luYWxDb2xsYXBzZWRMZW5ndGggPSB0aGlzLmNvbGxhcHNlZEJyZWFkY3J1bWJJdGVtcy5sZW5ndGg7XG4gICAgICAgIHdoaWxlICh0aGlzLmZpdEluQm91bmRyaWVzKCkgJiYgIWJyZWFrTG9vcCAmJiBpIDwgb3JpZ2luYWxDb2xsYXBzZWRMZW5ndGgpIHtcbiAgICAgICAgICAgIC8vIGdldCB0aGUgbW9zdCByZWNlbnRseSBjb2xsYXBzZWQgYnJlYWRjcnVtYlxuICAgICAgICAgICAgY29uc3QgY29sbGFwc2VkSXRlbVRvUG9wID0gdGhpcy5nZXRDb2xsYXBzZWRJdGVtKCk7XG4gICAgICAgICAgICAvLyBmaW5kIHRoZSBjb3JyZXNwb25kaW5nIGJyZWFkY3J1bWIgZnJvbSB0aGUgb3JpZ2luYWwgYnJlYWRjcnVtYiBpdGVtIFF1ZXJ5TGlzdFxuICAgICAgICAgICAgY29uc3QgYnJlYWRjcnVtYlRvQ2hlY2sgPSB0aGlzLmdldEJyZWFkY3J1bWJUb0NoZWNrKGNvbGxhcHNlZEl0ZW1Ub1BvcCk7XG4gICAgICAgICAgICAvKlxuICAgICAgICAgICAgICBzZXQgZGlzcGxheTogJ2lubGluZS1ibG9jaycgYW5kIHZpc2liaWxpdHk6ICdoaWRkZW4nIC0gdGhpcyB3YXksIHRoZSBwYXJlbnQgYnJlYWRjcnVtYiBjb21wb25lbnQncyB3aWR0aCB3aWxsXG4gICAgICAgICAgICAgIGNvbnRhaW4gdGhlIHdpZHRoIG9mIHRoZSBicmVhZGNydW1iIGl0ZW0gd2UgbWlnaHQgcG9wLCB3aXRob3V0IGFjdHVhbGx5IG1ha2luZyB0aGUgaXRlbSB2aXNpYmxlIHRvIHRoZSB1c2VyXG4gICAgICAgICAgICAgKi9cbiAgICAgICAgICAgIHRoaXMuYXBwbHlTdHlsZXNUb0JyZWFkY3J1bWIoYnJlYWRjcnVtYlRvQ2hlY2spO1xuXG4gICAgICAgICAgICBpZiAodGhpcy5maXRJbkJvdW5kcmllcygpKSB7XG4gICAgICAgICAgICAgICAgLypcbiAgICAgICAgICAgICAgICAgIGlmIHRoZSB3aWR0aCBvZiB0aGUgYnJlYWRjcnVtYiBjb21wb25lbnQgaXMgc3RpbGwgc21hbGxlciB0aGFuIHRoZSB3aW5kb3cgd2lkdGgsIGluY2x1ZGluZyB0aGVcbiAgICAgICAgICAgICAgICAgIGJyZWFkY3J1bWJUb0NoZWNrLCBwb3AgdGhlIGxhdGVzdCBjb2xsYXBzZWRCcmVhZGNydW1iSXRlbVxuICAgICAgICAgICAgICAgICovXG4gICAgICAgICAgICAgICAgdGhpcy5wb3BMYXN0RWxlbWVudCgpO1xuICAgICAgICAgICAgICAgIHRoaXMubWFrZUJyZWFkY3J1bWJWaXNpYmxlKGJyZWFkY3J1bWJUb0NoZWNrKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgLypcbiAgICAgICAgICAgICAgICAgIGlmIHRoZSB3aWR0aCBvZiB0aGUgYnJlYWRjcnVtYiBjb21wb25lbnQgaXMgd2lkZXIgdGhhbiB0aGUgd2luZG93IGFmdGVyIG1ha2luZyB0aGUgYnJlYWRjcnVtYlRvQ2hlY2snc1xuICAgICAgICAgICAgICAgICAgZGlzcGxheTogJ2lubGluZS1ibG9jaycsIHRoZW4gcHV0IGl0J3MgZGlzcGxheSBiYWNrIHRvICdub25lJyBhbmQgZG9uJ3QgcG9wIHRoZSBjb2xsYXBzZWRCcmVhZGNydW1iSXRlbVxuICAgICAgICAgICAgICAgICAqL1xuICAgICAgICAgICAgICAgIHRoaXMubWFrZUJyZWFkY3J1bWJJbnZpc2libGUoYnJlYWRjcnVtYlRvQ2hlY2spO1xuICAgICAgICAgICAgICAgIGJyZWFrTG9vcCA9IHRydWU7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpKys7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIGZpdEluQm91bmRyaWVzKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkud2lkdGggPCB0aGlzLmdldENvbnRhaW5lckJvdW5kYXJ5KCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXRDb2xsYXBzZWRJdGVtKCk6IEJyZWFkY3J1bWJJdGVtRGlyZWN0aXZlIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuY29sbGFwc2VkQnJlYWRjcnVtYkl0ZW1zW3RoaXMuY29sbGFwc2VkQnJlYWRjcnVtYkl0ZW1zLmxlbmd0aCAtIDFdO1xuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0QnJlYWRjcnVtYlRvQ2hlY2soY29sbGFwc2VkSXRlbVRvUG9wOiBCcmVhZGNydW1iSXRlbURpcmVjdGl2ZSk6IEJyZWFkY3J1bWJJdGVtRGlyZWN0aXZlIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuYnJlYWRjcnVtYkl0ZW1zLmZpbHRlcigoaXRlbSkgPT4gaXRlbSA9PT0gY29sbGFwc2VkSXRlbVRvUG9wKVswXTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGFwcGx5U3R5bGVzVG9CcmVhZGNydW1iKGJyZWFkY3J1bWI6IEJyZWFkY3J1bWJJdGVtRGlyZWN0aXZlKTogdm9pZCB7XG4gICAgICAgIGJyZWFkY3J1bWIuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LnN0eWxlLmRpc3BsYXkgPSAnaW5saW5lLWJsb2NrJztcbiAgICAgICAgYnJlYWRjcnVtYi5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQuc3R5bGUudmlzaWJpbGl0eSA9ICdoaWRkZW4nO1xuICAgIH1cblxuICAgIHByaXZhdGUgcG9wTGFzdEVsZW1lbnQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuY29sbGFwc2VkQnJlYWRjcnVtYkl0ZW1zLnBvcCgpO1xuICAgICAgICAvLyBtYWtlIHRoZSBicmVhZGNydW1iIHdlIGNoZWNrZWQgdmlzaWJsZVxuICAgIH1cblxuICAgIHByaXZhdGUgbWFrZUJyZWFkY3J1bWJWaXNpYmxlKGJyZWFkY3J1bWI6IEJyZWFkY3J1bWJJdGVtRGlyZWN0aXZlKTogdm9pZCB7XG4gICAgICAgIGJyZWFkY3J1bWIuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LnN0eWxlLnZpc2liaWxpdHkgPSAndmlzaWJsZSc7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBtYWtlQnJlYWRjcnVtYkludmlzaWJsZShicmVhZGNydW1iOiBCcmVhZGNydW1iSXRlbURpcmVjdGl2ZSk6IHZvaWQge1xuICAgICAgICBicmVhZGNydW1iLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5zdHlsZS5kaXNwbGF5ID0gJ25vbmUnO1xuICAgIH1cbn1cbiIsIjxmZC1tZW51ICNtZW51IFtjb21wYWN0XT1cImNvbXBhY3RcIiBbY2xvc2VPbkVzY2FwZUtleV09XCJ0cnVlXCIgW2ZvY3VzQXV0b0NhcHR1cmVdPVwidHJ1ZVwiIFtwbGFjZW1lbnRdPVwicGxhY2VtZW50JCB8IGFzeW5jXCI+XG4gICAgPGxpIGZkLW1lbnUtaXRlbSAqbmdGb3I9XCJsZXQgY29sbGFwc2VkQnJlYWRjcnVtYkl0ZW0gb2YgY29sbGFwc2VkQnJlYWRjcnVtYkl0ZW1zXCI+XG4gICAgICAgIDxhXG4gICAgICAgICAgICBmZC1tZW51LWludGVyYWN0aXZlXG4gICAgICAgICAgICBbYXR0ci5ocmVmXT1cImNvbGxhcHNlZEJyZWFkY3J1bWJJdGVtLmhyZWZcIlxuICAgICAgICAgICAgW3JvdXRlckxpbmtdPVwiY29sbGFwc2VkQnJlYWRjcnVtYkl0ZW0ucm91dGVyTGlua1wiXG4gICAgICAgID5cbiAgICAgICAgICAgIDxzcGFuIGZkLW1lbnUtdGl0bGU+e3sgY29sbGFwc2VkQnJlYWRjcnVtYkl0ZW0uZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LmlubmVyVGV4dCB9fTwvc3Bhbj5cbiAgICAgICAgPC9hPlxuICAgIDwvbGk+XG48L2ZkLW1lbnU+XG5cbjxmZC1icmVhZGNydW1iLWl0ZW0gKm5nSWY9XCJjb2xsYXBzZWRCcmVhZGNydW1iSXRlbXMubGVuZ3RoXCIgW2ZkTWVudVRyaWdnZXJdPVwibWVudVwiPlxuICAgIDxhIGZkLWJyZWFkY3J1bWItbGluayB0YWJpbmRleD1cIjBcIiBjbGFzcz1cImZkLWJyZWFkY3J1bWJfX2NvbGxhcHNlZFwiIChrZXlkb3duKT1cImtleURvd25IYW5kbGUoJGV2ZW50KVwiPlxuICAgICAgICAuLi5cbiAgICAgICAgPGkgcm9sZT1cInByZXNlbnRhdGlvblwiIGNsYXNzPVwiZmQtYnJlYWRjcnVtYl9fZHJvcGRvd24taWNvbiBzYXAtaWNvbiBzYXAtaWNvbi0tc2xpbS1hcnJvdy1kb3duXCI+PC9pPlxuICAgIDwvYT5cbjwvZmQtYnJlYWRjcnVtYi1pdGVtPlxuXG48bmctY29udGVudD48L25nLWNvbnRlbnQ+XG4iXX0=
129
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnJlYWRjcnVtYi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWJzL2NvcmUvc3JjL2xpYi9icmVhZGNydW1iL2JyZWFkY3J1bWIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vbGlicy9jb3JlL3NyYy9saWIvYnJlYWRjcnVtYi9icmVhZGNydW1iLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFFSCx1QkFBdUIsRUFDdkIsaUJBQWlCLEVBQ2pCLFNBQVMsRUFDVCxlQUFlLEVBQ2YsVUFBVSxFQUNWLFVBQVUsRUFDVixLQUFLLEVBQ0wsTUFBTSxFQUdOLFFBQVEsRUFDUixTQUFTLEVBQ1QsU0FBUyxFQUNULGlCQUFpQixFQUNwQixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUN0RSxPQUFPLEVBQUUscUJBQXFCLEVBQUUscUJBQXFCLEVBQUUsVUFBVSxFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDdkcsT0FBTyxFQUFFLGVBQWUsRUFBRSxjQUFjLEVBQUUsR0FBRyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsR0FBRyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQzFGLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQzs7Ozs7Ozs7QUFHM0Q7Ozs7Ozs7Ozs7R0FVRztBQWFILE1BQU0sT0FBTyxtQkFBbUI7SUF1QzVCLFlBQ1csVUFBK0IsRUFDbEIsV0FBdUIsRUFDdkIsc0JBQTZDLEVBQ3pELE1BQXlCLEVBQ3pCLGVBQXNDLEVBQ3RDLE9BQWU7UUFMaEIsZUFBVSxHQUFWLFVBQVUsQ0FBcUI7UUFDbEIsZ0JBQVcsR0FBWCxXQUFXLENBQVk7UUFDdkIsMkJBQXNCLEdBQXRCLHNCQUFzQixDQUF1QjtRQUN6RCxXQUFNLEdBQU4sTUFBTSxDQUFtQjtRQUN6QixvQkFBZSxHQUFm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QUFDLElBQUksRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDLENBQUM7UUFDN0QsSUFBSSxDQUFDLE1BQU0sQ0FBQyxhQUFhLEVBQUUsQ0FBQztJQUNoQyxDQUFDO0lBRUQsY0FBYztJQUNkLGFBQWEsQ0FBQyxLQUFZO1FBQ3RCLElBQUksQ0FBQyxhQUFhLENBQUMsTUFBTSxFQUFFLENBQUM7UUFDNUIsS0FBSyxDQUFDLGNBQWMsRUFBRSxDQUFDO0lBQzNCLENBQUM7O2dIQTlIUSxtQkFBbUI7b0dBQW5CLG1CQUFtQiw2UEFNTSx1QkFBdUIsZ0ZBSTlDLGFBQWEsZ0RDeEQ1Qixvd0JBc0JBOzJGRHdCYSxtQkFBbUI7a0JBWi9CLFNBQVM7K0JBR0ksZUFBZSxRQUNuQjt3QkFDRixLQUFLLEVBQUUsZUFBZTtxQkFDekIsaUJBR2MsaUJBQWlCLENBQUMsSUFBSSxtQkFDcEIsdUJBQXVCLENBQUMsTUFBTTs7MEJBMkMxQyxRQUFROzswQkFDUixRQUFRO3FJQXZDYixPQUFPO3NCQUROLEtBQUs7Z0JBS04sZUFBZTtzQkFEZCxlQUFlO3VCQUFDLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyx1QkFBdUIsQ0FBQztnQkFLMUQsYUFBYTtzQkFEWixTQUFTO3VCQUFDLGFBQWE7Z0JBY3hCLGdCQUFnQjtzQkFEZixLQUFLO2dCQUtOLE9BQU87c0JBRE4sS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gICAgQWZ0ZXJWaWV3SW5pdCxcbiAgICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBDb21wb25lbnQsXG4gICAgQ29udGVudENoaWxkcmVuLFxuICAgIEVsZW1lbnRSZWYsXG4gICAgZm9yd2FyZFJlZixcbiAgICBJbnB1dCxcbiAgICBOZ1pvbmUsXG4gICAgT25EZXN0cm95LFxuICAgIE9uSW5pdCxcbiAgICBPcHRpb25hbCxcbiAgICBRdWVyeUxpc3QsXG4gICAgVmlld0NoaWxkLFxuICAgIFZpZXdFbmNhcHN1bGF0aW9uXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQnJlYWRjcnVtYkl0ZW1Db21wb25lbnQgfSBmcm9tICcuL2JyZWFkY3J1bWItaXRlbS5jb21wb25lbnQnO1xuaW1wb3J0IHsgQ29udGVudERlbnNpdHlTZXJ2aWNlLCBSZXNpemVPYnNlcnZlclNlcnZpY2UsIFJ0bFNlcnZpY2UgfSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L2NvcmUvdXRpbHMnO1xuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBmaXJzdFZhbHVlRnJvbSwgbWFwLCBzdGFydFdpdGgsIFN1YnNjcmlwdGlvbiwgdGFwIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBNZW51Q29tcG9uZW50IH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9jb3JlL21lbnUnO1xuaW1wb3J0IHsgUGxhY2VtZW50IH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9jb3JlL3NoYXJlZCc7XG5cbi8qKlxuICogQnJlYWRjcnVtYiBwYXJlbnQgd3JhcHBlciBkaXJlY3RpdmUuIE11c3QgaGF2ZSBicmVhZGNydW1iIGl0ZW0gY2hpbGQgZGlyZWN0aXZlcy5cbiAqXG4gKiBgYGBodG1sXG4gKiA8ZmQtYnJlYWRjcnVtYj5cbiAqICAgICA8ZmQtYnJlYWRjcnVtYi1pdGVtPlxuICogICAgICAgICA8YSBmZC1saW5rIFtyb3V0ZXJMaW5rXT1cIicjJ1wiPkJyZWFkY3J1bWIgTGluazwvYT5cbiAqICAgICA8L2ZkLWJyZWFkY3J1bWItaXRlbT5cbiAqIDwvZmQtYnJlYWRjcnVtYj5cbiAqIGBgYFxuICovXG5AQ29tcG9uZW50KHtcbiAgICAvLyBUT0RPIHRvIGJlIGRpc2N1c3NlZFxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZVxuICAgIHNlbGVjdG9yOiAnZmQtYnJlYWRjcnVtYicsXG4gICAgaG9zdDoge1xuICAgICAgICBjbGFzczogJ2ZkLWJyZWFkY3J1bWInXG4gICAgfSxcbiAgICB0ZW1wbGF0ZVVybDogJy4vYnJlYWRjcnVtYi5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vYnJlYWRjcnVtYi5jb21wb25lbnQuc2NzcyddLFxuICAgIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2hcbn0pXG5leHBvcnQgY2xhc3MgQnJlYWRjcnVtYkNvbXBvbmVudCBpbXBsZW1lbnRzIEFmdGVyVmlld0luaXQsIE9uSW5pdCwgT25EZXN0cm95IHtcbiAgICAvKiogV2hlbmV2ZXIgbGlua3Mgd3JhcHBlZCBpbnNpZGUgb3ZlcmZsb3cgc2hvdWxkIGJlIGRpc3BsYXllZCBpbiBjb21wYWN0IG1vZGUgICovXG4gICAgQElucHV0KClcbiAgICBjb21wYWN0PzogYm9vbGVhbjtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgQENvbnRlbnRDaGlsZHJlbihmb3J3YXJkUmVmKCgpID0+IEJyZWFkY3J1bWJJdGVtQ29tcG9uZW50KSlcbiAgICBicmVhZGNydW1iSXRlbXM6IFF1ZXJ5TGlzdDxCcmVhZGNydW1iSXRlbUNvbXBvbmVudD47XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIEBWaWV3Q2hpbGQoTWVudUNvbXBvbmVudClcbiAgICBtZW51Q29tcG9uZW50OiBNZW51Q29tcG9uZW50O1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBjb2xsYXBzZWRCcmVhZGNydW1iSXRlbXM6IEFycmF5PEJyZWFkY3J1bWJJdGVtQ29tcG9uZW50PiA9IFtdO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwbGFjZW1lbnQkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxQbGFjZW1lbnQ+KCdib3R0b20tc3RhcnQnKTtcblxuICAgIC8qKlxuICAgICAqIFRoZSBlbGVtZW50IHRvIGFjdCBhcyB0aGUgYnJlYWRjcnVtYiBjb250YWluZXIuIFdoZW4gcHJvdmlkZWQsIHRoZSBicmVhZGNydW1iJ3MgcmVzcG9uc2l2ZSBjb2xsYXBzaW5nIGJlaGF2aW9yXG4gICAgICogcGVyZm9ybXMgYmV0dGVyLiBXaGVuIG5vdCBwcm92aWRlZCwgdGhlIGltbWVkaWF0ZSBwYXJlbnQgZWxlbWVudCdzIHdpZHRoIHdpbGwgYmUgdXNlZC5cbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIGNvbnRhaW5lckVsZW1lbnQ6IEhUTUxFbGVtZW50O1xuXG4gICAgLyoqIFdoZXRoZXIgdG8gYXBwZW5kIGl0ZW1zIHRvIHRoZSBvdmVyZmxvdyBkcm9wZG93biBpbiByZXZlcnNlIG9yZGVyLiBEZWZhdWx0IGlzIHRydWUuICovXG4gICAgQElucHV0KClcbiAgICByZXZlcnNlID0gZmFsc2U7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIGNvbnRhaW5lckJvdW5kYXJ5OiBudW1iZXI7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX3N1YnNjcmlwdGlvbnMgPSBuZXcgU3Vic2NyaXB0aW9uKCk7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX2l0ZW1Ub1NpemUgPSBuZXcgTWFwPEJyZWFkY3J1bWJJdGVtQ29tcG9uZW50LCBudW1iZXI+KCk7XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHVibGljIGVsZW1lbnRSZWY6IEVsZW1lbnRSZWY8RWxlbWVudD4sXG4gICAgICAgIEBPcHRpb25hbCgpIHByaXZhdGUgX3J0bFNlcnZpY2U6IFJ0bFNlcnZpY2UsXG4gICAgICAgIEBPcHRpb25hbCgpIHByaXZhdGUgX2NvbnRlbnREZW5zaXR5U2VydmljZTogQ29udGVudERlbnNpdHlTZXJ2aWNlLFxuICAgICAgICBwcml2YXRlIF9jZFJlZjogQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgICAgIHByaXZhdGUgX3Jlc2l6ZU9ic2VydmVyOiBSZXNpemVPYnNlcnZlclNlcnZpY2UsXG4gICAgICAgIHByaXZhdGUgX25nWm9uZTogTmdab25lXG4gICAgKSB7fVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMuX3J0bFNlcnZpY2UpIHtcbiAgICAgICAgICAgIHRoaXMuX3N1YnNjcmlwdGlvbnMuYWRkKFxuICAgICAgICAgICAgICAgIHRoaXMuX3J0bFNlcnZpY2UucnRsLnN1YnNjcmliZSgodmFsdWUpID0+IHRoaXMucGxhY2VtZW50JC5uZXh0KHZhbHVlID8gJ2JvdHRvbS1lbmQnIDogJ2JvdHRvbS1zdGFydCcpKVxuICAgICAgICAgICAgKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAodGhpcy5jb21wYWN0ID09PSB1bmRlZmluZWQgJiYgdGhpcy5fY29udGVudERlbnNpdHlTZXJ2aWNlKSB7XG4gICAgICAgICAgICB0aGlzLl9zdWJzY3JpcHRpb25zLmFkZChcbiAgICAgICAgICAgICAgICB0aGlzLl9jb250ZW50RGVuc2l0eVNlcnZpY2UuX2lzQ29tcGFjdERlbnNpdHkuc3Vic2NyaWJlKChpc0NvbXBhY3QpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5jb21wYWN0ID0gaXNDb21wYWN0O1xuICAgICAgICAgICAgICAgICAgICB0aGlzLl9jZFJlZi5tYXJrRm9yQ2hlY2soKTtcbiAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fc3Vic2NyaXB0aW9ucy5hZGQoXG4gICAgICAgICAgICB0aGlzLmJyZWFkY3J1bWJJdGVtcy5jaGFuZ2VzXG4gICAgICAgICAgICAgICAgLnBpcGUoXG4gICAgICAgICAgICAgICAgICAgIHN0YXJ0V2l0aCh0aGlzLmJyZWFkY3J1bWJJdGVtcyksXG4gICAgICAgICAgICAgICAgICAgIG1hcCgoaXRlbXMpID0+IGl0ZW1zLnRvQXJyYXkoKSBhcyBCcmVhZGNydW1iSXRlbUNvbXBvbmVudFtdKSxcbiAgICAgICAgICAgICAgICAgICAgbWFwKChpdGVtcykgPT4gaXRlbXMubWFwKChpdGVtKSA9PiBbaXRlbSwgaXRlbS53aWR0aF0pIGFzIFtCcmVhZGNydW1iSXRlbUNvbXBvbmVudCwgbnVtYmVyXVtdKSxcbiAgICAgICAgICAgICAgICAgICAgdGFwKChpdGVtVG9TaXplOiBbQnJlYWRjcnVtYkl0ZW1Db21wb25lbnQsIG51bWJlcl1bXSkgPT4gKHRoaXMuX2l0ZW1Ub1NpemUgPSBuZXcgTWFwKGl0ZW1Ub1NpemUpKSlcbiAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgLnN1YnNjcmliZSgpXG4gICAgICAgICk7XG4gICAgICAgIGZpcnN0VmFsdWVGcm9tKHRoaXMuX25nWm9uZS5vblN0YWJsZSkudGhlbigoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLl9zdWJzY3JpcHRpb25zLmFkZChcbiAgICAgICAgICAgICAgICB0aGlzLl9yZXNpemVPYnNlcnZlclxuICAgICAgICAgICAgICAgICAgICAub2JzZXJ2ZSh0aGlzLmNvbnRhaW5lckVsZW1lbnQgfHwgKHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LnBhcmVudEVsZW1lbnQgYXMgRWxlbWVudCkpXG4gICAgICAgICAgICAgICAgICAgIC5zdWJzY3JpYmUoKCkgPT4gdGhpcy5vblJlc2l6ZSgpKVxuICAgICAgICAgICAgKTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fc3Vic2NyaXB0aW9ucy51bnN1YnNjcmliZSgpO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgb25SZXNpemUoKTogdm9pZCB7XG4gICAgICAgIGlmICghdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQucGFyZW50RWxlbWVudCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuY29udGFpbmVyQm91bmRhcnkgPSB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5wYXJlbnRFbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLndpZHRoO1xuXG4gICAgICAgIGlmICh0aGlzLmNvbnRhaW5lckVsZW1lbnQpIHtcbiAgICAgICAgICAgIHRoaXMuY29udGFpbmVyQm91bmRhcnkgPSB0aGlzLmNvbnRhaW5lckVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkud2lkdGg7XG4gICAgICAgIH1cblxuICAgICAgICBsZXQgdmlzaWJsZVN1bSA9IDA7XG4gICAgICAgIGNvbnN0IGJyZWFkY3J1bWJJdGVtQ29tcG9uZW50cyA9IHRoaXMuYnJlYWRjcnVtYkl0ZW1zLnRvQXJyYXkoKTtcbiAgICAgICAgbGV0IGk7XG4gICAgICAgIGZvciAoaSA9IGJyZWFkY3J1bWJJdGVtQ29tcG9uZW50cy5sZW5ndGggLSAxOyBpID49IDA7IGktLSkge1xuICAgICAgICAgICAgY29uc3QgYnJlYWRjcnVtYkl0ZW0gPSBicmVhZGNydW1iSXRlbUNvbXBvbmVudHNbaV07XG4gICAgICAgICAgICBjb25zdCBpdGVtU2l6ZSA9IHRoaXMuX2l0ZW1Ub1NpemUuaGFzKGJyZWFkY3J1bWJJdGVtKVxuICAgICAgICAgICAgICAgID8gKHRoaXMuX2l0ZW1Ub1NpemUuZ2V0KGJyZWFkY3J1bWJJdGVtKSBhcyBudW1iZXIpXG4gICAgICAgICAgICAgICAgOiBicmVhZGNydW1iSXRlbS53aWR0aDtcbiAgICAgICAgICAgIGlmICh2aXNpYmxlU3VtICsgaXRlbVNpemUgPD0gdGhpcy5jb250YWluZXJCb3VuZGFyeSkge1xuICAgICAgICAgICAgICAgIHZpc2libGVTdW0gKz0gaXRlbVNpemU7XG4gICAgICAgICAgICAgICAgYnJlYWRjcnVtYkl0ZW0uc2hvdygpO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBjb25zdCBjb2xsYXBzZWRCcmVhZGNydW1iSXRlbXMgPSBicmVhZGNydW1iSXRlbUNvbXBvbmVudHMuc2xpY2UoMCwgKytpKTtcbiAgICAgICAgdGhpcy5jb2xsYXBzZWRCcmVhZGNydW1iSXRlbXMgPSB0aGlzLnJldmVyc2UgPyBjb2xsYXBzZWRCcmVhZGNydW1iSXRlbXMgOiBjb2xsYXBzZWRCcmVhZGNydW1iSXRlbXMucmV2ZXJzZSgpO1xuICAgICAgICB0aGlzLmNvbGxhcHNlZEJyZWFkY3J1bWJJdGVtcy5mb3JFYWNoKChpdGVtKSA9PiBpdGVtLmhpZGUoKSk7XG4gICAgICAgIHRoaXMuX2NkUmVmLmRldGVjdENoYW5nZXMoKTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIGtleURvd25IYW5kbGUoZXZlbnQ6IEV2ZW50KTogdm9pZCB7XG4gICAgICAgIHRoaXMubWVudUNvbXBvbmVudC50b2dnbGUoKTtcbiAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICB9XG59XG4iLCI8ZmQtbWVudSAjbWVudSBbY29tcGFjdF09XCJjb21wYWN0XCIgW2Nsb3NlT25Fc2NhcGVLZXldPVwidHJ1ZVwiIFtmb2N1c0F1dG9DYXB0dXJlXT1cInRydWVcIiBbcGxhY2VtZW50XT1cInBsYWNlbWVudCQgfCBhc3luY1wiPlxuICAgIDxmZC1icmVhZGNydW1iLWhpZGRlbi1pdGVtXG4gICAgICAgICpuZ0Zvcj1cImxldCBjb2xsYXBzZWRCcmVhZGNydW1iSXRlbSBvZiBjb2xsYXBzZWRCcmVhZGNydW1iSXRlbXNcIlxuICAgICAgICBbYnJlYWRjcnVtYkl0ZW1dPVwiY29sbGFwc2VkQnJlYWRjcnVtYkl0ZW1cIlxuICAgID5cbiAgICA8L2ZkLWJyZWFkY3J1bWItaGlkZGVuLWl0ZW0+XG48L2ZkLW1lbnU+XG5cbjxzcGFuIGNsYXNzPVwiZmQtYnJlYWRjcnVtYl9faXRlbVwiICpuZ0lmPVwiY29sbGFwc2VkQnJlYWRjcnVtYkl0ZW1zLmxlbmd0aFwiIFtmZE1lbnVUcmlnZ2VyXT1cIm1lbnVcIj5cbiAgICA8YVxuICAgICAgICBmZC1saW5rXG4gICAgICAgIHRhYmluZGV4PVwiMFwiXG4gICAgICAgIGNsYXNzPVwiZmQtYnJlYWRjcnVtYl9fY29sbGFwc2VkXCJcbiAgICAgICAgKGtleWRvd24uZW50ZXIpPVwia2V5RG93bkhhbmRsZSgkZXZlbnQpXCJcbiAgICAgICAgKGtleWRvd24uc3BhY2UpPVwia2V5RG93bkhhbmRsZSgkZXZlbnQpXCJcbiAgICA+XG4gICAgICAgIC4uLlxuICAgICAgICA8ZmQtaWNvbiBnbHlwaD1cInNsaW0tYXJyb3ctZG93blwiPjwvZmQtaWNvbj5cbiAgICA8L2E+XG48L3NwYW4+XG5cbjxuZy1jb250ZW50PjwvbmctY29udGVudD5cbiJdfQ==
@@ -1,24 +1,26 @@
1
1
  import { NgModule } from '@angular/core';
2
2
  import { CommonModule } from '@angular/common';
3
- import { RouterModule } from '@angular/router';
4
3
  import { BreadcrumbComponent } from './breadcrumb.component';
5
- import { BreadcrumbItemDirective } from './breadcrumb-item.directive';
6
- import { BreadcrumbLinkDirective } from './breadcrumb-link.directive';
4
+ import { BreadcrumbItemComponent } from './breadcrumb-item.component';
7
5
  import { IconModule } from '@fundamental-ngx/core/icon';
8
6
  import { PopoverModule } from '@fundamental-ngx/core/popover';
9
7
  import { MenuModule } from '@fundamental-ngx/core/menu';
8
+ import { LinkModule } from '@fundamental-ngx/core/link';
9
+ import { BreadcrumbHiddenItemComponent } from './breadcrumb-hidden-item/breadcrumb-hidden-item.component';
10
+ import { PortalModule } from '@angular/cdk/portal';
11
+ import { PipeModule } from '@fundamental-ngx/core/utils';
10
12
  import * as i0 from "@angular/core";
11
13
  export class BreadcrumbModule {
12
14
  }
13
15
  BreadcrumbModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.4", ngImport: i0, type: BreadcrumbModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
14
- BreadcrumbModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.2.4", ngImport: i0, type: BreadcrumbModule, declarations: [BreadcrumbComponent, BreadcrumbItemDirective, BreadcrumbLinkDirective], imports: [CommonModule, IconModule, PopoverModule, MenuModule, RouterModule], exports: [BreadcrumbComponent, BreadcrumbItemDirective, BreadcrumbLinkDirective] });
15
- BreadcrumbModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.2.4", ngImport: i0, type: BreadcrumbModule, imports: [[CommonModule, IconModule, PopoverModule, MenuModule, RouterModule]] });
16
+ BreadcrumbModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.2.4", ngImport: i0, type: BreadcrumbModule, declarations: [BreadcrumbComponent, BreadcrumbItemComponent, BreadcrumbHiddenItemComponent], imports: [CommonModule, IconModule, PopoverModule, MenuModule, LinkModule, PortalModule, PipeModule], exports: [BreadcrumbComponent, BreadcrumbItemComponent, LinkModule] });
17
+ BreadcrumbModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.2.4", ngImport: i0, type: BreadcrumbModule, imports: [[CommonModule, IconModule, PopoverModule, MenuModule, LinkModule, PortalModule, PipeModule], LinkModule] });
16
18
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.4", ngImport: i0, type: BreadcrumbModule, decorators: [{
17
19
  type: NgModule,
18
20
  args: [{
19
- imports: [CommonModule, IconModule, PopoverModule, MenuModule, RouterModule],
20
- exports: [BreadcrumbComponent, BreadcrumbItemDirective, BreadcrumbLinkDirective],
21
- declarations: [BreadcrumbComponent, BreadcrumbItemDirective, BreadcrumbLinkDirective]
21
+ imports: [CommonModule, IconModule, PopoverModule, MenuModule, LinkModule, PortalModule, PipeModule],
22
+ exports: [BreadcrumbComponent, BreadcrumbItemComponent, LinkModule],
23
+ declarations: [BreadcrumbComponent, BreadcrumbItemComponent, BreadcrumbHiddenItemComponent]
22
24
  }]
23
25
  }] });
24
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnJlYWRjcnVtYi5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWJzL2NvcmUvc3JjL2xpYi9icmVhZGNydW1iL2JyZWFkY3J1bWIubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUUvQyxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUM3RCxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUN0RSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUN0RSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDeEQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQzlELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQzs7QUFPeEQsTUFBTSxPQUFPLGdCQUFnQjs7NkdBQWhCLGdCQUFnQjs4R0FBaEIsZ0JBQWdCLGlCQUZWLG1CQUFtQixFQUFFLHVCQUF1QixFQUFFLHVCQUF1QixhQUYxRSxZQUFZLEVBQUUsVUFBVSxFQUFFLGFBQWEsRUFBRSxVQUFVLEVBQUUsWUFBWSxhQUNqRSxtQkFBbUIsRUFBRSx1QkFBdUIsRUFBRSx1QkFBdUI7OEdBR3RFLGdCQUFnQixZQUpoQixDQUFDLFlBQVksRUFBRSxVQUFVLEVBQUUsYUFBYSxFQUFFLFVBQVUsRUFBRSxZQUFZLENBQUM7MkZBSW5FLGdCQUFnQjtrQkFMNUIsUUFBUTttQkFBQztvQkFDTixPQUFPLEVBQUUsQ0FBQyxZQUFZLEVBQUUsVUFBVSxFQUFFLGFBQWEsRUFBRSxVQUFVLEVBQUUsWUFBWSxDQUFDO29CQUM1RSxPQUFPLEVBQUUsQ0FBQyxtQkFBbUIsRUFBRSx1QkFBdUIsRUFBRSx1QkFBdUIsQ0FBQztvQkFDaEYsWUFBWSxFQUFFLENBQUMsbUJBQW1CLEVBQUUsdUJBQXVCLEVBQUUsdUJBQXVCLENBQUM7aUJBQ3hGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBSb3V0ZXJNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuXG5pbXBvcnQgeyBCcmVhZGNydW1iQ29tcG9uZW50IH0gZnJvbSAnLi9icmVhZGNydW1iLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBCcmVhZGNydW1iSXRlbURpcmVjdGl2ZSB9IGZyb20gJy4vYnJlYWRjcnVtYi1pdGVtLmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBCcmVhZGNydW1iTGlua0RpcmVjdGl2ZSB9IGZyb20gJy4vYnJlYWRjcnVtYi1saW5rLmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBJY29uTW9kdWxlIH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9jb3JlL2ljb24nO1xuaW1wb3J0IHsgUG9wb3Zlck1vZHVsZSB9IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvY29yZS9wb3BvdmVyJztcbmltcG9ydCB7IE1lbnVNb2R1bGUgfSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L2NvcmUvbWVudSc7XG5cbkBOZ01vZHVsZSh7XG4gICAgaW1wb3J0czogW0NvbW1vbk1vZHVsZSwgSWNvbk1vZHVsZSwgUG9wb3Zlck1vZHVsZSwgTWVudU1vZHVsZSwgUm91dGVyTW9kdWxlXSxcbiAgICBleHBvcnRzOiBbQnJlYWRjcnVtYkNvbXBvbmVudCwgQnJlYWRjcnVtYkl0ZW1EaXJlY3RpdmUsIEJyZWFkY3J1bWJMaW5rRGlyZWN0aXZlXSxcbiAgICBkZWNsYXJhdGlvbnM6IFtCcmVhZGNydW1iQ29tcG9uZW50LCBCcmVhZGNydW1iSXRlbURpcmVjdGl2ZSwgQnJlYWRjcnVtYkxpbmtEaXJlY3RpdmVdXG59KVxuZXhwb3J0IGNsYXNzIEJyZWFkY3J1bWJNb2R1bGUge31cbiJdfQ==
26
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnJlYWRjcnVtYi5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWJzL2NvcmUvc3JjL2xpYi9icmVhZGNydW1iL2JyZWFkY3J1bWIubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBRS9DLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQzdELE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQ3RFLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUN4RCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDOUQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ3hELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUN4RCxPQUFPLEVBQUUsNkJBQTZCLEVBQUUsTUFBTSwyREFBMkQsQ0FBQztBQUMxRyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDbkQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLDZCQUE2QixDQUFDOztBQU96RCxNQUFNLE9BQU8sZ0JBQWdCOzs2R0FBaEIsZ0JBQWdCOzhHQUFoQixnQkFBZ0IsaUJBRlYsbUJBQW1CLEVBQUUsdUJBQXVCLEVBQUUsNkJBQTZCLGFBRmhGLFlBQVksRUFBRSxVQUFVLEVBQUUsYUFBYSxFQUFFLFVBQVUsRUFBRSxVQUFVLEVBQUUsWUFBWSxFQUFFLFVBQVUsYUFDekYsbUJBQW1CLEVBQUUsdUJBQXVCLEVBQUUsVUFBVTs4R0FHekQsZ0JBQWdCLFlBSmhCLENBQUMsWUFBWSxFQUFFLFVBQVUsRUFBRSxhQUFhLEVBQUUsVUFBVSxFQUFFLFVBQVUsRUFBRSxZQUFZLEVBQUUsVUFBVSxDQUFDLEVBQzVDLFVBQVU7MkZBR3pELGdCQUFnQjtrQkFMNUIsUUFBUTttQkFBQztvQkFDTixPQUFPLEVBQUUsQ0FBQyxZQUFZLEVBQUUsVUFBVSxFQUFFLGFBQWEsRUFBRSxVQUFVLEVBQUUsVUFBVSxFQUFFLFlBQVksRUFBRSxVQUFVLENBQUM7b0JBQ3BHLE9BQU8sRUFBRSxDQUFDLG1CQUFtQixFQUFFLHVCQUF1QixFQUFFLFVBQVUsQ0FBQztvQkFDbkUsWUFBWSxFQUFFLENBQUMsbUJBQW1CLEVBQUUsdUJBQXVCLEVBQUUsNkJBQTZCLENBQUM7aUJBQzlGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5cbmltcG9ydCB7IEJyZWFkY3J1bWJDb21wb25lbnQgfSBmcm9tICcuL2JyZWFkY3J1bWIuY29tcG9uZW50JztcbmltcG9ydCB7IEJyZWFkY3J1bWJJdGVtQ29tcG9uZW50IH0gZnJvbSAnLi9icmVhZGNydW1iLWl0ZW0uY29tcG9uZW50JztcbmltcG9ydCB7IEljb25Nb2R1bGUgfSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L2NvcmUvaWNvbic7XG5pbXBvcnQgeyBQb3BvdmVyTW9kdWxlIH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9jb3JlL3BvcG92ZXInO1xuaW1wb3J0IHsgTWVudU1vZHVsZSB9IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvY29yZS9tZW51JztcbmltcG9ydCB7IExpbmtNb2R1bGUgfSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L2NvcmUvbGluayc7XG5pbXBvcnQgeyBCcmVhZGNydW1iSGlkZGVuSXRlbUNvbXBvbmVudCB9IGZyb20gJy4vYnJlYWRjcnVtYi1oaWRkZW4taXRlbS9icmVhZGNydW1iLWhpZGRlbi1pdGVtLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBQb3J0YWxNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jZGsvcG9ydGFsJztcbmltcG9ydCB7IFBpcGVNb2R1bGUgfSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L2NvcmUvdXRpbHMnO1xuXG5ATmdNb2R1bGUoe1xuICAgIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIEljb25Nb2R1bGUsIFBvcG92ZXJNb2R1bGUsIE1lbnVNb2R1bGUsIExpbmtNb2R1bGUsIFBvcnRhbE1vZHVsZSwgUGlwZU1vZHVsZV0sXG4gICAgZXhwb3J0czogW0JyZWFkY3J1bWJDb21wb25lbnQsIEJyZWFkY3J1bWJJdGVtQ29tcG9uZW50LCBMaW5rTW9kdWxlXSxcbiAgICBkZWNsYXJhdGlvbnM6IFtCcmVhZGNydW1iQ29tcG9uZW50LCBCcmVhZGNydW1iSXRlbUNvbXBvbmVudCwgQnJlYWRjcnVtYkhpZGRlbkl0ZW1Db21wb25lbnRdXG59KVxuZXhwb3J0IGNsYXNzIEJyZWFkY3J1bWJNb2R1bGUge31cbiJdfQ==
@@ -1,5 +1,4 @@
1
1
  export * from './breadcrumb.module';
2
- export * from './breadcrumb-item.directive';
3
- export * from './breadcrumb-link.directive';
2
+ export * from './breadcrumb-item.component';
4
3
  export * from './breadcrumb.component';
5
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljX2FwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2xpYnMvY29yZS9zcmMvbGliL2JyZWFkY3J1bWIvcHVibGljX2FwaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLHFCQUFxQixDQUFDO0FBQ3BDLGNBQWMsNkJBQTZCLENBQUM7QUFDNUMsY0FBYyw2QkFBNkIsQ0FBQztBQUM1QyxjQUFjLHdCQUF3QixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9icmVhZGNydW1iLm1vZHVsZSc7XG5leHBvcnQgKiBmcm9tICcuL2JyZWFkY3J1bWItaXRlbS5kaXJlY3RpdmUnO1xuZXhwb3J0ICogZnJvbSAnLi9icmVhZGNydW1iLWxpbmsuZGlyZWN0aXZlJztcbmV4cG9ydCAqIGZyb20gJy4vYnJlYWRjcnVtYi5jb21wb25lbnQnO1xuIl19
4
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljX2FwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2xpYnMvY29yZS9zcmMvbGliL2JyZWFkY3J1bWIvcHVibGljX2FwaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLHFCQUFxQixDQUFDO0FBQ3BDLGNBQWMsNkJBQTZCLENBQUM7QUFDNUMsY0FBYyx3QkFBd0IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vYnJlYWRjcnVtYi5tb2R1bGUnO1xuZXhwb3J0ICogZnJvbSAnLi9icmVhZGNydW1iLWl0ZW0uY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vYnJlYWRjcnVtYi5jb21wb25lbnQnO1xuIl19