@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,6 +1,6 @@
1
1
  {
2
2
  "name": "@fundamental-ngx/core/action-bar",
3
- "version": "0.35.0-rc.10",
3
+ "version": "0.35.0-rc.13",
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.10",
3
+ "version": "0.35.0-rc.13",
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.10",
3
+ "version": "0.35.0-rc.13",
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.10",
3
+ "version": "0.35.0-rc.13",
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.10",
3
+ "version": "0.35.0-rc.13",
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.10",
3
+ "version": "0.35.0-rc.13",
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