@fundamental-ngx/core 0.35.0-rc.11 → 0.35.0-rc.12

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 (179) 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/text/text.component.mjs +1 -1
  46. package/esm2020/utils/public_api.mjs +2 -1
  47. package/esm2020/utils/services/resize-observer.service.mjs +83 -0
  48. package/facets/package.json +1 -1
  49. package/feed-input/package.json +1 -1
  50. package/feed-list-item/esm2020/components/item/feed-list-item.component.mjs +1 -1
  51. package/feed-list-item/fesm2015/fundamental-ngx-core-feed-list-item.mjs +1 -1
  52. package/feed-list-item/fesm2020/fundamental-ngx-core-feed-list-item.mjs +1 -1
  53. package/feed-list-item/package.json +1 -1
  54. package/fesm2015/fundamental-ngx-core-breadcrumb.mjs +112 -197
  55. package/fesm2015/fundamental-ngx-core-breadcrumb.mjs.map +1 -1
  56. package/fesm2015/fundamental-ngx-core-feed-list-item.mjs +1 -1
  57. package/fesm2015/fundamental-ngx-core-form.mjs +1 -1
  58. package/fesm2015/fundamental-ngx-core-link.mjs +46 -6
  59. package/fesm2015/fundamental-ngx-core-link.mjs.map +1 -1
  60. package/fesm2015/fundamental-ngx-core-multi-input.mjs +1 -1
  61. package/fesm2015/fundamental-ngx-core-popover.mjs +1 -0
  62. package/fesm2015/fundamental-ngx-core-popover.mjs.map +1 -1
  63. package/fesm2015/fundamental-ngx-core-text.mjs +1 -1
  64. package/fesm2015/fundamental-ngx-core-utils.mjs +81 -2
  65. package/fesm2015/fundamental-ngx-core-utils.mjs.map +1 -1
  66. package/fesm2020/fundamental-ngx-core-breadcrumb.mjs +111 -197
  67. package/fesm2020/fundamental-ngx-core-breadcrumb.mjs.map +1 -1
  68. package/fesm2020/fundamental-ngx-core-feed-list-item.mjs +1 -1
  69. package/fesm2020/fundamental-ngx-core-form.mjs +1 -1
  70. package/fesm2020/fundamental-ngx-core-link.mjs +44 -6
  71. package/fesm2020/fundamental-ngx-core-link.mjs.map +1 -1
  72. package/fesm2020/fundamental-ngx-core-multi-input.mjs +1 -1
  73. package/fesm2020/fundamental-ngx-core-popover.mjs +1 -0
  74. package/fesm2020/fundamental-ngx-core-popover.mjs.map +1 -1
  75. package/fesm2020/fundamental-ngx-core-text.mjs +1 -1
  76. package/fesm2020/fundamental-ngx-core-utils.mjs +81 -2
  77. package/fesm2020/fundamental-ngx-core-utils.mjs.map +1 -1
  78. package/file-uploader/package.json +1 -1
  79. package/fixed-card-layout/package.json +1 -1
  80. package/flexible-column-layout/package.json +1 -1
  81. package/form/esm2020/form-label/form-label.component.mjs +1 -1
  82. package/form/fesm2015/fundamental-ngx-core-form.mjs +1 -1
  83. package/form/fesm2020/fundamental-ngx-core-form.mjs +1 -1
  84. package/form/package.json +1 -1
  85. package/formatted-text/package.json +1 -1
  86. package/grid-list/package.json +1 -1
  87. package/icon/package.json +1 -1
  88. package/illustrated-message/package.json +1 -1
  89. package/infinite-scroll/package.json +1 -1
  90. package/info-label/package.json +1 -1
  91. package/inline-help/package.json +1 -1
  92. package/input-group/package.json +1 -1
  93. package/layout-grid/package.json +1 -1
  94. package/layout-panel/package.json +1 -1
  95. package/link/esm2020/link.component.mjs +45 -7
  96. package/link/fesm2015/fundamental-ngx-core-link.mjs +46 -6
  97. package/link/fesm2015/fundamental-ngx-core-link.mjs.map +1 -1
  98. package/link/fesm2020/fundamental-ngx-core-link.mjs +44 -6
  99. package/link/fesm2020/fundamental-ngx-core-link.mjs.map +1 -1
  100. package/link/link.component.d.ts +8 -2
  101. package/link/package.json +1 -1
  102. package/list/package.json +1 -1
  103. package/menu/package.json +1 -1
  104. package/message-box/package.json +1 -1
  105. package/message-strip/package.json +1 -1
  106. package/message-toast/package.json +1 -1
  107. package/micro-process-flow/package.json +1 -1
  108. package/mobile-mode/package.json +1 -1
  109. package/multi-input/esm2020/multi-input.component.mjs +1 -1
  110. package/multi-input/fesm2015/fundamental-ngx-core-multi-input.mjs +1 -1
  111. package/multi-input/fesm2020/fundamental-ngx-core-multi-input.mjs +1 -1
  112. package/multi-input/package.json +1 -1
  113. package/nested-list/package.json +1 -1
  114. package/notification/package.json +1 -1
  115. package/object-identifier/package.json +1 -1
  116. package/object-marker/package.json +1 -1
  117. package/object-number/package.json +1 -1
  118. package/object-status/package.json +1 -1
  119. package/package.json +1 -1
  120. package/pagination/package.json +1 -1
  121. package/panel/package.json +1 -1
  122. package/popover/esm2020/popover-service/popover.service.mjs +2 -1
  123. package/popover/fesm2015/fundamental-ngx-core-popover.mjs +1 -0
  124. package/popover/fesm2015/fundamental-ngx-core-popover.mjs.map +1 -1
  125. package/popover/fesm2020/fundamental-ngx-core-popover.mjs +1 -0
  126. package/popover/fesm2020/fundamental-ngx-core-popover.mjs.map +1 -1
  127. package/popover/package.json +1 -1
  128. package/product-switch/package.json +1 -1
  129. package/progress-indicator/package.json +1 -1
  130. package/quick-view/package.json +1 -1
  131. package/radio/package.json +1 -1
  132. package/rating-indicator/package.json +1 -1
  133. package/resizable-card-layout/package.json +1 -1
  134. package/scroll-spy/package.json +1 -1
  135. package/scrollbar/package.json +1 -1
  136. package/segmented-button/package.json +1 -1
  137. package/select/package.json +1 -1
  138. package/shared/package.json +1 -1
  139. package/shellbar/package.json +1 -1
  140. package/side-navigation/package.json +1 -1
  141. package/slider/package.json +1 -1
  142. package/split-button/package.json +1 -1
  143. package/splitter/package.json +1 -1
  144. package/status-indicator/package.json +1 -1
  145. package/step-input/package.json +1 -1
  146. package/switch/package.json +1 -1
  147. package/table/package.json +1 -1
  148. package/tabs/package.json +1 -1
  149. package/text/esm2020/text.component.mjs +1 -1
  150. package/text/fesm2015/fundamental-ngx-core-text.mjs +1 -1
  151. package/text/fesm2020/fundamental-ngx-core-text.mjs +1 -1
  152. package/text/package.json +1 -1
  153. package/theming/package.json +1 -1
  154. package/tile/package.json +1 -1
  155. package/time/package.json +1 -1
  156. package/time-picker/package.json +1 -1
  157. package/timeline/package.json +1 -1
  158. package/title/package.json +1 -1
  159. package/token/package.json +1 -1
  160. package/toolbar/package.json +1 -1
  161. package/tree/package.json +1 -1
  162. package/upload-collection/package.json +1 -1
  163. package/utils/esm2020/public_api.mjs +2 -1
  164. package/utils/esm2020/services/resize-observer.service.mjs +83 -0
  165. package/utils/fesm2015/fundamental-ngx-core-utils.mjs +81 -2
  166. package/utils/fesm2015/fundamental-ngx-core-utils.mjs.map +1 -1
  167. package/utils/fesm2020/fundamental-ngx-core-utils.mjs +81 -2
  168. package/utils/fesm2020/fundamental-ngx-core-utils.mjs.map +1 -1
  169. package/utils/package.json +1 -1
  170. package/utils/public_api.d.ts +1 -0
  171. package/utils/services/resize-observer.service.d.ts +29 -0
  172. package/vertical-navigation/package.json +1 -1
  173. package/wizard/package.json +1 -1
  174. package/breadcrumb/breadcrumb-item.directive.d.ts +0 -28
  175. package/breadcrumb/breadcrumb-link.directive.d.ts +0 -18
  176. package/breadcrumb/esm2020/breadcrumb-item.directive.mjs +0 -51
  177. package/breadcrumb/esm2020/breadcrumb-link.directive.mjs +0 -35
  178. package/esm2020/breadcrumb/breadcrumb-item.directive.mjs +0 -51
  179. package/esm2020/breadcrumb/breadcrumb-link.directive.mjs +0 -35
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@fundamental-ngx/core/action-bar",
3
- "version": "0.35.0-rc.11",
3
+ "version": "0.35.0-rc.12",
4
4
  "peerDependencies": {
5
5
  "@angular/common": "^13.0.0",
6
6
  "@angular/core": "^13.0.0"
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@fundamental-ngx/core/action-sheet",
3
- "version": "0.35.0-rc.11",
3
+ "version": "0.35.0-rc.12",
4
4
  "peerDependencies": {
5
5
  "@angular/common": "^13.0.0",
6
6
  "@angular/core": "^13.0.0"
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@fundamental-ngx/core/alert",
3
- "version": "0.35.0-rc.11",
3
+ "version": "0.35.0-rc.12",
4
4
  "peerDependencies": {
5
5
  "@angular/common": "^13.0.0",
6
6
  "@angular/core": "^13.0.0"
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@fundamental-ngx/core/avatar",
3
- "version": "0.35.0-rc.11",
3
+ "version": "0.35.0-rc.12",
4
4
  "peerDependencies": {
5
5
  "@angular/common": "^13.0.0",
6
6
  "@angular/core": "^13.0.0"
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@fundamental-ngx/core/avatar-group",
3
- "version": "0.35.0-rc.11",
3
+ "version": "0.35.0-rc.12",
4
4
  "peerDependencies": {
5
5
  "@angular/common": "^13.0.0",
6
6
  "@angular/core": "^13.0.0"
package/bar/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@fundamental-ngx/core/bar",
3
- "version": "0.35.0-rc.11",
3
+ "version": "0.35.0-rc.12",
4
4
  "peerDependencies": {
5
5
  "@angular/common": "^13.0.0",
6
6
  "@angular/core": "^13.0.0"
@@ -0,0 +1,23 @@
1
+ import { AfterViewInit, ChangeDetectorRef } from '@angular/core';
2
+ import { BreadcrumbItemComponent } from '../breadcrumb-item.component';
3
+ import { DomPortal } from '@angular/cdk/portal';
4
+ import * as i0 from "@angular/core";
5
+ export declare class BreadcrumbHiddenItemComponent implements AfterViewInit {
6
+ private _cdr;
7
+ /** Breadcrumb item ref, which is hidden from user and needs to be transformed into menu item */
8
+ breadcrumbItem: BreadcrumbItemComponent;
9
+ /** In case there is no link in Item and breadcrumb item is non-interactive, we move whole item content to menu item title */
10
+ breadcrumbItemPortal: DomPortal<Element>;
11
+ /** When breadcrumb item has link in it, we are moving link content to menu item title */
12
+ linkContentPortal: DomPortal;
13
+ constructor(_cdr: ChangeDetectorRef);
14
+ /** @hidden */
15
+ ngAfterViewInit(): void;
16
+ /**
17
+ * We catch interactions with item, Enter, Space, Mouse click and Touch click,
18
+ * if original element had router link we are proxying click to that element
19
+ * */
20
+ itemClicked($event: any): void;
21
+ static ɵfac: i0.ɵɵFactoryDeclaration<BreadcrumbHiddenItemComponent, never>;
22
+ static ɵcmp: i0.ɵɵComponentDeclaration<BreadcrumbHiddenItemComponent, "fd-breadcrumb-hidden-item", never, { "breadcrumbItem": "breadcrumbItem"; }, {}, never, never>;
23
+ }
@@ -0,0 +1,29 @@
1
+ import { ElementRef, Renderer2 } from '@angular/core';
2
+ import { LinkComponent } from '@fundamental-ngx/core/link';
3
+ import * as i0 from "@angular/core";
4
+ /**
5
+ * Breadcrumb item directive. Must have child breadcrumb link directives.
6
+ *
7
+ * ```html
8
+ * <fd-breadcrumb-item>
9
+ * <a fd-link [routerLink]="'#'">Breadcrumb Link</a>
10
+ * </fd-breadcrumb-item>
11
+ * ```
12
+ */
13
+ export declare class BreadcrumbItemComponent {
14
+ private _elementRef;
15
+ private renderer2;
16
+ /** @hidden */
17
+ get elementRef(): ElementRef<HTMLElement>;
18
+ /** @hidden */
19
+ breadcrumbLink: LinkComponent;
20
+ /** @hidden */
21
+ get width(): number;
22
+ constructor(_elementRef: ElementRef<HTMLElement>, renderer2: Renderer2);
23
+ /** @hidden */
24
+ get needsClickProxy(): boolean;
25
+ show: () => void;
26
+ hide: () => void;
27
+ static ɵfac: i0.ɵɵFactoryDeclaration<BreadcrumbItemComponent, never>;
28
+ static ɵcmp: i0.ɵɵComponentDeclaration<BreadcrumbItemComponent, "fd-breadcrumb-item", never, {}, {}, ["breadcrumbLink"], ["*"]>;
29
+ }
@@ -1,10 +1,9 @@
1
- import { AfterContentInit, ChangeDetectorRef, ElementRef, OnDestroy, OnInit, QueryList } from '@angular/core';
2
- import { BreadcrumbItemDirective } from './breadcrumb-item.directive';
3
- import { RtlService } from '@fundamental-ngx/core/utils';
1
+ import { AfterViewInit, ChangeDetectorRef, ElementRef, NgZone, OnDestroy, OnInit, QueryList } from '@angular/core';
2
+ import { BreadcrumbItemComponent } from './breadcrumb-item.component';
3
+ import { ContentDensityService, ResizeObserverService, RtlService } from '@fundamental-ngx/core/utils';
4
4
  import { BehaviorSubject } from 'rxjs';
5
5
  import { MenuComponent } from '@fundamental-ngx/core/menu';
6
6
  import { Placement } from '@fundamental-ngx/core/shared';
7
- import { ContentDensityService } from '@fundamental-ngx/core/utils';
8
7
  import * as i0 from "@angular/core";
9
8
  /**
10
9
  * Breadcrumb parent wrapper directive. Must have breadcrumb item child directives.
@@ -12,26 +11,26 @@ import * as i0 from "@angular/core";
12
11
  * ```html
13
12
  * <fd-breadcrumb>
14
13
  * <fd-breadcrumb-item>
15
- * <a fd-breadcrumb-link [routerLink]="'#'">Breadcrumb Link</a>
14
+ * <a fd-link [routerLink]="'#'">Breadcrumb Link</a>
16
15
  * </fd-breadcrumb-item>
17
16
  * </fd-breadcrumb>
18
17
  * ```
19
18
  */
20
- export declare class BreadcrumbComponent implements AfterContentInit, OnInit, OnDestroy {
21
- elementRef: ElementRef;
19
+ export declare class BreadcrumbComponent implements AfterViewInit, OnInit, OnDestroy {
20
+ elementRef: ElementRef<Element>;
22
21
  private _rtlService;
23
22
  private _contentDensityService;
24
23
  private _cdRef;
24
+ private _resizeObserver;
25
+ private _ngZone;
25
26
  /** Whenever links wrapped inside overflow should be displayed in compact mode */
26
27
  compact?: boolean;
27
28
  /** @hidden */
28
- breadcrumbItems: QueryList<BreadcrumbItemDirective>;
29
+ breadcrumbItems: QueryList<BreadcrumbItemComponent>;
29
30
  /** @hidden */
30
31
  menuComponent: MenuComponent;
31
32
  /** @hidden */
32
- collapsedBreadcrumbItems: Array<BreadcrumbItemDirective>;
33
- /** @hidden used to compare to the current width to know whether to collapse or expand breadcrumbs */
34
- previousContainerWidth: number;
33
+ collapsedBreadcrumbItems: Array<BreadcrumbItemComponent>;
35
34
  /** @hidden */
36
35
  placement$: BehaviorSubject<Placement>;
37
36
  /**
@@ -39,46 +38,24 @@ export declare class BreadcrumbComponent implements AfterContentInit, OnInit, On
39
38
  * performs better. When not provided, the immediate parent element's width will be used.
40
39
  */
41
40
  containerElement: HTMLElement;
42
- /** Whether or not to append items to the overflow dropdown in reverse order. Default is true. */
41
+ /** Whether to append items to the overflow dropdown in reverse order. Default is true. */
43
42
  reverse: boolean;
44
43
  /** @hidden */
45
44
  containerBoundary: number;
46
45
  /** @hidden */
47
46
  private _subscriptions;
48
- constructor(elementRef: ElementRef, _rtlService: RtlService, _contentDensityService: ContentDensityService, _cdRef: ChangeDetectorRef);
49
47
  /** @hidden */
50
- ngAfterContentInit(): void;
48
+ private _itemToSize;
49
+ constructor(elementRef: ElementRef<Element>, _rtlService: RtlService, _contentDensityService: ContentDensityService, _cdRef: ChangeDetectorRef, _resizeObserver: ResizeObserverService, _ngZone: NgZone);
51
50
  /** @hidden */
52
51
  ngOnInit(): void;
52
+ ngAfterViewInit(): void;
53
53
  /** @hidden */
54
54
  ngOnDestroy(): void;
55
55
  /** @hidden */
56
56
  onResize(): void;
57
57
  /** @hidden */
58
- keyDownHandle(event: KeyboardEvent): void;
59
- /** @hidden */
60
- getContainerBoundary(): number;
61
- /**
62
- * @hidden
63
- *
64
- * This function moves breadcrumbs from the original QueryList of BreadCrumbItemDirectives into the array of
65
- * collapsedBreadcrumbItems.
66
- * */
67
- collapseBreadcrumbs(): void;
68
- /**
69
- * @hidden
70
- *
71
- * This function removes breadcrumb items from the collapsedBreadcrumbItems array and makes them visible again in the
72
- * original QueryList of BreadcrumbItemDirectives.
73
- * */
74
- expandBreadcrumbs(): void;
75
- private fitInBoundries;
76
- private getCollapsedItem;
77
- private getBreadcrumbToCheck;
78
- private applyStylesToBreadcrumb;
79
- private popLastElement;
80
- private makeBreadcrumbVisible;
81
- private makeBreadcrumbInvisible;
82
- static ɵfac: i0.ɵɵFactoryDeclaration<BreadcrumbComponent, [null, { optional: true; }, { optional: true; }, null]>;
58
+ keyDownHandle(event: Event): void;
59
+ static ɵfac: i0.ɵɵFactoryDeclaration<BreadcrumbComponent, [null, { optional: true; }, { optional: true; }, null, null, null]>;
83
60
  static ɵcmp: i0.ɵɵComponentDeclaration<BreadcrumbComponent, "fd-breadcrumb", never, { "compact": "compact"; "containerElement": "containerElement"; "reverse": "reverse"; }, {}, ["breadcrumbItems"], ["*"]>;
84
61
  }
@@ -1,14 +1,16 @@
1
1
  import * as i0 from "@angular/core";
2
2
  import * as i1 from "./breadcrumb.component";
3
- import * as i2 from "./breadcrumb-item.directive";
4
- import * as i3 from "./breadcrumb-link.directive";
3
+ import * as i2 from "./breadcrumb-item.component";
4
+ import * as i3 from "./breadcrumb-hidden-item/breadcrumb-hidden-item.component";
5
5
  import * as i4 from "@angular/common";
6
6
  import * as i5 from "@fundamental-ngx/core/icon";
7
7
  import * as i6 from "@fundamental-ngx/core/popover";
8
8
  import * as i7 from "@fundamental-ngx/core/menu";
9
- import * as i8 from "@angular/router";
9
+ import * as i8 from "@fundamental-ngx/core/link";
10
+ import * as i9 from "@angular/cdk/portal";
11
+ import * as i10 from "@fundamental-ngx/core/utils";
10
12
  export declare class BreadcrumbModule {
11
13
  static ɵfac: i0.ɵɵFactoryDeclaration<BreadcrumbModule, never>;
12
- static ɵmod: i0.ɵɵNgModuleDeclaration<BreadcrumbModule, [typeof i1.BreadcrumbComponent, typeof i2.BreadcrumbItemDirective, typeof i3.BreadcrumbLinkDirective], [typeof i4.CommonModule, typeof i5.IconModule, typeof i6.PopoverModule, typeof i7.MenuModule, typeof i8.RouterModule], [typeof i1.BreadcrumbComponent, typeof i2.BreadcrumbItemDirective, typeof i3.BreadcrumbLinkDirective]>;
14
+ static ɵmod: i0.ɵɵNgModuleDeclaration<BreadcrumbModule, [typeof i1.BreadcrumbComponent, typeof i2.BreadcrumbItemComponent, typeof i3.BreadcrumbHiddenItemComponent], [typeof i4.CommonModule, typeof i5.IconModule, typeof i6.PopoverModule, typeof i7.MenuModule, typeof i8.LinkModule, typeof i9.PortalModule, typeof i10.PipeModule], [typeof i1.BreadcrumbComponent, typeof i2.BreadcrumbItemComponent, typeof i8.LinkModule]>;
13
15
  static ɵinj: i0.ɵɵInjectorDeclaration<BreadcrumbModule>;
14
16
  }
@@ -0,0 +1,39 @@
1
+ import { ChangeDetectionStrategy, ChangeDetectorRef, Component, Input } from '@angular/core';
2
+ import { BreadcrumbItemComponent } from '../breadcrumb-item.component';
3
+ import { DomPortal } from '@angular/cdk/portal';
4
+ import * as i0 from "@angular/core";
5
+ import * as i1 from "@fundamental-ngx/core/menu";
6
+ import * as i2 from "@angular/common";
7
+ import * as i3 from "@angular/cdk/portal";
8
+ export class BreadcrumbHiddenItemComponent {
9
+ constructor(_cdr) {
10
+ this._cdr = _cdr;
11
+ }
12
+ /** @hidden */
13
+ ngAfterViewInit() {
14
+ if (this.breadcrumbItem.breadcrumbLink) {
15
+ this.linkContentPortal = new DomPortal(this.breadcrumbItem.breadcrumbLink.contentSpan.nativeElement);
16
+ }
17
+ this.breadcrumbItemPortal = new DomPortal(this.breadcrumbItem.elementRef.nativeElement.firstElementChild);
18
+ this._cdr.detectChanges();
19
+ }
20
+ /**
21
+ * We catch interactions with item, Enter, Space, Mouse click and Touch click,
22
+ * if original element had router link we are proxying click to that element
23
+ * */
24
+ itemClicked($event) {
25
+ if (this.breadcrumbItem.needsClickProxy) {
26
+ $event.preventDefault();
27
+ this.breadcrumbItem.breadcrumbLink.elementRef().nativeElement.click();
28
+ }
29
+ }
30
+ }
31
+ BreadcrumbHiddenItemComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.4", ngImport: i0, type: BreadcrumbHiddenItemComponent, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
32
+ BreadcrumbHiddenItemComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.4", type: BreadcrumbHiddenItemComponent, selector: "fd-breadcrumb-hidden-item", inputs: { breadcrumbItem: "breadcrumbItem" }, ngImport: i0, template: "<li fd-menu-item [disabled]=\"breadcrumbItem.breadcrumbLink ? breadcrumbItem.breadcrumbLink.disabled : false\">\n <a\n fd-menu-interactive\n (click)=\"itemClicked($event)\"\n (keydown.enter)=\"itemClicked($event)\"\n (keydown.space)=\"itemClicked($event)\"\n >\n <ng-container *ngIf=\"breadcrumbItem?.breadcrumbLink; else portalContent\">\n <ng-container *ngIf=\"breadcrumbItem.breadcrumbLink._prefixIconName\">\n <fd-menu-addon\n position=\"before\"\n [glyph]=\"breadcrumbItem.breadcrumbLink._prefixIconName\"\n ></fd-menu-addon>\n </ng-container>\n <span fd-menu-title>\n <ng-container [cdkPortalOutlet]=\"linkContentPortal\"></ng-container>\n </span>\n <ng-container *ngIf=\"breadcrumbItem.breadcrumbLink._postfixIconName\">\n <fd-menu-addon [glyph]=\"breadcrumbItem.breadcrumbLink._postfixIconName\"></fd-menu-addon>\n </ng-container>\n </ng-container>\n <ng-template #portalContent>\n <span fd-menu-title>\n <ng-container [cdkPortalOutlet]=\"breadcrumbItemPortal\"></ng-container>\n </span>\n </ng-template>\n </a>\n</li>\n", components: [{ type: i1.MenuItemComponent, selector: "li[fd-menu-item]", inputs: ["disabled", "itemId", "submenu"], outputs: ["onSelect"], exportAs: ["fd-menu-item"] }, { type: i1.MenuAddonDirective, selector: "fd-menu-addon", inputs: ["position", "glyph", "submenuIndicator", "ariaHidden"] }], directives: [{ type: i1.MenuInteractiveDirective, selector: "[fd-menu-interactive]" }, { type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i1.MenuTitleDirective, selector: "[fd-menu-title]" }, { type: i3.CdkPortalOutlet, selector: "[cdkPortalOutlet]", inputs: ["cdkPortalOutlet"], outputs: ["attached"], exportAs: ["cdkPortalOutlet"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
33
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.4", ngImport: i0, type: BreadcrumbHiddenItemComponent, decorators: [{
34
+ type: Component,
35
+ args: [{ selector: 'fd-breadcrumb-hidden-item', changeDetection: ChangeDetectionStrategy.OnPush, template: "<li fd-menu-item [disabled]=\"breadcrumbItem.breadcrumbLink ? breadcrumbItem.breadcrumbLink.disabled : false\">\n <a\n fd-menu-interactive\n (click)=\"itemClicked($event)\"\n (keydown.enter)=\"itemClicked($event)\"\n (keydown.space)=\"itemClicked($event)\"\n >\n <ng-container *ngIf=\"breadcrumbItem?.breadcrumbLink; else portalContent\">\n <ng-container *ngIf=\"breadcrumbItem.breadcrumbLink._prefixIconName\">\n <fd-menu-addon\n position=\"before\"\n [glyph]=\"breadcrumbItem.breadcrumbLink._prefixIconName\"\n ></fd-menu-addon>\n </ng-container>\n <span fd-menu-title>\n <ng-container [cdkPortalOutlet]=\"linkContentPortal\"></ng-container>\n </span>\n <ng-container *ngIf=\"breadcrumbItem.breadcrumbLink._postfixIconName\">\n <fd-menu-addon [glyph]=\"breadcrumbItem.breadcrumbLink._postfixIconName\"></fd-menu-addon>\n </ng-container>\n </ng-container>\n <ng-template #portalContent>\n <span fd-menu-title>\n <ng-container [cdkPortalOutlet]=\"breadcrumbItemPortal\"></ng-container>\n </span>\n </ng-template>\n </a>\n</li>\n" }]
36
+ }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }]; }, propDecorators: { breadcrumbItem: [{
37
+ type: Input
38
+ }] } });
39
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnJlYWRjcnVtYi1oaWRkZW4taXRlbS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvcmUvc3JjL2xpYi9icmVhZGNydW1iL2JyZWFkY3J1bWItaGlkZGVuLWl0ZW0vYnJlYWRjcnVtYi1oaWRkZW4taXRlbS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvcmUvc3JjL2xpYi9icmVhZGNydW1iL2JyZWFkY3J1bWItaGlkZGVuLWl0ZW0vYnJlYWRjcnVtYi1oaWRkZW4taXRlbS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQWlCLHVCQUF1QixFQUFFLGlCQUFpQixFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDNUcsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDdkUsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLHFCQUFxQixDQUFDOzs7OztBQU9oRCxNQUFNLE9BQU8sNkJBQTZCO0lBV3RDLFlBQW9CLElBQXVCO1FBQXZCLFNBQUksR0FBSixJQUFJLENBQW1CO0lBQUcsQ0FBQztJQUUvQyxjQUFjO0lBQ2QsZUFBZTtRQUNYLElBQUksSUFBSSxDQUFDLGNBQWMsQ0FBQyxjQUFjLEVBQUU7WUFDcEMsSUFBSSxDQUFDLGlCQUFpQixHQUFHLElBQUksU0FBUyxDQUNsQyxJQUFJLENBQUMsY0FBYyxDQUFDLGNBQWMsQ0FBQyxXQUFXLENBQUMsYUFBYSxDQUMvRCxDQUFDO1NBQ0w7UUFDRCxJQUFJLENBQUMsb0JBQW9CLEdBQUcsSUFBSSxTQUFTLENBQ3JDLElBQUksQ0FBQyxjQUFjLENBQUMsVUFBVSxDQUFDLGFBQWEsQ0FBQyxpQkFBNEIsQ0FDNUUsQ0FBQztRQUNGLElBQUksQ0FBQyxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7SUFDOUIsQ0FBQztJQUVEOzs7U0FHSztJQUNMLFdBQVcsQ0FBQyxNQUFXO1FBQ25CLElBQUksSUFBSSxDQUFDLGNBQWMsQ0FBQyxlQUFlLEVBQUU7WUFDckMsTUFBTSxDQUFDLGNBQWMsRUFBRSxDQUFDO1lBQ3hCLElBQUksQ0FBQyxjQUFjLENBQUMsY0FBYyxDQUFDLFVBQVUsRUFBRSxDQUFDLGFBQWEsQ0FBQyxLQUFLLEVBQUUsQ0FBQztTQUN6RTtJQUNMLENBQUM7OzBIQW5DUSw2QkFBNkI7OEdBQTdCLDZCQUE2QiwrR0NUMUMsZ3hDQTRCQTsyRkRuQmEsNkJBQTZCO2tCQUx6QyxTQUFTOytCQUNJLDJCQUEyQixtQkFFcEIsdUJBQXVCLENBQUMsTUFBTTt3R0FLL0MsY0FBYztzQkFEYixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQWZ0ZXJWaWV3SW5pdCwgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENoYW5nZURldGVjdG9yUmVmLCBDb21wb25lbnQsIElucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBCcmVhZGNydW1iSXRlbUNvbXBvbmVudCB9IGZyb20gJy4uL2JyZWFkY3J1bWItaXRlbS5jb21wb25lbnQnO1xuaW1wb3J0IHsgRG9tUG9ydGFsIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL3BvcnRhbCc7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnZmQtYnJlYWRjcnVtYi1oaWRkZW4taXRlbScsXG4gICAgdGVtcGxhdGVVcmw6ICcuL2JyZWFkY3J1bWItaGlkZGVuLWl0ZW0uY29tcG9uZW50Lmh0bWwnLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoXG59KVxuZXhwb3J0IGNsYXNzIEJyZWFkY3J1bWJIaWRkZW5JdGVtQ29tcG9uZW50IGltcGxlbWVudHMgQWZ0ZXJWaWV3SW5pdCB7XG4gICAgLyoqIEJyZWFkY3J1bWIgaXRlbSByZWYsIHdoaWNoIGlzIGhpZGRlbiBmcm9tIHVzZXIgYW5kIG5lZWRzIHRvIGJlIHRyYW5zZm9ybWVkIGludG8gbWVudSBpdGVtICovXG4gICAgQElucHV0KClcbiAgICBicmVhZGNydW1iSXRlbTogQnJlYWRjcnVtYkl0ZW1Db21wb25lbnQ7XG5cbiAgICAvKiogSW4gY2FzZSB0aGVyZSBpcyBubyBsaW5rIGluIEl0ZW0gYW5kIGJyZWFkY3J1bWIgaXRlbSBpcyBub24taW50ZXJhY3RpdmUsIHdlIG1vdmUgd2hvbGUgaXRlbSBjb250ZW50IHRvIG1lbnUgaXRlbSB0aXRsZSAqL1xuICAgIGJyZWFkY3J1bWJJdGVtUG9ydGFsOiBEb21Qb3J0YWw8RWxlbWVudD47XG5cbiAgICAvKiogV2hlbiBicmVhZGNydW1iIGl0ZW0gaGFzIGxpbmsgaW4gaXQsIHdlIGFyZSBtb3ZpbmcgbGluayBjb250ZW50IHRvIG1lbnUgaXRlbSB0aXRsZSAqL1xuICAgIGxpbmtDb250ZW50UG9ydGFsOiBEb21Qb3J0YWw7XG5cbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIF9jZHI6IENoYW5nZURldGVjdG9yUmVmKSB7fVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLmJyZWFkY3J1bWJJdGVtLmJyZWFkY3J1bWJMaW5rKSB7XG4gICAgICAgICAgICB0aGlzLmxpbmtDb250ZW50UG9ydGFsID0gbmV3IERvbVBvcnRhbDxIVE1MRWxlbWVudD4oXG4gICAgICAgICAgICAgICAgdGhpcy5icmVhZGNydW1iSXRlbS5icmVhZGNydW1iTGluay5jb250ZW50U3Bhbi5uYXRpdmVFbGVtZW50XG4gICAgICAgICAgICApO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuYnJlYWRjcnVtYkl0ZW1Qb3J0YWwgPSBuZXcgRG9tUG9ydGFsKFxuICAgICAgICAgICAgdGhpcy5icmVhZGNydW1iSXRlbS5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQuZmlyc3RFbGVtZW50Q2hpbGQgYXMgRWxlbWVudFxuICAgICAgICApO1xuICAgICAgICB0aGlzLl9jZHIuZGV0ZWN0Q2hhbmdlcygpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFdlIGNhdGNoIGludGVyYWN0aW9ucyB3aXRoIGl0ZW0sIEVudGVyLCBTcGFjZSwgTW91c2UgY2xpY2sgYW5kIFRvdWNoIGNsaWNrLFxuICAgICAqIGlmIG9yaWdpbmFsIGVsZW1lbnQgaGFkIHJvdXRlciBsaW5rIHdlIGFyZSBwcm94eWluZyBjbGljayB0byB0aGF0IGVsZW1lbnRcbiAgICAgKiAqL1xuICAgIGl0ZW1DbGlja2VkKCRldmVudDogYW55KTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLmJyZWFkY3J1bWJJdGVtLm5lZWRzQ2xpY2tQcm94eSkge1xuICAgICAgICAgICAgJGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgICB0aGlzLmJyZWFkY3J1bWJJdGVtLmJyZWFkY3J1bWJMaW5rLmVsZW1lbnRSZWYoKS5uYXRpdmVFbGVtZW50LmNsaWNrKCk7XG4gICAgICAgIH1cbiAgICB9XG59XG4iLCI8bGkgZmQtbWVudS1pdGVtIFtkaXNhYmxlZF09XCJicmVhZGNydW1iSXRlbS5icmVhZGNydW1iTGluayA/IGJyZWFkY3J1bWJJdGVtLmJyZWFkY3J1bWJMaW5rLmRpc2FibGVkIDogZmFsc2VcIj5cbiAgICA8YVxuICAgICAgICBmZC1tZW51LWludGVyYWN0aXZlXG4gICAgICAgIChjbGljayk9XCJpdGVtQ2xpY2tlZCgkZXZlbnQpXCJcbiAgICAgICAgKGtleWRvd24uZW50ZXIpPVwiaXRlbUNsaWNrZWQoJGV2ZW50KVwiXG4gICAgICAgIChrZXlkb3duLnNwYWNlKT1cIml0ZW1DbGlja2VkKCRldmVudClcIlxuICAgID5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImJyZWFkY3J1bWJJdGVtPy5icmVhZGNydW1iTGluazsgZWxzZSBwb3J0YWxDb250ZW50XCI+XG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiYnJlYWRjcnVtYkl0ZW0uYnJlYWRjcnVtYkxpbmsuX3ByZWZpeEljb25OYW1lXCI+XG4gICAgICAgICAgICAgICAgPGZkLW1lbnUtYWRkb25cbiAgICAgICAgICAgICAgICAgICAgcG9zaXRpb249XCJiZWZvcmVcIlxuICAgICAgICAgICAgICAgICAgICBbZ2x5cGhdPVwiYnJlYWRjcnVtYkl0ZW0uYnJlYWRjcnVtYkxpbmsuX3ByZWZpeEljb25OYW1lXCJcbiAgICAgICAgICAgICAgICA+PC9mZC1tZW51LWFkZG9uPlxuICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICA8c3BhbiBmZC1tZW51LXRpdGxlPlxuICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgW2Nka1BvcnRhbE91dGxldF09XCJsaW5rQ29udGVudFBvcnRhbFwiPjwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImJyZWFkY3J1bWJJdGVtLmJyZWFkY3J1bWJMaW5rLl9wb3N0Zml4SWNvbk5hbWVcIj5cbiAgICAgICAgICAgICAgICA8ZmQtbWVudS1hZGRvbiBbZ2x5cGhdPVwiYnJlYWRjcnVtYkl0ZW0uYnJlYWRjcnVtYkxpbmsuX3Bvc3RmaXhJY29uTmFtZVwiPjwvZmQtbWVudS1hZGRvbj5cbiAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPG5nLXRlbXBsYXRlICNwb3J0YWxDb250ZW50PlxuICAgICAgICAgICAgPHNwYW4gZmQtbWVudS10aXRsZT5cbiAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyIFtjZGtQb3J0YWxPdXRsZXRdPVwiYnJlYWRjcnVtYkl0ZW1Qb3J0YWxcIj48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICA8L2E+XG48L2xpPlxuIl19
@@ -0,0 +1,48 @@
1
+ import { Component, ContentChild, ElementRef, forwardRef, Renderer2 } from '@angular/core';
2
+ import { LinkComponent } from '@fundamental-ngx/core/link';
3
+ import * as i0 from "@angular/core";
4
+ /**
5
+ * Breadcrumb item directive. Must have child breadcrumb link directives.
6
+ *
7
+ * ```html
8
+ * <fd-breadcrumb-item>
9
+ * <a fd-link [routerLink]="'#'">Breadcrumb Link</a>
10
+ * </fd-breadcrumb-item>
11
+ * ```
12
+ */
13
+ export class BreadcrumbItemComponent {
14
+ constructor(_elementRef, renderer2) {
15
+ this._elementRef = _elementRef;
16
+ this.renderer2 = renderer2;
17
+ this.show = () => this.renderer2.setStyle(this._elementRef.nativeElement, 'display', 'inline-block');
18
+ this.hide = () => this.renderer2.setStyle(this._elementRef.nativeElement, 'display', 'none');
19
+ }
20
+ /** @hidden */
21
+ get elementRef() {
22
+ return this._elementRef;
23
+ }
24
+ /** @hidden */
25
+ get width() {
26
+ return this._elementRef.nativeElement.getBoundingClientRect().width;
27
+ }
28
+ /** @hidden */
29
+ get needsClickProxy() {
30
+ return (!!this.breadcrumbLink?.elementRef().nativeElement.getAttribute('href') || !!this.breadcrumbLink.routerLink);
31
+ }
32
+ }
33
+ BreadcrumbItemComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.4", ngImport: i0, type: BreadcrumbItemComponent, deps: [{ token: i0.ElementRef }, { token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Component });
34
+ BreadcrumbItemComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.4", type: BreadcrumbItemComponent, selector: "fd-breadcrumb-item", host: { classAttribute: "fd-breadcrumb__item" }, queries: [{ propertyName: "breadcrumbLink", first: true, predicate: i0.forwardRef(function () { return LinkComponent; }), descendants: true }], ngImport: i0, template: '<div style="display: inline"><ng-content></ng-content></div>', isInline: true });
35
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.4", ngImport: i0, type: BreadcrumbItemComponent, decorators: [{
36
+ type: Component,
37
+ args: [{
38
+ selector: 'fd-breadcrumb-item',
39
+ template: '<div style="display: inline"><ng-content></ng-content></div>',
40
+ host: {
41
+ class: 'fd-breadcrumb__item'
42
+ }
43
+ }]
44
+ }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i0.Renderer2 }]; }, propDecorators: { breadcrumbLink: [{
45
+ type: ContentChild,
46
+ args: [forwardRef(() => LinkComponent)]
47
+ }] } });
48
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnJlYWRjcnVtYi1pdGVtLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2xpYnMvY29yZS9zcmMvbGliL2JyZWFkY3J1bWIvYnJlYWRjcnVtYi1pdGVtLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxVQUFVLEVBQUUsVUFBVSxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzRixPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7O0FBRTNEOzs7Ozs7OztHQVFHO0FBUUgsTUFBTSxPQUFPLHVCQUF1QjtJQWVoQyxZQUFvQixXQUFvQyxFQUFVLFNBQW9CO1FBQWxFLGdCQUFXLEdBQVgsV0FBVyxDQUF5QjtRQUFVLGNBQVMsR0FBVCxTQUFTLENBQVc7UUFTdEYsU0FBSSxHQUFHLEdBQVMsRUFBRSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsYUFBYSxFQUFFLFNBQVMsRUFBRSxjQUFjLENBQUMsQ0FBQztRQUN0RyxTQUFJLEdBQUcsR0FBUyxFQUFFLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxhQUFhLEVBQUUsU0FBUyxFQUFFLE1BQU0sQ0FBQyxDQUFDO0lBVkwsQ0FBQztJQWQxRixjQUFjO0lBQ2QsSUFBSSxVQUFVO1FBQ1YsT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDO0lBQzVCLENBQUM7SUFNRCxjQUFjO0lBQ2QsSUFBSSxLQUFLO1FBQ0wsT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDLGFBQWEsQ0FBQyxxQkFBcUIsRUFBRSxDQUFDLEtBQUssQ0FBQztJQUN4RSxDQUFDO0lBSUQsY0FBYztJQUNkLElBQUksZUFBZTtRQUNmLE9BQU8sQ0FDSCxDQUFDLENBQUMsSUFBSSxDQUFDLGNBQWMsRUFBRSxVQUFVLEVBQUUsQ0FBQyxhQUFhLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLFVBQVUsQ0FDN0csQ0FBQztJQUNOLENBQUM7O29IQXRCUSx1QkFBdUI7d0dBQXZCLHVCQUF1QiwwTEFPRCxhQUFhLG9EQVpsQyw4REFBOEQ7MkZBSy9ELHVCQUF1QjtrQkFQbkMsU0FBUzttQkFBQztvQkFDUCxRQUFRLEVBQUUsb0JBQW9CO29CQUM5QixRQUFRLEVBQUUsOERBQThEO29CQUN4RSxJQUFJLEVBQUU7d0JBQ0YsS0FBSyxFQUFFLHFCQUFxQjtxQkFDL0I7aUJBQ0o7eUhBU0csY0FBYztzQkFEYixZQUFZO3VCQUFDLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxhQUFhLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIENvbnRlbnRDaGlsZCwgRWxlbWVudFJlZiwgZm9yd2FyZFJlZiwgUmVuZGVyZXIyIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBMaW5rQ29tcG9uZW50IH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9jb3JlL2xpbmsnO1xuXG4vKipcbiAqIEJyZWFkY3J1bWIgaXRlbSBkaXJlY3RpdmUuIE11c3QgaGF2ZSBjaGlsZCBicmVhZGNydW1iIGxpbmsgZGlyZWN0aXZlcy5cbiAqXG4gKiBgYGBodG1sXG4gKiA8ZmQtYnJlYWRjcnVtYi1pdGVtPlxuICogICAgIDxhIGZkLWxpbmsgW3JvdXRlckxpbmtdPVwiJyMnXCI+QnJlYWRjcnVtYiBMaW5rPC9hPlxuICogPC9mZC1icmVhZGNydW1iLWl0ZW0+XG4gKiBgYGBcbiAqL1xuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdmZC1icmVhZGNydW1iLWl0ZW0nLFxuICAgIHRlbXBsYXRlOiAnPGRpdiBzdHlsZT1cImRpc3BsYXk6IGlubGluZVwiPjxuZy1jb250ZW50PjwvbmctY29udGVudD48L2Rpdj4nLFxuICAgIGhvc3Q6IHtcbiAgICAgICAgY2xhc3M6ICdmZC1icmVhZGNydW1iX19pdGVtJ1xuICAgIH1cbn0pXG5leHBvcnQgY2xhc3MgQnJlYWRjcnVtYkl0ZW1Db21wb25lbnQge1xuICAgIC8qKiBAaGlkZGVuICovXG4gICAgZ2V0IGVsZW1lbnRSZWYoKTogRWxlbWVudFJlZjxIVE1MRWxlbWVudD4ge1xuICAgICAgICByZXR1cm4gdGhpcy5fZWxlbWVudFJlZjtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIEBDb250ZW50Q2hpbGQoZm9yd2FyZFJlZigoKSA9PiBMaW5rQ29tcG9uZW50KSlcbiAgICBicmVhZGNydW1iTGluazogTGlua0NvbXBvbmVudDtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgZ2V0IHdpZHRoKCk6IG51bWJlciB7XG4gICAgICAgIHJldHVybiB0aGlzLl9lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkud2lkdGg7XG4gICAgfVxuXG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSBfZWxlbWVudFJlZjogRWxlbWVudFJlZjxIVE1MRWxlbWVudD4sIHByaXZhdGUgcmVuZGVyZXIyOiBSZW5kZXJlcjIpIHt9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIGdldCBuZWVkc0NsaWNrUHJveHkoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICAhIXRoaXMuYnJlYWRjcnVtYkxpbms/LmVsZW1lbnRSZWYoKS5uYXRpdmVFbGVtZW50LmdldEF0dHJpYnV0ZSgnaHJlZicpIHx8ICEhdGhpcy5icmVhZGNydW1iTGluay5yb3V0ZXJMaW5rXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgc2hvdyA9ICgpOiB2b2lkID0+IHRoaXMucmVuZGVyZXIyLnNldFN0eWxlKHRoaXMuX2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudCwgJ2Rpc3BsYXknLCAnaW5saW5lLWJsb2NrJyk7XG4gICAgaGlkZSA9ICgpOiB2b2lkID0+IHRoaXMucmVuZGVyZXIyLnNldFN0eWxlKHRoaXMuX2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudCwgJ2Rpc3BsYXknLCAnbm9uZScpO1xufVxuIl19