@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.
- package/esm2022/lib/core-ui/components/badge/badge.component.mjs +1 -9
- package/esm2022/lib/core-ui/components/banner/banner.component.mjs +1 -11
- package/esm2022/lib/core-ui/components/button/button.component.mjs +1 -9
- package/esm2022/lib/core-ui/components/card/card.component.mjs +1 -9
- package/esm2022/lib/core-ui/components/counter/counter.component.mjs +1 -9
- package/esm2022/lib/core-ui/components/skeleton/skeleton.component.mjs +1 -12
- package/esm2022/lib/core-ui/components/tiny-spinner/tiny-spinner.component.mjs +1 -9
- package/esm2022/lib/core-ui/core-ui.constants.mjs +12 -9
- package/esm2022/lib/core-ui/tooltip/tooltip.directive.mjs +1 -9
- package/esm2022/lib/forms-ui/components/breadcrumb/breadcrumb.component.mjs +1 -9
- package/esm2022/lib/forms-ui/components/date-input/date-input.component.mjs +1 -9
- package/esm2022/lib/forms-ui/components/single-select/single-select.component.mjs +1 -12
- package/esm2022/lib/forms-ui/components/switch/switch.component.mjs +1 -9
- package/esm2022/lib/popover-ui/components/popover/popover.component.mjs +3 -9
- package/esm2022/lib/tab-ui/components/tab-group/tab-group.component.mjs +8 -24
- package/fesm2022/leanix-components.mjs +20 -143
- package/fesm2022/leanix-components.mjs.map +1 -1
- package/lib/core-ui/components/badge/badge.component.d.ts +0 -8
- package/lib/core-ui/components/banner/banner.component.d.ts +0 -10
- package/lib/core-ui/components/button/button.component.d.ts +0 -8
- package/lib/core-ui/components/card/card.component.d.ts +0 -8
- package/lib/core-ui/components/counter/counter.component.d.ts +0 -8
- package/lib/core-ui/components/skeleton/skeleton.component.d.ts +0 -11
- package/lib/core-ui/components/tiny-spinner/tiny-spinner.component.d.ts +0 -8
- package/lib/core-ui/tooltip/tooltip.directive.d.ts +0 -8
- package/lib/forms-ui/components/breadcrumb/breadcrumb.component.d.ts +0 -8
- package/lib/forms-ui/components/date-input/date-input.component.d.ts +0 -8
- package/lib/forms-ui/components/single-select/single-select.component.d.ts +0 -11
- package/lib/forms-ui/components/switch/switch.component.d.ts +0 -8
- package/lib/popover-ui/components/popover/popover.component.d.ts +2 -8
- package/lib/tab-ui/components/tab-group/tab-group.component.d.ts +10 -23
- 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
|
-
* ##
|
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:
|