@leanix/components 0.4.504 → 0.4.506

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 (32) hide show
  1. package/esm2022/lib/core-ui/components/badge/badge.component.mjs +1 -9
  2. package/esm2022/lib/core-ui/components/banner/banner.component.mjs +1 -11
  3. package/esm2022/lib/core-ui/components/button/button.component.mjs +1 -9
  4. package/esm2022/lib/core-ui/components/card/card.component.mjs +1 -9
  5. package/esm2022/lib/core-ui/components/counter/counter.component.mjs +1 -9
  6. package/esm2022/lib/core-ui/components/skeleton/skeleton.component.mjs +1 -12
  7. package/esm2022/lib/core-ui/components/tiny-spinner/tiny-spinner.component.mjs +1 -9
  8. package/esm2022/lib/core-ui/core-ui.constants.mjs +12 -9
  9. package/esm2022/lib/core-ui/tooltip/tooltip.directive.mjs +1 -9
  10. package/esm2022/lib/forms-ui/components/breadcrumb/breadcrumb.component.mjs +1 -9
  11. package/esm2022/lib/forms-ui/components/date-input/date-input.component.mjs +1 -9
  12. package/esm2022/lib/forms-ui/components/single-select/single-select.component.mjs +1 -12
  13. package/esm2022/lib/forms-ui/components/switch/switch.component.mjs +1 -9
  14. package/esm2022/lib/popover-ui/components/popover/popover.component.mjs +3 -9
  15. package/esm2022/lib/tab-ui/components/tab-group/tab-group.component.mjs +8 -24
  16. package/fesm2022/leanix-components.mjs +20 -143
  17. package/fesm2022/leanix-components.mjs.map +1 -1
  18. package/lib/core-ui/components/badge/badge.component.d.ts +0 -8
  19. package/lib/core-ui/components/banner/banner.component.d.ts +0 -10
  20. package/lib/core-ui/components/button/button.component.d.ts +0 -8
  21. package/lib/core-ui/components/card/card.component.d.ts +0 -8
  22. package/lib/core-ui/components/counter/counter.component.d.ts +0 -8
  23. package/lib/core-ui/components/skeleton/skeleton.component.d.ts +0 -11
  24. package/lib/core-ui/components/tiny-spinner/tiny-spinner.component.d.ts +0 -8
  25. package/lib/core-ui/tooltip/tooltip.directive.d.ts +0 -8
  26. package/lib/forms-ui/components/breadcrumb/breadcrumb.component.d.ts +0 -8
  27. package/lib/forms-ui/components/date-input/date-input.component.d.ts +0 -8
  28. package/lib/forms-ui/components/single-select/single-select.component.d.ts +0 -11
  29. package/lib/forms-ui/components/switch/switch.component.d.ts +0 -8
  30. package/lib/popover-ui/components/popover/popover.component.d.ts +2 -8
  31. package/lib/tab-ui/components/tab-group/tab-group.component.d.ts +10 -23
  32. package/package.json +1 -1
@@ -9,36 +9,15 @@ import { TabComponent } from '../tab/tab.component';
9
9
  import { LxTabGroupKeyCode } from './tab-group-key-codes.enum';
10
10
  import * as i0 from "@angular/core";
11
11
  import * as i1 from "@angular/cdk/portal";
12
- /**
13
- * ## Usage
14
- *
15
- * 1. Import the `LxTabUiModule` module from `@leanix/components` in your module where you want to use the component.
16
- *
17
- * ```ts
18
- * import { LxTabUiModule } from '@leanix/components';
19
- *
20
- * // ...
21
- *
22
- * @NgModule({
23
- * // ...
24
- * imports: [
25
- * // ...
26
- * LxTabUiModule
27
- * // ...
28
- * ]
29
- * })
30
- * export class MyModule {}
31
- * ```
32
- *
33
- * 2. Use the component in your template.
34
- */
35
12
  export class TabGroupComponent {
13
+ /** @internal */
36
14
  get tabIds() {
37
15
  return this.tabs.map((t) => t.tabId);
38
16
  }
39
17
  get tabs() {
40
18
  return this.tabsQueryList?.toArray() || [];
41
19
  }
20
+ /** @internal */
42
21
  get activeTabPortal() {
43
22
  return this.tabs[this.selectedIndex]?.content;
44
23
  }
@@ -52,8 +31,10 @@ export class TabGroupComponent {
52
31
  this.indexChange = new EventEmitter();
53
32
  /**
54
33
  * The tab that is currently focused via keyboard.
34
+ * @internal
55
35
  */
56
36
  this.focusedIndex = 0;
37
+ /** @internal */
57
38
  this.destroyed$ = new Subject();
58
39
  this.listenToFirstTabSelectByAngularRouterForTabLinks().subscribe((tab) => {
59
40
  // synchonize the focusedIndex and selectedIndex state with the tab that is active through the current route.
@@ -89,12 +70,14 @@ export class TabGroupComponent {
89
70
  ngOnDestroy() {
90
71
  this.destroyed$.next();
91
72
  }
73
+ /** @internal */
92
74
  onFocusOut(event) {
93
75
  if (!this.tabListElement?.nativeElement?.contains(event.relatedTarget)) {
94
76
  // resync focused index on selected index when leaving tabs
95
77
  this.focusedIndex = this.selectedIndex;
96
78
  }
97
79
  }
80
+ /** @internal */
98
81
  switchTo(tab) {
99
82
  this.tabsQueryList?.forEach((t, index) => {
100
83
  t.isActive = t === tab;
@@ -106,6 +89,7 @@ export class TabGroupComponent {
106
89
  });
107
90
  this.cd.markForCheck();
108
91
  }
92
+ /** @internal */
109
93
  handleKeyDown(event) {
110
94
  switch (event.code) {
111
95
  case LxTabGroupKeyCode.ArrowRight:
@@ -163,4 +147,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImpor
163
147
  type: ViewChild,
164
148
  args: ['tabListElement']
165
149
  }] } });
166
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFiLWdyb3VwLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9zcmMvbGliL3RhYi11aS9jb21wb25lbnRzL3RhYi1ncm91cC90YWItZ3JvdXAuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL3NyYy9saWIvdGFiLXVpL2NvbXBvbmVudHMvdGFiLWdyb3VwL3RhYi1ncm91cC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ25ELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ25ELE9BQU8sRUFFTCx1QkFBdUIsRUFFdkIsU0FBUyxFQUNULGVBQWUsRUFFZixZQUFZLEVBQ1osS0FBSyxFQUdMLE1BQU0sRUFHTixTQUFTLEVBQ1YsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFjLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDbEQsT0FBTyxFQUFFLEtBQUssRUFBRSxHQUFHLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM3RSxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDbEQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ3BELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLDRCQUE0QixDQUFDOzs7QUFFL0Q7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FzQkc7QUFTSCxNQUFNLE9BQU8saUJBQWlCO0lBaUI1QixJQUFJLE1BQU07UUFDUixPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFD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QUFHLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1lBQzFELE9BQU8sS0FBSyxDQUFDLEdBQUcsUUFBUSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQUMsR0FBRyxDQUFDLHVCQUF1QixDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDM0YsQ0FBQyxDQUFDLEVBQ0YsS0FBSyxFQUFFLEVBQ1AsU0FBUyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQywwR0FBMEc7U0FDdEksQ0FBQztJQUNKLENBQUM7OEdBM0lVLGlCQUFpQjtrR0FBakIsaUJBQWlCLHFOQVNYLFlBQVksb0tDaEUvQixzUUFZQSwrUUR5Q1ksWUFBWTs7QUFVSTtJQUF6QixPQUFPLENBQUMsZUFBZSxDQUFDO3lEQUFzRDsyRkFScEUsaUJBQWlCO2tCQVI3QixTQUFTOytCQUNFLGNBQWMsbUJBR1AsdUJBQXVCLENBQUMsTUFBTSxjQUNuQyxJQUFJLFdBQ1AsQ0FBQyxZQUFZLEVBQUUsZ0JBQWdCLENBQUM7c0ZBR2hDLFVBQVU7c0JBQWxCLEtBQUs7Z0JBSUcsYUFBYTtzQkFBckIsS0FBSztnQkFDSSxXQUFXO3NCQUFwQixNQUFNO2dCQUVtQixjQUFjLE1BQ1QsYUFBYTtzQkFBM0MsZUFBZTt1QkFBQyxZQUFZO2dCQUNBLGNBQWM7c0JBQTFDLFNBQVM7dUJBQUMsZ0JBQWdCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUG9ydGFsTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL3BvcnRhbCc7XG5pbXBvcnQgeyBOZ1RlbXBsYXRlT3V0bGV0IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7XG4gIEFmdGVyQ29udGVudEluaXQsXG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgQ29tcG9uZW50LFxuICBDb250ZW50Q2hpbGRyZW4sXG4gIEVsZW1lbnRSZWYsXG4gIEV2ZW50RW1pdHRlcixcbiAgSW5wdXQsXG4gIE9uQ2hhbmdlcyxcbiAgT25EZXN0cm95LFxuICBPdXRwdXQsXG4gIFF1ZXJ5TGlzdCxcbiAgU2ltcGxlQ2hhbmdlcyxcbiAgVmlld0NoaWxkXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgU3ViamVjdCwgbWVyZ2UgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGZpcnN0LCBtYXAsIHN0YXJ0V2l0aCwgc3dpdGNoTWFwLCB0YWtlVW50aWwgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBPYnNlcnZlIH0gZnJvbSAnLi4vLi4vLi4vc2hhcmVkL29ic2VydmUnO1xuaW1wb3J0IHsgVGFiQ29tcG9uZW50IH0gZnJvbSAnLi4vdGFiL3RhYi5jb21wb25lbnQnO1xuaW1wb3J0IHsgTHhUYWJHcm91cEtleUNvZGUgfSBmcm9tICcuL3RhYi1ncm91cC1rZXktY29kZXMuZW51bSc7XG5cbi8qKlxuICogIyMgVXNhZ2VcbiAqXG4gKiAxLiBJbXBvcnQgdGhlIGBMeFRhYlVpTW9kdWxlYCBtb2R1bGUgZnJvbSBgQGxlYW5peC9jb21wb25lbnRzYCBpbiB5b3VyIG1vZHVsZSB3aGVyZSB5b3Ugd2FudCB0byB1c2UgdGhlIGNvbXBvbmVudC5cbiAqXG4gKiBgYGB0c1xuICogaW1wb3J0IHsgTHhUYWJVaU1vZHVsZSB9IGZyb20gJ0BsZWFuaXgvY29tcG9uZW50cyc7XG4gKlxuICogLy8gLi4uXG4gKlxuICogQE5nTW9kdWxlKHtcbiAqICAgLy8gLi4uXG4gKiAgIGltcG9ydHM6IFtcbiAqICAgICAvLyAuLi5cbiAqICAgICBMeFRhYlVpTW9kdWxlXG4gKiAgICAgLy8gLi4uXG4gKiAgIF1cbiAqIH0pXG4gKiBleHBvcnQgY2xhc3MgTXlNb2R1bGUge31cbiAqIGBgYFxuICpcbiAqIDIuIFVzZSB0aGUgY29tcG9uZW50IGluIHlvdXIgdGVtcGxhdGUuXG4gKi9cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2x4LXRhYi1ncm91cCcsXG4gIHRlbXBsYXRlVXJsOiAndGFiLWdyb3VwLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJ3RhYi1ncm91cC5jb21wb25lbnQuc2NzcyddLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW1BvcnRhbE1vZHVsZSwgTmdUZW1wbGF0ZU91dGxldF1cbn0pXG5leHBvcnQgY2xhc3MgVGFiR3JvdXBDb21wb25lbnQgaW1wbGVtZW50cyBPbkNoYW5nZXMsIEFmdGVyQ29udGVudEluaXQsIE9uRGVzdHJveSB7XG4gIEBJbnB1dCgpIGlzQ2VudGVyZWQ6IGJvb2xlYW4gPSBmYWxzZTtcbiAgLyoqXG4gICAqIFRoZSB0YWIgd2hvc2UgY29udGVudCBzaG91bGQgYmUgZGlzcGxheWVkLlxuICAgKi9cbiAgQElucHV0KCkgc2VsZWN0ZWRJbmRleDogbnVtYmVyID0gMDtcbiAgQE91dHB1dCgpIGluZGV4Q2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxudW1iZXI+KCk7XG5cbiAgQE9ic2VydmUoJ3RhYnNRdWVyeUxpc3QnKSB0YWJzUXVlcnlMaXN0JCE6IE9ic2VydmFibGU8UXVlcnlMaXN0PFRhYkNvbXBvbmVudD4+O1xuICBAQ29udGVudENoaWxkcmVuKFRhYkNvbXBvbmVudCkgdGFic1F1ZXJ5TGlzdD86IFF1ZXJ5TGlzdDxUYWJDb21wb25lbnQ+O1xuICBAVmlld0NoaWxkKCd0YWJMaXN0RWxlbWVudCcpIHRhYkxpc3RFbGVtZW50PzogRWxlbWVudFJlZjxIVE1MRWxlbWVudD47XG5cbiAgLyoqXG4gICAqIFRoZSB0YWIgdGhhdCBpcyBjdXJyZW50bHkgZm9jdXNlZCB2aWEga2V5Ym9hcmQuXG4gICAqL1xuICBmb2N1c2VkSW5kZXg6IG51bWJlciA9IDA7XG5cbiAgZ2V0IHRhYklkcygpOiBzdHJpbmdbXSB7XG4gICAgcmV0dXJuIHRoaXMudGFicy5tYXAoKHQpID0+IHQudGFiSWQpO1xuICB9XG4gIHByaXZhdGUgZ2V0IHRhYnMoKTogVGFiQ29tcG9uZW50W10ge1xuICAgIHJldHVybiB0aGlzLnRhYnNRdWVyeUxpc3Q/LnRvQXJyYXkoKSB8fCBbXTtcbiAgfVxuXG4gIGdldCBhY3RpdmVUYWJQb3J0YWwoKSB7XG4gICAgcmV0dXJuIHRoaXMudGFic1t0aGlzLnNlbGVjdGVkSW5kZXhdPy5jb250ZW50O1xuICB9XG5cbiAgcmVhZG9ubHkgZGVzdHJveWVkJCA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBjZDogQ2hhbmdlRGV0ZWN0b3JSZWYpIHtcbiAgICB0aGlzLmxpc3RlblRvRmlyc3RUYWJTZWxlY3RCeUFuZ3VsYXJSb3V0ZXJGb3JUYWJMaW5rcygpLnN1YnNjcmliZSgodGFiKSA9PiB7XG4gICAgICAvLyBzeW5jaG9uaXplIHRoZSBmb2N1c2VkSW5kZXggYW5kIHNlbGVjdGVkSW5kZXggc3RhdGUgd2l0aCB0aGUgdGFiIHRoYXQgaXMgYWN0aXZlIHRocm91Z2ggdGhlIGN1cnJlbnQgcm91dGUuXG4gICAgICB0aGlzLnN3aXRjaFRvKHRhYik7XG4gICAgfSk7XG4gIH1cblxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKSB7XG4gICAgY29uc3QgdGFiID0gdGhpcy50YWJzW3RoaXMuc2VsZWN0ZWRJbmRleF07XG4gICAgaWYgKGNoYW5nZXNbJ3NlbGVjdGVkSW5kZXgnXSAmJiAhY2hhbmdlc1snc2VsZWN0ZWRJbmRleCddLmlzRmlyc3RDaGFuZ2UoKSAmJiB0YWIpIHtcbiAgICAgIHRoaXMuc3dpdGNoVG8odGFiKTtcbiAgICB9XG4gIH1cblxuICBuZ0FmdGVyQ29udGVudEluaXQoKSB7XG4gICAgaWYgKHRoaXMudGFic1swXSkge1xuICAgICAgdGhpcy50YWJzWzBdLm5vTGVmdE1hcmdpbkZvckZpcnN0VGFiID0gdHJ1ZTtcbiAgICB9XG4gICAgY29uc3QgdGFiID0gdGhpcy50YWJzW3RoaXMuc2VsZWN0ZWRJbmRleF07XG4gICAgaWYgKHRhYiAmJiAhdGFiLnRhYkxpbmspIHtcbiAgICAgIHRoaXMuc3dpdGNoVG8odGFiKTtcbiAgICB9XG5cbiAgICBjb25zdCBsaXN0ZW5Ub1RhYnNTd2l0Y2ggPSAodGFiczogVGFiQ29tcG9uZW50W10pID0+IG1lcmdlKC4uLnRhYnMubWFwKCh0YWIpID0+IHRhYi5zd2l0Y2guYXNPYnNlcnZhYmxlKCkucGlwZShtYXAoKCkgPT4gdGFiKSkpKTtcblxuICAgIHRoaXMudGFic1F1ZXJ5TGlzdD8uY2hhbmdlc1xuICAgICAgLnBpcGUoXG4gICAgICAgIHN0YXJ0V2l0aChudWxsKSxcbiAgICAgICAgc3dpdGNoTWFwKCgpID0+IGxpc3RlblRvVGFic1N3aXRjaCh0aGlzLnRhYnMpKSxcbiAgICAgICAgdGFrZVVudGlsKHRoaXMuZGVzdHJveWVkJClcbiAgICAgIClcbiAgICAgIC5zdWJzY3JpYmUoKHRhYikgPT4ge1xuICAgICAgICB0aGlzLnN3aXRjaFRvKHRhYik7XG4gICAgICB9KTtcblxuICAgIHRoaXMudGFic1F1ZXJ5TGlzdD8uY2hhbmdlc1xuICAgICAgLnBpcGUoXG4gICAgICAgIHN0YXJ0V2l0aChudWxsKSxcbiAgICAgICAgc3dpdGNoTWFwKCgpID0+IG1lcmdlKC4uLnRoaXMudGFicy5tYXAoKHRhYikgPT4gdGFiLmtleURvd25BY3Rpb24pKSksXG4gICAgICAgIHRha2VVbnRpbCh0aGlzLmRlc3Ryb3llZCQpXG4gICAgICApXG4gICAgICAuc3Vic2NyaWJlKChldmVudCkgPT4ge1xuICAgICAgICB0aGlzLmhhbmRsZUtleURvd24oZXZlbnQpO1xuICAgICAgfSk7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpIHtcbiAgICB0aGlzLmRlc3Ryb3llZCQubmV4dCgpO1xuICB9XG5cbiAgb25Gb2N1c091dChldmVudDogYW55KSB7XG4gICAgaWYgKCF0aGlzLnRhYkxpc3RFbGVtZW50Py5uYXRpdmVFbGVtZW50Py5jb250YWlucyhldmVudC5yZWxhdGVkVGFyZ2V0KSkge1xuICAgICAgLy8gcmVzeW5jIGZvY3VzZWQgaW5kZXggb24gc2VsZWN0ZWQgaW5kZXggd2hlbiBsZWF2aW5nIHRhYnNcbiAgICAgIHRoaXMuZm9jdXNlZEluZGV4ID0gdGhpcy5zZWxlY3RlZEluZGV4O1xuICAgIH1cbiAgfVxuXG4gIHN3aXRjaFRvKHRhYjogVGFiQ29tcG9uZW50KSB7XG4gICAgdGhpcy50YWJzUXVlcnlMaXN0Py5mb3JFYWNoKCh0LCBpbmRleCkgPT4ge1xuICAgICAgdC5pc0FjdGl2ZSA9IHQgPT09IHRhYjtcbiAgICAgIGlmICh0LmlzQWN0aXZlKSB7XG4gICAgICAgIHRoaXMuc2VsZWN0ZWRJbmRleCA9IGluZGV4O1xuICAgICAgICB0aGlzLmZvY3VzZWRJbmRleCA9IGluZGV4O1xuICAgICAgICB0aGlzLmluZGV4Q2hhbmdlLmVtaXQoaW5kZXgpO1xuICAgICAgfVxuICAgIH0pO1xuICAgIHRoaXMuY2QubWFya0ZvckNoZWNrKCk7XG4gIH1cblxuICBoYW5kbGVLZXlEb3duKGV2ZW50OiBLZXlib2FyZEV2ZW50KSB7XG4gICAgc3dpdGNoIChldmVudC5jb2RlKSB7XG4gICAgICBjYXNlIEx4VGFiR3JvdXBLZXlDb2RlLkFycm93UmlnaHQ6XG4gICAgICAgIGNvbnN0IG5ld1RhYkluZGV4ID0gKHRoaXMuZm9jdXNlZEluZGV4ICsgMSkgJSB0aGlzLnRhYnMubGVuZ3RoO1xuICAgICAgICB0aGlzLmZvY3VzVGFiKG5ld1RhYkluZGV4KTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlIEx4VGFiR3JvdXBLZXlDb2RlLkFycm93TGVmdDpcbiAgICAgICAgY29uc3QgcHJldmlvdXNUYWJJbmRleCA9IHRoaXMuZm9jdXNlZEluZGV4ID09PSAwID8gdGhpcy50YWJzLmxlbmd0aCAtIDEgOiB0aGlzLmZvY3VzZWRJbmRleCAtIDE7XG4gICAgICAgIHRoaXMuZm9jdXNUYWIocHJldmlvdXNUYWJJbmRleCk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSBMeFRhYkdyb3VwS2V5Q29kZS5Ib21lOlxuICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICB0aGlzLmZvY3VzVGFiKDApO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgTHhUYWJHcm91cEtleUNvZGUuRW5kOlxuICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICB0aGlzLmZvY3VzVGFiKHRoaXMudGFicy5sZW5ndGggLSAxKTtcbiAgICAgICAgYnJlYWs7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBmb2N1c1RhYih0YWJJbmRleDogbnVtYmVyKTogdm9pZCB7XG4gICAgY29uc3QgdGFiID0gdGhpcy50YWJzW3RhYkluZGV4XTtcbiAgICBpZiAoIXRhYikge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRhYi5zZXRGb2N1cygpO1xuICAgIHRoaXMuZm9jdXNlZEluZGV4ID0gdGFiSW5kZXg7XG4gIH1cblxuICBwcml2YXRlIGxpc3RlblRvRmlyc3RUYWJTZWxlY3RCeUFuZ3VsYXJSb3V0ZXJGb3JUYWJMaW5rcygpIHtcbiAgICByZXR1cm4gdGhpcy50YWJzUXVlcnlMaXN0JC5waXBlKFxuICAgICAgc3dpdGNoTWFwKCgpID0+IHtcbiAgICAgICAgY29uc3QgdGFiTGlua3MgPSB0aGlzLnRhYnMuZmlsdGVyKCh0YWIpID0+ICEhdGFiLnRhYkxpbmspO1xuICAgICAgICByZXR1cm4gbWVyZ2UoLi4udGFiTGlua3MubWFwKCh0YWIpID0+IHRhYi5yb3V0ZXJMaW5rQWN0aXZlQ2hhbmdlJC5waXBlKG1hcCgoKSA9PiB0YWIpKSkpO1xuICAgICAgfSksXG4gICAgICBmaXJzdCgpLFxuICAgICAgdGFrZVVudGlsKHRoaXMuZGVzdHJveWVkJCkgLy8gYWRkZWQgaW4gYWRkaXRpb24gdG8gZmlyc3QoKSBoZXJlIHNpbmNlIGZvciB0YWIgZ3JvdXBzIHdpdGhvdXQgbGlua3Mgbm8gc2luZ2xlIHZhbHVlIHdpbGwgZXZlciBiZSBlbWl0LlxuICAgICk7XG4gIH1cbn1cbiIsIjx1bFxuICAjdGFiTGlzdEVsZW1lbnRcbiAgY2xhc3M9XCJ0YWJzXCJcbiAgcm9sZT1cInRhYmxpc3RcIlxuICAoZm9jdXNvdXQpPVwib25Gb2N1c091dCgkZXZlbnQpXCJcbiAgW2F0dHIuYXJpYS1vd25zXT1cInRhYklkcy5qb2luKCcgJylcIlxuICBbY2xhc3MuY2VudGVyZWRdPVwiaXNDZW50ZXJlZFwiXG4+XG4gIDxuZy1jb250ZW50IC8+XG48L3VsPlxuXG48bmctdGVtcGxhdGUgW2Nka1BvcnRhbE91dGxldF09XCJhY3RpdmVUYWJQb3J0YWxcIiAvPlxuIl19
150
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFiLWdyb3VwLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9zcmMvbGliL3RhYi11aS9jb21wb25lbnRzL3RhYi1ncm91cC90YWItZ3JvdXAuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL3NyYy9saWIvdGFiLXVpL2NvbXBvbmVudHMvdGFiLWdyb3VwL3RhYi1ncm91cC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ25ELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ25ELE9BQU8sRUFFTCx1QkFBdUIsRUFFdkIsU0FBUyxFQUNULGVBQWUsRUFFZixZQUFZLEVBQ1osS0FBSyxFQUdMLE1BQU0sRUFHTixTQUFTLEVBQ1YsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFjLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDbEQsT0FBTyxFQUFFLEtBQUssRUFBRSxHQUFHLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM3RSxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDbEQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ3BELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLDRCQUE0QixDQUFDOzs7QUFVL0QsTUFBTSxPQUFPLGlCQUFpQjtJQXFCNUIsZ0JBQWdCO0lBQ2hCLElBQUksTUFBTTtRQUNSLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FB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QUFJLENBQzdCLFNBQVMsQ0FBQyxHQUFHLEVBQUU7WUFDYixNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsQ0FBQztZQUMxRCxPQUFPLEtBQUssQ0FBQyxHQUFHLFFBQVEsQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDLEdBQUcsQ0FBQyx1QkFBdUIsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQzNGLENBQUMsQ0FBQyxFQUNGLEtBQUssRUFBRSxFQUNQLFNBQVMsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUMsMEdBQTBHO1NBQ3RJLENBQUM7SUFDSixDQUFDOzhHQXJKVSxpQkFBaUI7a0dBQWpCLGlCQUFpQixxTkFXWCxZQUFZLG9LQzNDL0Isc1FBWUEsK1FEa0JZLFlBQVk7O0FBV0k7SUFBekIsT0FBTyxDQUFDLGVBQWUsQ0FBQzt5REFBc0Q7MkZBVHBFLGlCQUFpQjtrQkFSN0IsU0FBUzsrQkFDRSxjQUFjLG1CQUdQLHVCQUF1QixDQUFDLE1BQU0sY0FDbkMsSUFBSSxXQUNQLENBQUMsWUFBWSxFQUFFLGdCQUFnQixDQUFDO3NGQUdoQyxVQUFVO3NCQUFsQixLQUFLO2dCQUlHLGFBQWE7c0JBQXJCLEtBQUs7Z0JBQ0ksV0FBVztzQkFBcEIsTUFBTTtnQkFHbUIsY0FBYyxNQUVULGFBQWE7c0JBQTNDLGVBQWU7dUJBQUMsWUFBWTtnQkFFQSxjQUFjO3NCQUExQyxTQUFTO3VCQUFDLGdCQUFnQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFBvcnRhbE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9wb3J0YWwnO1xuaW1wb3J0IHsgTmdUZW1wbGF0ZU91dGxldCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQge1xuICBBZnRlckNvbnRlbnRJbml0LFxuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gIENvbXBvbmVudCxcbiAgQ29udGVudENoaWxkcmVuLFxuICBFbGVtZW50UmVmLFxuICBFdmVudEVtaXR0ZXIsXG4gIElucHV0LFxuICBPbkNoYW5nZXMsXG4gIE9uRGVzdHJveSxcbiAgT3V0cHV0LFxuICBRdWVyeUxpc3QsXG4gIFNpbXBsZUNoYW5nZXMsXG4gIFZpZXdDaGlsZFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE9ic2VydmFibGUsIFN1YmplY3QsIG1lcmdlIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBmaXJzdCwgbWFwLCBzdGFydFdpdGgsIHN3aXRjaE1hcCwgdGFrZVVudGlsIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgT2JzZXJ2ZSB9IGZyb20gJy4uLy4uLy4uL3NoYXJlZC9vYnNlcnZlJztcbmltcG9ydCB7IFRhYkNvbXBvbmVudCB9IGZyb20gJy4uL3RhYi90YWIuY29tcG9uZW50JztcbmltcG9ydCB7IEx4VGFiR3JvdXBLZXlDb2RlIH0gZnJvbSAnLi90YWItZ3JvdXAta2V5LWNvZGVzLmVudW0nO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdseC10YWItZ3JvdXAnLFxuICB0ZW1wbGF0ZVVybDogJ3RhYi1ncm91cC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWyd0YWItZ3JvdXAuY29tcG9uZW50LnNjc3MnXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtQb3J0YWxNb2R1bGUsIE5nVGVtcGxhdGVPdXRsZXRdXG59KVxuZXhwb3J0IGNsYXNzIFRhYkdyb3VwQ29tcG9uZW50IGltcGxlbWVudHMgT25DaGFuZ2VzLCBBZnRlckNvbnRlbnRJbml0LCBPbkRlc3Ryb3kge1xuICBASW5wdXQoKSBpc0NlbnRlcmVkOiBib29sZWFuID0gZmFsc2U7XG4gIC8qKlxuICAgKiBUaGUgdGFiIHdob3NlIGNvbnRlbnQgc2hvdWxkIGJlIGRpc3BsYXllZC5cbiAgICovXG4gIEBJbnB1dCgpIHNlbGVjdGVkSW5kZXg6IG51bWJlciA9IDA7XG4gIEBPdXRwdXQoKSBpbmRleENoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8bnVtYmVyPigpO1xuXG4gIC8qKiBAaW50ZXJuYWwgKi9cbiAgQE9ic2VydmUoJ3RhYnNRdWVyeUxpc3QnKSB0YWJzUXVlcnlMaXN0JCE6IE9ic2VydmFibGU8UXVlcnlMaXN0PFRhYkNvbXBvbmVudD4+O1xuICAvKiogQGludGVybmFsICovXG4gIEBDb250ZW50Q2hpbGRyZW4oVGFiQ29tcG9uZW50KSB0YWJzUXVlcnlMaXN0PzogUXVlcnlMaXN0PFRhYkNvbXBvbmVudD47XG4gIC8qKiBAaW50ZXJuYWwgKi9cbiAgQFZpZXdDaGlsZCgndGFiTGlzdEVsZW1lbnQnKSB0YWJMaXN0RWxlbWVudD86IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+O1xuXG4gIC8qKlxuICAgKiBUaGUgdGFiIHRoYXQgaXMgY3VycmVudGx5IGZvY3VzZWQgdmlhIGtleWJvYXJkLlxuICAgKiBAaW50ZXJuYWxcbiAgICovXG4gIGZvY3VzZWRJbmRleDogbnVtYmVyID0gMDtcblxuICAvKiogQGludGVybmFsICovXG4gIGdldCB0YWJJZHMoKTogc3RyaW5nW10ge1xuICAgIHJldHVybiB0aGlzLnRhYnMubWFwKCh0KSA9PiB0LnRhYklkKTtcbiAgfVxuICBwcml2YXRlIGdldCB0YWJzKCk6IFRhYkNvbXBvbmVudFtdIHtcbiAgICByZXR1cm4gdGhpcy50YWJzUXVlcnlMaXN0Py50b0FycmF5KCkgfHwgW107XG4gIH1cblxuICAvKiogQGludGVybmFsICovXG4gIGdldCBhY3RpdmVUYWJQb3J0YWwoKSB7XG4gICAgcmV0dXJuIHRoaXMudGFic1t0aGlzLnNlbGVjdGVkSW5kZXhdPy5jb250ZW50O1xuICB9XG5cbiAgLyoqIEBpbnRlcm5hbCAqL1xuICByZWFkb25seSBkZXN0cm95ZWQkID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGNkOiBDaGFuZ2VEZXRlY3RvclJlZikge1xuICAgIHRoaXMubGlzdGVuVG9GaXJzdFRhYlNlbGVjdEJ5QW5ndWxhclJvdXRlckZvclRhYkxpbmtzKCkuc3Vic2NyaWJlKCh0YWIpID0+IHtcbiAgICAgIC8vIHN5bmNob25pemUgdGhlIGZvY3VzZWRJbmRleCBhbmQgc2VsZWN0ZWRJbmRleCBzdGF0ZSB3aXRoIHRoZSB0YWIgdGhhdCBpcyBhY3RpdmUgdGhyb3VnaCB0aGUgY3VycmVudCByb3V0ZS5cbiAgICAgIHRoaXMuc3dpdGNoVG8odGFiKTtcbiAgICB9KTtcbiAgfVxuXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpIHtcbiAgICBjb25zdCB0YWIgPSB0aGlzLnRhYnNbdGhpcy5zZWxlY3RlZEluZGV4XTtcbiAgICBpZiAoY2hhbmdlc1snc2VsZWN0ZWRJbmRleCddICYmICFjaGFuZ2VzWydzZWxlY3RlZEluZGV4J10uaXNGaXJzdENoYW5nZSgpICYmIHRhYikge1xuICAgICAgdGhpcy5zd2l0Y2hUbyh0YWIpO1xuICAgIH1cbiAgfVxuXG4gIG5nQWZ0ZXJDb250ZW50SW5pdCgpIHtcbiAgICBpZiAodGhpcy50YWJzWzBdKSB7XG4gICAgICB0aGlzLnRhYnNbMF0ubm9MZWZ0TWFyZ2luRm9yRmlyc3RUYWIgPSB0cnVlO1xuICAgIH1cbiAgICBjb25zdCB0YWIgPSB0aGlzLnRhYnNbdGhpcy5zZWxlY3RlZEluZGV4XTtcbiAgICBpZiAodGFiICYmICF0YWIudGFiTGluaykge1xuICAgICAgdGhpcy5zd2l0Y2hUbyh0YWIpO1xuICAgIH1cblxuICAgIGNvbnN0IGxpc3RlblRvVGFic1N3aXRjaCA9ICh0YWJzOiBUYWJDb21wb25lbnRbXSkgPT4gbWVyZ2UoLi4udGFicy5tYXAoKHRhYikgPT4gdGFiLnN3aXRjaC5hc09ic2VydmFibGUoKS5waXBlKG1hcCgoKSA9PiB0YWIpKSkpO1xuXG4gICAgdGhpcy50YWJzUXVlcnlMaXN0Py5jaGFuZ2VzXG4gICAgICAucGlwZShcbiAgICAgICAgc3RhcnRXaXRoKG51bGwpLFxuICAgICAgICBzd2l0Y2hNYXAoKCkgPT4gbGlzdGVuVG9UYWJzU3dpdGNoKHRoaXMudGFicykpLFxuICAgICAgICB0YWtlVW50aWwodGhpcy5kZXN0cm95ZWQkKVxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZSgodGFiKSA9PiB7XG4gICAgICAgIHRoaXMuc3dpdGNoVG8odGFiKTtcbiAgICAgIH0pO1xuXG4gICAgdGhpcy50YWJzUXVlcnlMaXN0Py5jaGFuZ2VzXG4gICAgICAucGlwZShcbiAgICAgICAgc3RhcnRXaXRoKG51bGwpLFxuICAgICAgICBzd2l0Y2hNYXAoKCkgPT4gbWVyZ2UoLi4udGhpcy50YWJzLm1hcCgodGFiKSA9PiB0YWIua2V5RG93bkFjdGlvbikpKSxcbiAgICAgICAgdGFrZVVudGlsKHRoaXMuZGVzdHJveWVkJClcbiAgICAgIClcbiAgICAgIC5zdWJzY3JpYmUoKGV2ZW50KSA9PiB7XG4gICAgICAgIHRoaXMuaGFuZGxlS2V5RG93bihldmVudCk7XG4gICAgICB9KTtcbiAgfVxuXG4gIG5nT25EZXN0cm95KCkge1xuICAgIHRoaXMuZGVzdHJveWVkJC5uZXh0KCk7XG4gIH1cblxuICAvKiogQGludGVybmFsICovXG4gIG9uRm9jdXNPdXQoZXZlbnQ6IGFueSkge1xuICAgIGlmICghdGhpcy50YWJMaXN0RWxlbWVudD8ubmF0aXZlRWxlbWVudD8uY29udGFpbnMoZXZlbnQucmVsYXRlZFRhcmdldCkpIHtcbiAgICAgIC8vIHJlc3luYyBmb2N1c2VkIGluZGV4IG9uIHNlbGVjdGVkIGluZGV4IHdoZW4gbGVhdmluZyB0YWJzXG4gICAgICB0aGlzLmZvY3VzZWRJbmRleCA9IHRoaXMuc2VsZWN0ZWRJbmRleDtcbiAgICB9XG4gIH1cblxuICAvKiogQGludGVybmFsICovXG4gIHN3aXRjaFRvKHRhYjogVGFiQ29tcG9uZW50KSB7XG4gICAgdGhpcy50YWJzUXVlcnlMaXN0Py5mb3JFYWNoKCh0LCBpbmRleCkgPT4ge1xuICAgICAgdC5pc0FjdGl2ZSA9IHQgPT09IHRhYjtcbiAgICAgIGlmICh0LmlzQWN0aXZlKSB7XG4gICAgICAgIHRoaXMuc2VsZWN0ZWRJbmRleCA9IGluZGV4O1xuICAgICAgICB0aGlzLmZvY3VzZWRJbmRleCA9IGluZGV4O1xuICAgICAgICB0aGlzLmluZGV4Q2hhbmdlLmVtaXQoaW5kZXgpO1xuICAgICAgfVxuICAgIH0pO1xuICAgIHRoaXMuY2QubWFya0ZvckNoZWNrKCk7XG4gIH1cblxuICAvKiogQGludGVybmFsICovXG4gIGhhbmRsZUtleURvd24oZXZlbnQ6IEtleWJvYXJkRXZlbnQpIHtcbiAgICBzd2l0Y2ggKGV2ZW50LmNvZGUpIHtcbiAgICAgIGNhc2UgTHhUYWJHcm91cEtleUNvZGUuQXJyb3dSaWdodDpcbiAgICAgICAgY29uc3QgbmV3VGFiSW5kZXggPSAodGhpcy5mb2N1c2VkSW5kZXggKyAxKSAlIHRoaXMudGFicy5sZW5ndGg7XG4gICAgICAgIHRoaXMuZm9jdXNUYWIobmV3VGFiSW5kZXgpO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgTHhUYWJHcm91cEtleUNvZGUuQXJyb3dMZWZ0OlxuICAgICAgICBjb25zdCBwcmV2aW91c1RhYkluZGV4ID0gdGhpcy5mb2N1c2VkSW5kZXggPT09IDAgPyB0aGlzLnRhYnMubGVuZ3RoIC0gMSA6IHRoaXMuZm9jdXNlZEluZGV4IC0gMTtcbiAgICAgICAgdGhpcy5mb2N1c1RhYihwcmV2aW91c1RhYkluZGV4KTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlIEx4VGFiR3JvdXBLZXlDb2RlLkhvbWU6XG4gICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgIHRoaXMuZm9jdXNUYWIoMCk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSBMeFRhYkdyb3VwS2V5Q29kZS5FbmQ6XG4gICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgIHRoaXMuZm9jdXNUYWIodGhpcy50YWJzLmxlbmd0aCAtIDEpO1xuICAgICAgICBicmVhaztcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGZvY3VzVGFiKHRhYkluZGV4OiBudW1iZXIpOiB2b2lkIHtcbiAgICBjb25zdCB0YWIgPSB0aGlzLnRhYnNbdGFiSW5kZXhdO1xuICAgIGlmICghdGFiKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGFiLnNldEZvY3VzKCk7XG4gICAgdGhpcy5mb2N1c2VkSW5kZXggPSB0YWJJbmRleDtcbiAgfVxuXG4gIHByaXZhdGUgbGlzdGVuVG9GaXJzdFRhYlNlbGVjdEJ5QW5ndWxhclJvdXRlckZvclRhYkxpbmtzKCkge1xuICAgIHJldHVybiB0aGlzLnRhYnNRdWVyeUxpc3QkLnBpcGUoXG4gICAgICBzd2l0Y2hNYXAoKCkgPT4ge1xuICAgICAgICBjb25zdCB0YWJMaW5rcyA9IHRoaXMudGFicy5maWx0ZXIoKHRhYikgPT4gISF0YWIudGFiTGluayk7XG4gICAgICAgIHJldHVybiBtZXJnZSguLi50YWJMaW5rcy5tYXAoKHRhYikgPT4gdGFiLnJvdXRlckxpbmtBY3RpdmVDaGFuZ2UkLnBpcGUobWFwKCgpID0+IHRhYikpKSk7XG4gICAgICB9KSxcbiAgICAgIGZpcnN0KCksXG4gICAgICB0YWtlVW50aWwodGhpcy5kZXN0cm95ZWQkKSAvLyBhZGRlZCBpbiBhZGRpdGlvbiB0byBmaXJzdCgpIGhlcmUgc2luY2UgZm9yIHRhYiBncm91cHMgd2l0aG91dCBsaW5rcyBubyBzaW5nbGUgdmFsdWUgd2lsbCBldmVyIGJlIGVtaXQuXG4gICAgKTtcbiAgfVxufVxuIiwiPHVsXG4gICN0YWJMaXN0RWxlbWVudFxuICBjbGFzcz1cInRhYnNcIlxuICByb2xlPVwidGFibGlzdFwiXG4gIChmb2N1c291dCk9XCJvbkZvY3VzT3V0KCRldmVudClcIlxuICBbYXR0ci5hcmlhLW93bnNdPVwidGFiSWRzLmpvaW4oJyAnKVwiXG4gIFtjbGFzcy5jZW50ZXJlZF09XCJpc0NlbnRlcmVkXCJcbj5cbiAgPG5nLWNvbnRlbnQgLz5cbjwvdWw+XG5cbjxuZy10ZW1wbGF0ZSBbY2RrUG9ydGFsT3V0bGV0XT1cImFjdGl2ZVRhYlBvcnRhbFwiIC8+XG4iXX0=
@@ -72,6 +72,7 @@ const ICON_MAP = {
72
72
  'fa-sync': ['synchronize'],
73
73
  'fa-plus-circle': ['sys-add'],
74
74
  'fa-exclamation-triangle': ['warning'],
75
+ 'fa-exclamation-circle': ['lx-icons/exclamation-circle'],
75
76
  'fa-arrow-right': ['arrow-right'],
76
77
  'fa-arrow-left': ['arrow-left'],
77
78
  'fa-link': ['chain-link'],
@@ -184,7 +185,7 @@ const ICON_MAP = {
184
185
  'fa-lightbulb': ['lightbulb'],
185
186
  'fa-list-ol': ['business-suite/icon-bulleting-with-numbers'],
186
187
  'fa-map': ['map-3'],
187
- 'fa-map-pin': [],
188
+ 'fa-map-pin': ['lx-icons/map-pin'],
188
189
  'fa-map-signs': ['lx-icons/map-signs'],
189
190
  'fa-pen': ['edit'],
190
191
  'fa-people-arrows': ['citizen-connect'],
@@ -247,41 +248,35 @@ const ICON_MAP = {
247
248
  'fa-confluence': ['lx-icons/confluence'],
248
249
  'fa-cloud': ['cloud'],
249
250
  'fa-euro-sign': ['lx-icons/euro-sign'],
250
- 'fa-exchange': [],
251
+ 'fa-exchange': ['lx-icons/exchange'],
251
252
  'fa-folder-open': ['open-folder'],
252
253
  'fa-folder-tree': ['lx-icons/folder-tree'],
253
254
  'fa-gavel': ['lx-icons/gavel'],
254
255
  'fa-keyboard': ['keyboard-and-mouse'],
255
256
  'fa-hammer': ['lx-icons/hammer'],
256
- 'fa-hat-wizard': [],
257
- 'fa-hourglass-end': [],
257
+ 'fa-hat-wizard': ['lx-icons/hat-wizard'],
258
+ 'fa-hourglass-end': ['lx-icons/hourglass-end'],
258
259
  'fa-lemon': [],
259
260
  'fa-pound-sign': ['lx-icons/pound-sign'],
260
261
  'fa-project-diagram': ['lx-icons/project-diagram'],
261
262
  'fa-shield': ['lx-icons/shield'],
262
- 'fa-signal': [],
263
+ 'fa-signal': ['lx-icons/signal'],
263
264
  'fa-tasks-alt': ['lx-icons/tasks'],
264
265
  'fa-toolbox': ['lx-icons/toolbox'],
265
266
  'fa-tools': ['wrench'],
266
- 'fa-tshirt': [],
267
+ 'fa-tshirt': ['lx-icons/tshirt'],
267
268
  'fa-underline': ['underline-text'],
268
269
  'fa-unicorn': [],
269
270
  'fa-user-hard-hat': [],
270
- 'fa-window': ['tnt/subject'],
271
+ 'fa-window': ['lx-icons/window'], // ['tnt/subject'],
271
272
  'fa-quote-right': ['lx-icons/quote-right'],
272
- 'fa-yen-sign': ['lx-icons/yen-sign']
273
+ 'fa-yen-sign': ['lx-icons/yen-sign'],
274
+ 'fa-feather': ['lx-icons/feather'],
275
+ 'fa-road': ['lx-icons/road']
273
276
  };
274
277
 
275
278
  /**
276
279
  * Badge component is used to show a small piece of information in a colored badge.
277
- *
278
- * ## Usage
279
- *
280
- * 1. Import the `LxCoreUiModule` module from `@leanix/components` in your module where you want to use the component.
281
- *
282
- * ```ts
283
- * import { LxCoreUiModule } from '@leanix/components';
284
- * ```
285
280
  */
286
281
  class BadgeComponent {
287
282
  constructor() {
@@ -350,16 +345,6 @@ const BANNER_SIZE = {
350
345
 
351
346
  /**
352
347
  * Banner can be used to display important information to the user. It allows for any type of content to be displayed in a banner.
353
- *
354
- * ## Usage
355
- *
356
- * 1. Import the `LxCoreUiModule` module from `@leanix/components` in your module where you want to use the component.
357
- *
358
- * ```ts
359
- * import { LxCoreUiModule } from '@leanix/components';
360
- * ```
361
- *
362
- * 2. Use the component in your template.
363
348
  */
364
349
  class BannerComponent {
365
350
  constructor() {
@@ -451,14 +436,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImpor
451
436
 
452
437
  /**
453
438
  * Tiny spinner component is used to show a small spinner.
454
- *
455
- * ## Usage
456
- *
457
- * 1. Import the `TinySpinnerComponent` component from `@leanix/components` in your module or standalone copmonent where you want to use the component.
458
- *
459
- * ```ts
460
- * import { TinySpinnerComponent } from '@leanix/components';
461
- * ```
462
439
  */
463
440
  class TinySpinnerComponent {
464
441
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: TinySpinnerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
@@ -482,14 +459,6 @@ const LX_BUTTON_USE_SAP_ICONS = new InjectionToken('LX_BUTTON_USE_SAP_ICONS', {
482
459
  /**
483
460
  * Button component is used to create a button with different styles and sizes. This uses native button element and
484
461
  * only provides styling and some additional features like loading spinner.
485
- *
486
- * ## Usage
487
- *
488
- * 1. Import the `ButtonComponent` from `@leanix/components` where you want to use the component.
489
- *
490
- * ```ts
491
- * import { ButtonComponent } from '@leanix/components';
492
- * ```
493
462
  */
494
463
  class ButtonComponent {
495
464
  constructor() {
@@ -650,14 +619,6 @@ function removeFontAwesomeVariant(iconName) {
650
619
  /**
651
620
  * Card component is a container component that can be used to display content in a card-like style.
652
621
  * This documentation provides details on the usage and configuration of the Card Component.
653
- *
654
- * ## Usage
655
- *
656
- * 1. Import the `LxCoreUiModule` module from `@leanix/components` in your module where you want to use the component.
657
- *
658
- * ```ts
659
- * import { LxCoreUiModule } from '@leanix/components';
660
- * ```
661
622
  */
662
623
  class CardComponent {
663
624
  constructor() {
@@ -730,14 +691,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImpor
730
691
 
731
692
  /**
732
693
  * Counter component is used to create a counter with different styles and sizes.
733
- *
734
- * ## Usage
735
- *
736
- * 1. Import the `CounterComponent` component from `@leanix/components` in your module or standalone copmonent where you want to use the component.
737
- *
738
- * ```ts
739
- * import { CounterComponent } from '@leanix/components';
740
- * ```
741
694
  */
742
695
  class CounterComponent {
743
696
  constructor() {
@@ -2365,14 +2318,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImpor
2365
2318
 
2366
2319
  /**
2367
2320
  * Tooltip directive is used to show a tooltip on hover or focus on an element.
2368
- *
2369
- * ## Usage
2370
- *
2371
- * 1. Import the `TooltipDirective` component from `@leanix/components` in your module or standalone copmonent where you want to use the component.
2372
- *
2373
- * ```ts
2374
- * import { TooltipDirective } from '@leanix/components';
2375
- * ```
2376
2321
  */
2377
2322
  class TooltipDirective {
2378
2323
  /** The position of the tooltip. */
@@ -2651,20 +2596,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImpor
2651
2596
  /**
2652
2597
  * Skeleton is a component that can be used to show a loading state of a component.
2653
2598
  *
2654
- * ## Usage
2655
- *
2656
- * 1. Import the `SkeletonComponent` component from `@leanix/components` in your module or standalone copmonent where you want to use the component.
2657
- *
2658
- * ```ts
2659
- * import { SkeletonComponent } from '@leanix/components';
2660
- * ```
2661
- *
2662
2599
  * Use skeleton loaders for pages or sections that load content progressively, like text and images. The component can
2663
2600
  * be used to compose various scenarios like placeholders for thumbnails, lists, and avatars. See the example
2664
2601
  * [patterns](?path=/docs/skeleton-patterns--docs) for more details.
2665
- *
2666
- * To get started, import the `SkeletonComponent` in your Angular module or standalone component and use it in the
2667
- * template using the `<lx-skeleton />` selector with the desired width, height, and border radius.
2668
2602
  */
2669
2603
  class SkeletonComponent {
2670
2604
  constructor() {
@@ -3706,14 +3640,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImpor
3706
3640
 
3707
3641
  /**
3708
3642
  * Breadcrumb component is used to show a list of labels, usually to show the path of user's navigation.
3709
- *
3710
- * ## Usage
3711
- *
3712
- * 1. Import the LxFormsModule module from @leanix/components in your module where you want to use the component.
3713
- *
3714
- * ```ts
3715
- * import { LxFormsModule } from '@leanix/components';
3716
- * ```
3717
3643
  */
3718
3644
  class BreadcrumbComponent {
3719
3645
  constructor() {
@@ -5370,14 +5296,6 @@ const DEFAULT_MIN_DATE = new Date('0000-01-01');
5370
5296
  const DEFAULT_MAX_DATE = new Date('9999-12-31');
5371
5297
  /**
5372
5298
  * This is a date input component that can be used to select a date.
5373
- *
5374
- * ## Usage
5375
- *
5376
- * 1. Import the `LxFormsUiModule` module from `@leanix/components` in your module where you want to use the component.
5377
- *
5378
- * ```ts
5379
- * import { LxFormsUiModule } from '@leanix/components';
5380
- * ```
5381
5299
  */
5382
5300
  class DateInputComponent {
5383
5301
  constructor(cd, dateFormatsProvider, getDateFnLocale) {
@@ -8007,17 +7925,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImpor
8007
7925
  }]
8008
7926
  }] });
8009
7927
 
8010
- /**
8011
- * ## Usage
8012
- *
8013
- * 1. Import the `LxFormsModule` module from `@leanix/components` in your module where you want to use the component.
8014
- *
8015
- * ```ts
8016
- * import { LxFormsModule } from '@leanix/components';
8017
- * ```
8018
- *
8019
- * 2. Use the component in your template.
8020
- */
8021
7928
  class SingleSelectComponent extends BaseSelectDirective {
8022
7929
  /** @internal */
8023
7930
  static calculateNewCursorPostionOnKeyboardNavigation(cursorPosition, keyCode) {
@@ -8373,14 +8280,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImpor
8373
8280
 
8374
8281
  /**
8375
8282
  * Switch component is a toggle switch that can be used to switch between two states.
8376
- *
8377
- * ## Usage
8378
- *
8379
- * 1. Import the `SwitchComponent` component from `@leanix/components` in your module or standalone copmonent where you want to use the component.
8380
- *
8381
- * ```ts
8382
- * import { SwitchComponent } from '@leanix/components';
8383
- * ```
8384
8283
  */
8385
8284
  class SwitchComponent {
8386
8285
  constructor() {
@@ -9601,14 +9500,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImpor
9601
9500
  /**
9602
9501
  * The Popover component is based on the [ncstate-sat/popover](https://github.com/ncstate-sat/popover) library.
9603
9502
  *
9604
- * ## Usage
9605
- *
9606
- * 1. Import `LxPopoverUiModule` and `LxCoreUiModule` module from `@leanix/components` in your module where you want to use the component.
9607
- *
9608
- * ```ts
9609
- * import { LxPopoverUiModule, LxCoreUiModule } from '@leanix/components';
9610
- * ```
9611
- *
9503
+ * ## Examples
9504
+
9612
9505
  * This popover encapsulates this open source library: https://github.com/ncstate-sat/popover,
9613
9506
  * make sure to also check out the docs over there.
9614
9507
  *
@@ -10083,36 +9976,15 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImpor
10083
9976
  args: [RouterLinkActive]
10084
9977
  }] } });
10085
9978
 
10086
- /**
10087
- * ## Usage
10088
- *
10089
- * 1. Import the `LxTabUiModule` module from `@leanix/components` in your module where you want to use the component.
10090
- *
10091
- * ```ts
10092
- * import { LxTabUiModule } from '@leanix/components';
10093
- *
10094
- * // ...
10095
- *
10096
- * @NgModule({
10097
- * // ...
10098
- * imports: [
10099
- * // ...
10100
- * LxTabUiModule
10101
- * // ...
10102
- * ]
10103
- * })
10104
- * export class MyModule {}
10105
- * ```
10106
- *
10107
- * 2. Use the component in your template.
10108
- */
10109
9979
  class TabGroupComponent {
9980
+ /** @internal */
10110
9981
  get tabIds() {
10111
9982
  return this.tabs.map((t) => t.tabId);
10112
9983
  }
10113
9984
  get tabs() {
10114
9985
  return this.tabsQueryList?.toArray() || [];
10115
9986
  }
9987
+ /** @internal */
10116
9988
  get activeTabPortal() {
10117
9989
  return this.tabs[this.selectedIndex]?.content;
10118
9990
  }
@@ -10126,8 +9998,10 @@ class TabGroupComponent {
10126
9998
  this.indexChange = new EventEmitter();
10127
9999
  /**
10128
10000
  * The tab that is currently focused via keyboard.
10001
+ * @internal
10129
10002
  */
10130
10003
  this.focusedIndex = 0;
10004
+ /** @internal */
10131
10005
  this.destroyed$ = new Subject();
10132
10006
  this.listenToFirstTabSelectByAngularRouterForTabLinks().subscribe((tab) => {
10133
10007
  // synchonize the focusedIndex and selectedIndex state with the tab that is active through the current route.
@@ -10163,12 +10037,14 @@ class TabGroupComponent {
10163
10037
  ngOnDestroy() {
10164
10038
  this.destroyed$.next();
10165
10039
  }
10040
+ /** @internal */
10166
10041
  onFocusOut(event) {
10167
10042
  if (!this.tabListElement?.nativeElement?.contains(event.relatedTarget)) {
10168
10043
  // resync focused index on selected index when leaving tabs
10169
10044
  this.focusedIndex = this.selectedIndex;
10170
10045
  }
10171
10046
  }
10047
+ /** @internal */
10172
10048
  switchTo(tab) {
10173
10049
  this.tabsQueryList?.forEach((t, index) => {
10174
10050
  t.isActive = t === tab;
@@ -10180,6 +10056,7 @@ class TabGroupComponent {
10180
10056
  });
10181
10057
  this.cd.markForCheck();
10182
10058
  }
10059
+ /** @internal */
10183
10060
  handleKeyDown(event) {
10184
10061
  switch (event.code) {
10185
10062
  case LxTabGroupKeyCode.ArrowRight: