@odx/angular 12.19.2 → 12.20.0
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/CHANGELOG.md +6 -0
- package/cdk/scrollable/README.md +3 -0
- package/cdk/scrollable/index.d.ts +1 -0
- package/cdk/scrollable/lib/scrollable.service.d.ts +53 -0
- package/components/tab-bar/lib/components/tab-bar-item/tab-bar-item.component.d.ts +4 -5
- package/components/tab-bar/lib/tab-bar.component.d.ts +22 -44
- package/esm2022/cdk/scrollable/index.mjs +2 -0
- package/esm2022/cdk/scrollable/lib/scrollable.service.mjs +108 -0
- package/esm2022/cdk/scrollable/odx-angular-cdk-scrollable.mjs +5 -0
- package/esm2022/components/tab-bar/lib/components/tab-bar-item/tab-bar-item.component.mjs +10 -17
- package/esm2022/components/tab-bar/lib/tab-bar.component.mjs +75 -114
- package/fesm2022/odx-angular-cdk-scrollable.mjs +115 -0
- package/fesm2022/odx-angular-cdk-scrollable.mjs.map +1 -0
- package/fesm2022/odx-angular-components-tab-bar.mjs +82 -128
- package/fesm2022/odx-angular-components-tab-bar.mjs.map +1 -1
- package/package.json +7 -1
package/CHANGELOG.md
CHANGED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './lib/scrollable.service';
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
import { ElementRef, OnDestroy } from '@angular/core';
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
export interface ScrollableItem {
|
|
4
|
+
element: ElementRef<HTMLElement>;
|
|
5
|
+
}
|
|
6
|
+
/**
|
|
7
|
+
* Service to manage scrollable items within a container, providing functionality to observe item visibility
|
|
8
|
+
* and navigate through them.
|
|
9
|
+
*/
|
|
10
|
+
export declare class ScrollableService implements OnDestroy {
|
|
11
|
+
private intersectionObserver?;
|
|
12
|
+
private scrollContainer?;
|
|
13
|
+
/**
|
|
14
|
+
* References to the next and previous scrollable items.
|
|
15
|
+
*
|
|
16
|
+
* @type {HTMLElement | null}
|
|
17
|
+
*/
|
|
18
|
+
readonly nextItem: import("@angular/core").WritableSignal<HTMLElement | null>;
|
|
19
|
+
/**
|
|
20
|
+
* References to the previous scrollable item.
|
|
21
|
+
*
|
|
22
|
+
* @type {HTMLElement | null}
|
|
23
|
+
*/
|
|
24
|
+
readonly prevItem: import("@angular/core").WritableSignal<HTMLElement | null>;
|
|
25
|
+
/** List of currently visible items within the scroll container.
|
|
26
|
+
*
|
|
27
|
+
* @type {HTMLElement[]}
|
|
28
|
+
*/
|
|
29
|
+
readonly visibleItems: import("@angular/core").WritableSignal<HTMLElement[]>;
|
|
30
|
+
ngOnDestroy(): void;
|
|
31
|
+
/**
|
|
32
|
+
* Starts observing the scrollable items within the specified container.
|
|
33
|
+
*
|
|
34
|
+
* @param {ElementRef<HTMLElement>} scrollContainer - The container element that holds the scrollable items.
|
|
35
|
+
* @param {readonly ScrollableItem[]} items - The list of scrollable items to observe.
|
|
36
|
+
*/
|
|
37
|
+
observe(scrollContainer: ElementRef<HTMLElement>, items: readonly ScrollableItem[]): void;
|
|
38
|
+
/**
|
|
39
|
+
* Scrolls the container in the specified direction.
|
|
40
|
+
*
|
|
41
|
+
* @param {'next' | 'prev'} direction - The direction to scroll ('next' for right, 'prev' for left).
|
|
42
|
+
*/
|
|
43
|
+
scroll(direction?: 1 | -1): void;
|
|
44
|
+
/**
|
|
45
|
+
* Scrolls the active item into view within the scroll container.
|
|
46
|
+
*
|
|
47
|
+
* @param {HTMLElement | null} activeItem - The currently active item to scroll into view.
|
|
48
|
+
*/
|
|
49
|
+
scrollActiveItemIntoView(activeItem: HTMLElement | null): void;
|
|
50
|
+
private observeVisibility;
|
|
51
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<ScrollableService, never>;
|
|
52
|
+
static ɵprov: i0.ɵɵInjectableDeclaration<ScrollableService>;
|
|
53
|
+
}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { Highlightable } from '@angular/cdk/a11y';
|
|
2
|
-
import { ElementRef,
|
|
2
|
+
import { ElementRef, OnInit } from '@angular/core';
|
|
3
3
|
import * as i0 from "@angular/core";
|
|
4
4
|
/**
|
|
5
5
|
* Represents an individual tab item in a tab bar interface, providing functionalities
|
|
@@ -27,13 +27,13 @@ export declare class TabBarItemComponent implements Highlightable, OnInit {
|
|
|
27
27
|
* @type {boolean}
|
|
28
28
|
* @default false
|
|
29
29
|
*/
|
|
30
|
-
closable: boolean
|
|
30
|
+
closable: import("@angular/core").InputSignalWithTransform<boolean, unknown>;
|
|
31
31
|
/**
|
|
32
32
|
* Event emitter that fires when the tab is closed. It emits the instance of the tab item component.
|
|
33
33
|
*
|
|
34
34
|
* @emits {TabBarItemComponent}
|
|
35
35
|
*/
|
|
36
|
-
tabClose:
|
|
36
|
+
tabClose: import("@angular/core").OutputEmitterRef<TabBarItemComponent>;
|
|
37
37
|
ngOnInit(): void;
|
|
38
38
|
/**
|
|
39
39
|
* Sets the tab as active and applies corresponding styles. This method is part of the
|
|
@@ -48,6 +48,5 @@ export declare class TabBarItemComponent implements Highlightable, OnInit {
|
|
|
48
48
|
protected onClick(): void;
|
|
49
49
|
protected handleClose(event: Event): void;
|
|
50
50
|
static ɵfac: i0.ɵɵFactoryDeclaration<TabBarItemComponent, never>;
|
|
51
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<TabBarItemComponent, "odx-tab-bar-item", never, { "closable": { "alias": "closable"; "required": false; }; }, { "tabClose": "tabClose"; }, never, ["odx-icon", "*"], true, never>;
|
|
52
|
-
static ngAcceptInputType_closable: unknown;
|
|
51
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<TabBarItemComponent, "odx-tab-bar-item", never, { "closable": { "alias": "closable"; "required": false; "isSignal": true; }; }, { "tabClose": "tabClose"; }, never, ["odx-icon", "*"], true, never>;
|
|
53
52
|
}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { ActiveDescendantKeyManager } from '@angular/cdk/a11y';
|
|
2
|
-
import {
|
|
2
|
+
import { ElementRef } from '@angular/core';
|
|
3
3
|
import { TabBarItemComponent } from './components';
|
|
4
4
|
import { TabChangeEvent } from './models';
|
|
5
5
|
import * as i0 from "@angular/core";
|
|
@@ -13,30 +13,18 @@ import * as i0 from "@angular/core";
|
|
|
13
13
|
* making it accessible and user-friendly. Additionally, it handles overflow with navigational arrows,
|
|
14
14
|
* allowing for a smooth user experience even with a large number of tabs.
|
|
15
15
|
*/
|
|
16
|
-
export declare class TabBarComponent
|
|
17
|
-
private readonly changeDetector;
|
|
16
|
+
export declare class TabBarComponent {
|
|
18
17
|
private readonly takeUntilDestroyed;
|
|
19
|
-
private readonly
|
|
20
|
-
protected
|
|
21
|
-
protected
|
|
22
|
-
protected
|
|
23
|
-
protected
|
|
24
|
-
protected
|
|
18
|
+
private readonly scrollableService;
|
|
19
|
+
protected readonly nextTab: import("@angular/core").WritableSignal<HTMLElement | null>;
|
|
20
|
+
protected readonly prevTab: import("@angular/core").WritableSignal<HTMLElement | null>;
|
|
21
|
+
protected readonly tabs: import("@angular/core").Signal<readonly TabBarItemComponent[]>;
|
|
22
|
+
protected readonly activeItem: import("@angular/core").Signal<TabBarItemComponent | null>;
|
|
23
|
+
protected readonly keyManager: ActiveDescendantKeyManager<TabBarItemComponent>;
|
|
24
|
+
protected readonly scrollContainerElement: import("@angular/core").Signal<ElementRef<HTMLElement>>;
|
|
25
25
|
readonly element: ElementRef<HTMLElement>;
|
|
26
26
|
/**
|
|
27
|
-
*
|
|
28
|
-
*
|
|
29
|
-
* @type {boolean}
|
|
30
|
-
*/
|
|
31
|
-
overflowLeft: boolean;
|
|
32
|
-
/**
|
|
33
|
-
* Indicates whether the tab bar has overflowed to the right.
|
|
34
|
-
*
|
|
35
|
-
* @type {boolean}
|
|
36
|
-
*/
|
|
37
|
-
overflowRight: boolean;
|
|
38
|
-
/**
|
|
39
|
-
* Gets or sets the index of the currently selected tab. Use this property to programmatically
|
|
27
|
+
* Index of the currently selected tab. Use this property to programmatically
|
|
40
28
|
* change the active tab. It responds to changes by updating the active state of the corresponding
|
|
41
29
|
* tab item and adjusting the view if necessary.
|
|
42
30
|
*
|
|
@@ -47,7 +35,7 @@ export declare class TabBarComponent implements AfterViewInit {
|
|
|
47
35
|
* <odx-tab-bar [selectedIndex]="1"></odx-tab-bar>
|
|
48
36
|
* ```
|
|
49
37
|
*/
|
|
50
|
-
|
|
38
|
+
selectedIndex: import("@angular/core").ModelSignal<number>;
|
|
51
39
|
/**
|
|
52
40
|
* An EventEmitter that emits whenever a new tab is selected. It provides the `TabChangeEvent`
|
|
53
41
|
* which contains the index of the newly selected tab and the instance of the corresponding
|
|
@@ -65,35 +53,25 @@ export declare class TabBarComponent implements AfterViewInit {
|
|
|
65
53
|
* }
|
|
66
54
|
* ```
|
|
67
55
|
*/
|
|
68
|
-
selectedTabChanged:
|
|
69
|
-
|
|
56
|
+
selectedTabChanged: import("@angular/core").OutputEmitterRef<TabChangeEvent>;
|
|
57
|
+
constructor();
|
|
70
58
|
/**
|
|
71
|
-
* Activates the specified tab item.
|
|
59
|
+
* Activates the specified tab item, making it the currently selected tab.
|
|
60
|
+
* If the item is already active, no action is taken.
|
|
72
61
|
*
|
|
73
|
-
* @param {TabBarItemComponent | null} item - The tab item to activate.
|
|
74
|
-
*
|
|
75
|
-
* @example
|
|
76
|
-
* ```ts
|
|
77
|
-
* // Activate the first tab item
|
|
78
|
-
* tabBar.activateItem(tabItems[0]);
|
|
79
|
-
*
|
|
80
|
-
* // Clear the active item
|
|
81
|
-
* tabBar.activateItem(null);
|
|
82
|
-
* ```
|
|
62
|
+
* @param {TabBarItemComponent | null} item - The tab item to activate.
|
|
83
63
|
*/
|
|
84
64
|
activateItem(item?: TabBarItemComponent | null): void;
|
|
85
65
|
/**
|
|
86
|
-
*
|
|
87
|
-
* If the
|
|
66
|
+
* Fires when the specified tab item is removed from the tab bar.
|
|
67
|
+
* If the item is currently active, the previous tab is activated.
|
|
88
68
|
*
|
|
89
|
-
* @param {TabBarItemComponent} item - The item to
|
|
69
|
+
* @param {TabBarItemComponent} item - The tab item to remove.
|
|
90
70
|
*/
|
|
91
71
|
removeItem(item: TabBarItemComponent): void;
|
|
92
72
|
protected onKeydown(event: KeyboardEvent): void;
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
private activeItemChange;
|
|
73
|
+
protected onFocused(): void;
|
|
74
|
+
protected scrollTabs(direction?: 1 | -1): void;
|
|
96
75
|
static ɵfac: i0.ɵɵFactoryDeclaration<TabBarComponent, never>;
|
|
97
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<TabBarComponent, "odx-tab-bar", never, { "selectedIndex": { "alias": "selectedIndex"; "required": false; }; }, { "selectedTabChanged": "selectedTabChanged"; }, ["tabs"], ["*"], true, never>;
|
|
98
|
-
static ngAcceptInputType_selectedIndex: unknown;
|
|
76
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<TabBarComponent, "odx-tab-bar", never, { "selectedIndex": { "alias": "selectedIndex"; "required": false; "isSignal": true; }; }, { "selectedIndex": "selectedIndexChange"; "selectedTabChanged": "selectedTabChanged"; }, ["tabs"], ["*"], true, never>;
|
|
99
77
|
}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export * from './lib/scrollable.service';
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXIvY2RrL3Njcm9sbGFibGUvc3JjL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsMEJBQTBCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2xpYi9zY3JvbGxhYmxlLnNlcnZpY2UnO1xuIl19
|
|
@@ -0,0 +1,108 @@
|
|
|
1
|
+
import { Injectable, signal } from '@angular/core';
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
/**
|
|
4
|
+
* Service to manage scrollable items within a container, providing functionality to observe item visibility
|
|
5
|
+
* and navigate through them.
|
|
6
|
+
*/
|
|
7
|
+
export class ScrollableService {
|
|
8
|
+
constructor() {
|
|
9
|
+
/**
|
|
10
|
+
* References to the next and previous scrollable items.
|
|
11
|
+
*
|
|
12
|
+
* @type {HTMLElement | null}
|
|
13
|
+
*/
|
|
14
|
+
this.nextItem = signal(null);
|
|
15
|
+
/**
|
|
16
|
+
* References to the previous scrollable item.
|
|
17
|
+
*
|
|
18
|
+
* @type {HTMLElement | null}
|
|
19
|
+
*/
|
|
20
|
+
this.prevItem = signal(null);
|
|
21
|
+
/** List of currently visible items within the scroll container.
|
|
22
|
+
*
|
|
23
|
+
* @type {HTMLElement[]}
|
|
24
|
+
*/
|
|
25
|
+
this.visibleItems = signal([]);
|
|
26
|
+
}
|
|
27
|
+
ngOnDestroy() {
|
|
28
|
+
this.intersectionObserver?.disconnect();
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* Starts observing the scrollable items within the specified container.
|
|
32
|
+
*
|
|
33
|
+
* @param {ElementRef<HTMLElement>} scrollContainer - The container element that holds the scrollable items.
|
|
34
|
+
* @param {readonly ScrollableItem[]} items - The list of scrollable items to observe.
|
|
35
|
+
*/
|
|
36
|
+
observe(scrollContainer, items) {
|
|
37
|
+
this.scrollContainer = scrollContainer;
|
|
38
|
+
if (this.intersectionObserver) {
|
|
39
|
+
this.intersectionObserver.disconnect();
|
|
40
|
+
}
|
|
41
|
+
const allItems = items.map((item) => item.element.nativeElement);
|
|
42
|
+
if (!this.scrollContainer || allItems.length === 0) {
|
|
43
|
+
this.nextItem.set(null);
|
|
44
|
+
this.prevItem.set(null);
|
|
45
|
+
return;
|
|
46
|
+
}
|
|
47
|
+
this.intersectionObserver = this.observeVisibility(allItems, (visible) => {
|
|
48
|
+
let prevItem = null;
|
|
49
|
+
let nextItem = null;
|
|
50
|
+
if (visible.length > 0 && allItems.length > visible.length) {
|
|
51
|
+
const firstVisibleIndex = allItems.indexOf(visible[0]);
|
|
52
|
+
if (firstVisibleIndex > 0) {
|
|
53
|
+
prevItem = allItems[firstVisibleIndex - 1];
|
|
54
|
+
}
|
|
55
|
+
const lastVisibleIndex = allItems.indexOf(visible[visible.length - 1]);
|
|
56
|
+
if (lastVisibleIndex < allItems.length - 1) {
|
|
57
|
+
nextItem = allItems[lastVisibleIndex + 1];
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
this.nextItem.set(nextItem);
|
|
61
|
+
this.prevItem.set(prevItem);
|
|
62
|
+
});
|
|
63
|
+
}
|
|
64
|
+
/**
|
|
65
|
+
* Scrolls the container in the specified direction.
|
|
66
|
+
*
|
|
67
|
+
* @param {'next' | 'prev'} direction - The direction to scroll ('next' for right, 'prev' for left).
|
|
68
|
+
*/
|
|
69
|
+
scroll(direction = 1) {
|
|
70
|
+
const container = this.scrollContainer?.nativeElement;
|
|
71
|
+
if (!container)
|
|
72
|
+
return;
|
|
73
|
+
container.scrollBy({ left: (container.clientWidth * direction) / 2 });
|
|
74
|
+
}
|
|
75
|
+
/**
|
|
76
|
+
* Scrolls the active item into view within the scroll container.
|
|
77
|
+
*
|
|
78
|
+
* @param {HTMLElement | null} activeItem - The currently active item to scroll into view.
|
|
79
|
+
*/
|
|
80
|
+
scrollActiveItemIntoView(activeItem) {
|
|
81
|
+
if (activeItem) {
|
|
82
|
+
activeItem.scrollIntoView({ behavior: 'smooth', block: 'nearest', inline: 'center' });
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
observeVisibility(items, callback) {
|
|
86
|
+
const visibleMap = new Map();
|
|
87
|
+
const observer = new IntersectionObserver((entries) => {
|
|
88
|
+
for (const entry of entries) {
|
|
89
|
+
const isVisible = entry.isIntersecting && entry.intersectionRatio >= 0.75;
|
|
90
|
+
visibleMap.set(entry.target, isVisible);
|
|
91
|
+
}
|
|
92
|
+
const visible = items.filter((item) => visibleMap.get(item));
|
|
93
|
+
this.visibleItems.set(visible);
|
|
94
|
+
callback(visible);
|
|
95
|
+
}, {
|
|
96
|
+
root: this.scrollContainer.nativeElement,
|
|
97
|
+
threshold: 1,
|
|
98
|
+
});
|
|
99
|
+
items.forEach((item) => observer.observe(item));
|
|
100
|
+
return observer;
|
|
101
|
+
}
|
|
102
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ScrollableService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
103
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ScrollableService }); }
|
|
104
|
+
}
|
|
105
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ScrollableService, decorators: [{
|
|
106
|
+
type: Injectable
|
|
107
|
+
}] });
|
|
108
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2Nyb2xsYWJsZS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9hbmd1bGFyL2Nkay9zY3JvbGxhYmxlL3NyYy9saWIvc2Nyb2xsYWJsZS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBYyxVQUFVLEVBQWEsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDOztBQU0xRTs7O0dBR0c7QUFFSCxNQUFNLE9BQU8saUJBQWlCO0lBRDlCO1FBS0U7Ozs7V0FJRztRQUNhLGFBQVEsR0FBRyxNQUFNLENBQXFCLElBQUksQ0FBQyxDQUFDO1FBRTVEOzs7O1dBSUc7UUFDYSxhQUFRLEdBQUcsTUFBTSxDQUFxQixJQUFJLENBQUMsQ0FBQztRQUU1RDs7O1dBR0c7UUFDYSxpQkFBWSxHQUFHLE1BQU0sQ0FBZ0IsRUFBRSxDQUFDLENBQUM7S0EwRjFEO0lBeEZRLFdBQVc7UUFDaEIsSUFBSSxDQUFDLG9CQUFvQixFQUFFLFVBQVUsRUFBRSxDQUFDO0lBQzFDLENBQUM7SUFFRDs7Ozs7T0FLRztJQUNJLE9BQU8sQ0FBQyxlQUF3QyxFQUFFLEtBQWdDO1FBQ3ZGLElBQUksQ0FBQyxlQUFlLEdBQUcsZUFBZSxDQUFDO1FBQ3ZDLElBQUksSUFBSSxDQUFDLG9CQUFvQixFQUFFLENBQUM7WUFDOUIsSUFBSSxDQUFDLG9CQUFvQixDQUFDLFVBQVUsRUFBRSxDQUFDO1FBQ3pDLENBQUM7UUFFRCxNQUFNLFFBQVEsR0FBRyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLGFBQWEsQ0FBQyxDQUFDO1FBQ2pFLElBQUksQ0FBQyxJQUFJLENBQUMsZUFBZSxJQUFJLFFBQVEsQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFLENBQUM7WUFDbkQsSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUM7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SSxDQUFDLGVBQWdCLENBQUMsYUFBYTtZQUN6QyxTQUFTLEVBQUUsQ0FBQztTQUNiLENBQ0YsQ0FBQztRQUVGLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztRQUNoRCxPQUFPLFFBQVEsQ0FBQztJQUNsQixDQUFDOytHQS9HVSxpQkFBaUI7bUhBQWpCLGlCQUFpQjs7NEZBQWpCLGlCQUFpQjtrQkFEN0IsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEVsZW1lbnRSZWYsIEluamVjdGFibGUsIE9uRGVzdHJveSwgc2lnbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgU2Nyb2xsYWJsZUl0ZW0ge1xuICBlbGVtZW50OiBFbGVtZW50UmVmPEhUTUxFbGVtZW50Pjtcbn1cblxuLyoqXG4gKiBTZXJ2aWNlIHRvIG1hbmFnZSBzY3JvbGxhYmxlIGl0ZW1zIHdpdGhpbiBhIGNvbnRhaW5lciwgcHJvdmlkaW5nIGZ1bmN0aW9uYWxpdHkgdG8gb2JzZXJ2ZSBpdGVtIHZpc2liaWxpdHlcbiAqIGFuZCBuYXZpZ2F0ZSB0aHJvdWdoIHRoZW0uXG4gKi9cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBTY3JvbGxhYmxlU2VydmljZSBpbXBsZW1lbnRzIE9uRGVzdHJveSB7XG4gIHByaXZhdGUgaW50ZXJzZWN0aW9uT2JzZXJ2ZXI/OiBJbnRlcnNlY3Rpb25PYnNlcnZlcjtcbiAgcHJpdmF0ZSBzY3JvbGxDb250YWluZXI/OiBFbGVtZW50UmVmPEhUTUxFbGVtZW50PjtcblxuICAvKipcbiAgICogUmVmZXJlbmNlcyB0byB0aGUgbmV4dCBhbmQgcHJldmlvdXMgc2Nyb2xsYWJsZSBpdGVtcy5cbiAgICpcbiAgICogQHR5cGUge0hUTUxFbGVtZW50IHwgbnVsbH1cbiAgICovXG4gIHB1YmxpYyByZWFkb25seSBuZXh0SXRlbSA9IHNpZ25hbDxIVE1MRWxlbWVudCB8IG51bGw+KG51bGwpO1xuXG4gIC8qKlxuICAgKiBSZWZlcmVuY2VzIHRvIHRoZSBwcmV2aW91cyBzY3JvbGxhYmxlIGl0ZW0uXG4gICAqXG4gICAqIEB0eXBlIHtIVE1MRWxlbWVudCB8IG51bGx9XG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgcHJldkl0ZW0gPSBzaWduYWw8SFRNTEVsZW1lbnQgfCBudWxsPihudWxsKTtcblxuICAvKiogTGlzdCBvZiBjdXJyZW50bHkgdmlzaWJsZSBpdGVtcyB3aXRoaW4gdGhlIHNjcm9sbCBjb250YWluZXIuXG4gICAqXG4gICAqIEB0eXBlIHtIVE1MRWxlbWVudFtdfVxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IHZpc2libGVJdGVtcyA9IHNpZ25hbDxIVE1MRWxlbWVudFtdPihbXSk7XG5cbiAgcHVibGljIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuaW50ZXJzZWN0aW9uT2JzZXJ2ZXI/LmRpc2Nvbm5lY3QoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTdGFydHMgb2JzZXJ2aW5nIHRoZSBzY3JvbGxhYmxlIGl0ZW1zIHdpdGhpbiB0aGUgc3BlY2lmaWVkIGNvbnRhaW5lci5cbiAgICpcbiAgICogQHBhcmFtIHtFbGVtZW50UmVmPEhUTUxFbGVtZW50Pn0gc2Nyb2xsQ29udGFpbmVyIC0gVGhlIGNvbnRhaW5lciBlbGVtZW50IHRoYXQgaG9sZHMgdGhlIHNjcm9sbGFibGUgaXRlbXMuXG4gICAqIEBwYXJhbSB7cmVhZG9ubHkgU2Nyb2xsYWJsZUl0ZW1bXX0gaXRlbXMgLSBUaGUgbGlzdCBvZiBzY3JvbGxhYmxlIGl0ZW1zIHRvIG9ic2VydmUuXG4gICAqL1xuICBwdWJsaWMgb2JzZXJ2ZShzY3JvbGxDb250YWluZXI6IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+LCBpdGVtczogcmVhZG9ubHkgU2Nyb2xsYWJsZUl0ZW1bXSk6IHZvaWQge1xuICAgIHRoaXMuc2Nyb2xsQ29udGFpbmVyID0gc2Nyb2xsQ29udGFpbmVyO1xuICAgIGlmICh0aGlzLmludGVyc2VjdGlvbk9ic2VydmVyKSB7XG4gICAgICB0aGlzLmludGVyc2VjdGlvbk9ic2VydmVyLmRpc2Nvbm5lY3QoKTtcbiAgICB9XG5cbiAgICBjb25zdCBhbGxJdGVtcyA9IGl0ZW1zLm1hcCgoaXRlbSkgPT4gaXRlbS5lbGVtZW50Lm5hdGl2ZUVsZW1lbnQpO1xuICAgIGlmICghdGhpcy5zY3JvbGxDb250YWluZXIgfHwgYWxsSXRlbXMubGVuZ3RoID09PSAwKSB7XG4gICAgICB0aGlzLm5leHRJdGVtLnNldChudWxsKTtcbiAgICAgIHRoaXMucHJldkl0ZW0uc2V0KG51bGwpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMuaW50ZXJzZWN0aW9uT2JzZXJ2ZXIgPSB0aGlzLm9ic2VydmVWaXNpYmlsaXR5KGFsbEl0ZW1zLCAodmlzaWJsZSkgPT4ge1xuICAgICAgbGV0IHByZXZJdGVtOiBIVE1MRWxlbWVudCB8IG51bGwgPSBudWxsO1xuICAgICAgbGV0IG5leHRJdGVtOiBIVE1MRWxlbWVudCB8IG51bGwgPSBudWxsO1xuXG4gICAgICBpZiAodmlzaWJsZS5sZW5ndGggPiAwICYmIGFsbEl0ZW1zLmxlbmd0aCA+IHZpc2libGUubGVuZ3RoKSB7XG4gICAgICAgIGNvbnN0IGZpcnN0VmlzaWJsZUluZGV4ID0gYWxsSXRlbXMuaW5kZXhPZih2aXNpYmxlWzBdKTtcbiAgICAgICAgaWYgKGZpcnN0VmlzaWJsZUluZGV4ID4gMCkge1xuICAgICAgICAgIHByZXZJdGVtID0gYWxsSXRlbXNbZmlyc3RWaXNpYmxlSW5kZXggLSAxXTtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IGxhc3RWaXNpYmxlSW5kZXggPSBhbGxJdGVtcy5pbmRleE9mKHZpc2libGVbdmlzaWJsZS5sZW5ndGggLSAxXSk7XG4gICAgICAgIGlmIChsYXN0VmlzaWJsZUluZGV4IDwgYWxsSXRlbXMubGVuZ3RoIC0gMSkge1xuICAgICAgICAgIG5leHRJdGVtID0gYWxsSXRlbXNbbGFzdFZpc2libGVJbmRleCArIDFdO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIHRoaXMubmV4dEl0ZW0uc2V0KG5leHRJdGVtKTtcbiAgICAgIHRoaXMucHJldkl0ZW0uc2V0KHByZXZJdGVtKTtcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTY3JvbGxzIHRoZSBjb250YWluZXIgaW4gdGhlIHNwZWNpZmllZCBkaXJlY3Rpb24uXG4gICAqXG4gICAqIEBwYXJhbSB7J25leHQnIHwgJ3ByZXYnfSBkaXJlY3Rpb24gLSBUaGUgZGlyZWN0aW9uIHRvIHNjcm9sbCAoJ25leHQnIGZvciByaWdodCwgJ3ByZXYnIGZvciBsZWZ0KS5cbiAgICovXG4gIHB1YmxpYyBzY3JvbGwoZGlyZWN0aW9uOiAxIHwgLTEgPSAxKTogdm9pZCB7XG4gICAgY29uc3QgY29udGFpbmVyID0gdGhpcy5zY3JvbGxDb250YWluZXI/Lm5hdGl2ZUVsZW1lbnQ7XG4gICAgaWYgKCFjb250YWluZXIpIHJldHVybjtcblxuICAgIGNvbnRhaW5lci5zY3JvbGxCeSh7IGxlZnQ6IChjb250YWluZXIuY2xpZW50V2lkdGggKiBkaXJlY3Rpb24pIC8gMiB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTY3JvbGxzIHRoZSBhY3RpdmUgaXRlbSBpbnRvIHZpZXcgd2l0aGluIHRoZSBzY3JvbGwgY29udGFpbmVyLlxuICAgKlxuICAgKiBAcGFyYW0ge0hUTUxFbGVtZW50IHwgbnVsbH0gYWN0aXZlSXRlbSAtIFRoZSBjdXJyZW50bHkgYWN0aXZlIGl0ZW0gdG8gc2Nyb2xsIGludG8gdmlldy5cbiAgICovXG4gIHB1YmxpYyBzY3JvbGxBY3RpdmVJdGVtSW50b1ZpZXcoYWN0aXZlSXRlbTogSFRNTEVsZW1lbnQgfCBudWxsKTogdm9pZCB7XG4gICAgaWYgKGFjdGl2ZUl0ZW0pIHtcbiAgICAgIGFjdGl2ZUl0ZW0uc2Nyb2xsSW50b1ZpZXcoeyBiZWhhdmlvcjogJ3Ntb290aCcsIGJsb2NrOiAnbmVhcmVzdCcsIGlubGluZTogJ2NlbnRlcicgfSk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBvYnNlcnZlVmlzaWJpbGl0eShpdGVtczogSFRNTEVsZW1lbnRbXSwgY2FsbGJhY2s6ICh2aXNpYmxlOiBIVE1MRWxlbWVudFtdKSA9PiB2b2lkKTogSW50ZXJzZWN0aW9uT2JzZXJ2ZXIge1xuICAgIGNvbnN0IHZpc2libGVNYXAgPSBuZXcgTWFwPEhUTUxFbGVtZW50LCBib29sZWFuPigpO1xuICAgIGNvbnN0IG9ic2VydmVyID0gbmV3IEludGVyc2VjdGlvbk9ic2VydmVyKFxuICAgICAgKGVudHJpZXMpID0+IHtcbiAgICAgICAgZm9yIChjb25zdCBlbnRyeSBvZiBlbnRyaWVzKSB7XG4gICAgICAgICAgY29uc3QgaXNWaXNpYmxlID0gZW50cnkuaXNJbnRlcnNlY3RpbmcgJiYgZW50cnkuaW50ZXJzZWN0aW9uUmF0aW8gPj0gMC43NTtcbiAgICAgICAgICB2aXNpYmxlTWFwLnNldChlbnRyeS50YXJnZXQgYXMgSFRNTEVsZW1lbnQsIGlzVmlzaWJsZSk7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgdmlzaWJsZSA9IGl0ZW1zLmZpbHRlcigoaXRlbSkgPT4gdmlzaWJsZU1hcC5nZXQoaXRlbSkpO1xuICAgICAgICB0aGlzLnZpc2libGVJdGVtcy5zZXQodmlzaWJsZSk7XG4gICAgICAgIGNhbGxiYWNrKHZpc2libGUpO1xuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgcm9vdDogdGhpcy5zY3JvbGxDb250YWluZXIhLm5hdGl2ZUVsZW1lbnQsXG4gICAgICAgIHRocmVzaG9sZDogMSxcbiAgICAgIH0sXG4gICAgKTtcblxuICAgIGl0ZW1zLmZvckVhY2goKGl0ZW0pID0+IG9ic2VydmVyLm9ic2VydmUoaXRlbSkpO1xuICAgIHJldHVybiBvYnNlcnZlcjtcbiAgfVxufVxuIl19
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Generated bundle index. Do not edit.
|
|
3
|
+
*/
|
|
4
|
+
export * from './index';
|
|
5
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib2R4LWFuZ3VsYXItY2RrLXNjcm9sbGFibGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXIvY2RrL3Njcm9sbGFibGUvc3JjL29keC1hbmd1bGFyLWNkay1zY3JvbGxhYmxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBRUgsY0FBYyxTQUFTLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEdlbmVyYXRlZCBidW5kbGUgaW5kZXguIERvIG5vdCBlZGl0LlxuICovXG5cbmV4cG9ydCAqIGZyb20gJy4vaW5kZXgnO1xuIl19
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { __decorate } from "tslib";
|
|
2
2
|
import { CommonModule } from '@angular/common';
|
|
3
|
-
import { booleanAttribute, ChangeDetectionStrategy, Component, ElementRef,
|
|
3
|
+
import { booleanAttribute, ChangeDetectionStrategy, Component, ElementRef, inject, input, output, ViewEncapsulation } from '@angular/core';
|
|
4
4
|
import { RouterLinkActive } from '@angular/router';
|
|
5
5
|
import { DisabledController } from '@odx/angular';
|
|
6
6
|
import { IconComponent } from '@odx/angular/components/icon';
|
|
@@ -35,13 +35,13 @@ let TabBarItemComponent = class TabBarItemComponent {
|
|
|
35
35
|
* @type {boolean}
|
|
36
36
|
* @default false
|
|
37
37
|
*/
|
|
38
|
-
this.closable = false;
|
|
38
|
+
this.closable = input(false, { transform: booleanAttribute });
|
|
39
39
|
/**
|
|
40
40
|
* Event emitter that fires when the tab is closed. It emits the instance of the tab item component.
|
|
41
41
|
*
|
|
42
42
|
* @emits {TabBarItemComponent}
|
|
43
43
|
*/
|
|
44
|
-
this.tabClose =
|
|
44
|
+
this.tabClose = output();
|
|
45
45
|
}
|
|
46
46
|
get disabled() {
|
|
47
47
|
return !!this.disabledController?.disabled;
|
|
@@ -72,13 +72,13 @@ let TabBarItemComponent = class TabBarItemComponent {
|
|
|
72
72
|
}
|
|
73
73
|
handleClose(event) {
|
|
74
74
|
event.stopPropagation();
|
|
75
|
-
if (this.disabled || !this.closable)
|
|
75
|
+
if (this.disabled || !this.closable())
|
|
76
76
|
return;
|
|
77
77
|
this.tabBar.removeItem(this);
|
|
78
78
|
this.tabClose.emit(this);
|
|
79
79
|
}
|
|
80
80
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: TabBarItemComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
81
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: TabBarItemComponent, isStandalone: true, selector: "odx-tab-bar-item", inputs: { closable:
|
|
81
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: TabBarItemComponent, isStandalone: true, selector: "odx-tab-bar-item", inputs: { closable: { classPropertyName: "closable", publicName: "closable", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { tabClose: "tabClose" }, host: { attributes: { "role": "tab" }, listeners: { "click": "onClick()" }, properties: { "class.is-disabled": "disabled", "class.is-active": "isActive", "attr.aria-selected": "isActive", "class.is-closable": "closable()" } }, providers: [DisabledController.connect()], ngImport: i0, template: "<ng-content select=\"odx-icon\" />\n<div class=\"odx-tab-bar-item__label\"><ng-content /></div>\n@if (closable()) {\n <odx-icon name=\"close\" iconSet=\"core\" size=\"small\" (click)=\"handleClose($event)\" />\n}\n", dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "component", type: IconComponent, selector: "odx-icon", inputs: ["inline", "size", "name", "iconSet", "identifier"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
82
82
|
};
|
|
83
83
|
TabBarItemComponent = __decorate([
|
|
84
84
|
CSSComponent('tab-bar-item')
|
|
@@ -90,16 +90,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
90
90
|
'[class.is-disabled]': 'disabled',
|
|
91
91
|
'[class.is-active]': 'isActive',
|
|
92
92
|
'[attr.aria-selected]': 'isActive',
|
|
93
|
-
'[class.is-closable]': 'closable',
|
|
93
|
+
'[class.is-closable]': 'closable()',
|
|
94
94
|
role: 'tab',
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
}], tabClose: [{
|
|
100
|
-
type: Output
|
|
101
|
-
}], onClick: [{
|
|
102
|
-
type: HostListener,
|
|
103
|
-
args: ['click']
|
|
104
|
-
}] } });
|
|
105
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFiLWJhci1pdGVtLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYW5ndWxhci9jb21wb25lbnRzL3RhYi1iYXIvc3JjL2xpYi9jb21wb25lbnRzL3RhYi1iYXItaXRlbS90YWItYmFyLWl0ZW0uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9hbmd1bGFyL2NvbXBvbmVudHMvdGFiLWJhci9zcmMvbGliL2NvbXBvbmVudHMvdGFiLWJhci1pdGVtL3RhYi1iYXItaXRlbS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQ0EsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFDTCxnQkFBZ0IsRUFDaEIsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFDVCxVQUFVLEVBQ1YsWUFBWSxFQUNaLFlBQVksRUFDWixNQUFNLEVBQ04sS0FBSyxFQUVMLE1BQU0sRUFDTixpQkFBaUIsR0FDbEIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDbkQsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sY0FBYyxDQUFDO0FBQ2xELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUM3RCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDckQsT0FBTyxFQUFFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUM3RCxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQzlCLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQzs7QUFFL0M7Ozs7Ozs7Ozs7R0FVRztBQWtCSSxJQUFNLG1CQUFtQixHQUF6QixNQUFNLG1CQUFtQjtJQUF6QjtRQUNZ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cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSGlnaGxpZ2h0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9hMTF5JztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQge1xuICBib29sZWFuQXR0cmlidXRlLFxuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ29tcG9uZW50LFxuICBFbGVtZW50UmVmLFxuICBFdmVudEVtaXR0ZXIsXG4gIEhvc3RMaXN0ZW5lcixcbiAgaW5qZWN0LFxuICBJbnB1dCxcbiAgT25Jbml0LFxuICBPdXRwdXQsXG4gIFZpZXdFbmNhcHN1bGF0aW9uLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFJvdXRlckxpbmtBY3RpdmUgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHsgRGlzYWJsZWRDb250cm9sbGVyIH0gZnJvbSAnQG9keC9hbmd1bGFyJztcbmltcG9ydCB7IEljb25Db21wb25lbnQgfSBmcm9tICdAb2R4L2FuZ3VsYXIvY29tcG9uZW50cy9pY29uJztcbmltcG9ydCB7IENTU0NvbXBvbmVudCB9IGZyb20gJ0BvZHgvYW5ndWxhci9pbnRlcm5hbCc7XG5pbXBvcnQgeyBkZWZlckZuLCB1bnRpbERlc3Ryb3llZCB9IGZyb20gJ0BvZHgvYW5ndWxhci91dGlscyc7XG5pbXBvcnQgeyBmaWx0ZXIgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IFRBQl9CQVIgfSBmcm9tICcuLi8uLi90YWItYmFyLmNvbmZpZyc7XG5cbi8qKlxuICogUmVwcmVzZW50cyBhbiBpbmRpdmlkdWFsIHRhYiBpdGVtIGluIGEgdGFiIGJhciBpbnRlcmZhY2UsIHByb3ZpZGluZyBmdW5jdGlvbmFsaXRpZXNcbiAqIGZvciBhY3RpdmF0aW9uLCBkZWFjdGl2YXRpb24sIGFuZCBvcHRpb25hbCBjbG9zaW5nIG9mIHRoZSB0YWIuIFRoaXMgY29tcG9uZW50IGlzIGRlc2lnbmVkXG4gKiB0byBiZSB1c2VkIHdpdGhpbiBhIGBUYWJCYXJDb21wb25lbnRgIHRvIGNyZWF0ZSBhIGNvbXBsZXRlIHRhYmJlZCBpbnRlcmZhY2UuXG4gKlxuICogSXQgc3VwcG9ydHMgZGlzYWJsZWQgc3RhdGUgbWFuYWdlbWVudCB0aHJvdWdoIGBEaXNhYmxlZENvbnRyb2xsZXJgLCBhbGxvd2luZyB0aGUgdGFiIHRvIGJlXG4gKiBkaXNhYmxlZCBiYXNlZCBvbiBwYXJlbnQgY29tcG9uZW50IHN0YXRlcyBvciBpdHMgb3duIGBkaXNhYmxlZGAgaW5wdXQgcHJvcGVydHkuXG4gKlxuICogVGhlIGNvbXBvbmVudCBpbnRlZ3JhdGVzIHdpdGggQW5ndWxhcidzIGBSb3V0ZXJMaW5rQWN0aXZlYCB0byBhdXRvbWF0aWNhbGx5IHNldCBhY3RpdmVcbiAqIHN0eWxlcyBiYXNlZCBvbiB0aGUgY3VycmVudCByb3V0ZXIgc3RhdGUsIGVuaGFuY2luZyBTUEEgbmF2aWdhdGlvbiBleHBlcmllbmNlcy5cbiAqL1xuQENTU0NvbXBvbmVudCgndGFiLWJhci1pdGVtJylcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ29keC10YWItYmFyLWl0ZW0nLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBJY29uQ29tcG9uZW50XSxcbiAgdGVtcGxhdGVVcmw6ICcuL3RhYi1iYXItaXRlbS5jb21wb25lbnQuaHRtbCcsXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBwcm92aWRlcnM6IFtEaXNhYmxlZENvbnRyb2xsZXIuY29ubmVjdCgpXSxcbiAgaG9zdDoge1xuICAgICdbY2xhc3MuaXMtZGlzYWJsZWRdJzogJ2Rpc2FibGVkJyxcbiAgICAnW2NsYXNzLmlzLWFjdGl2ZV0nOiAnaXNBY3RpdmUnLFxuICAgICdbYXR0ci5hcmlhLXNlbGVjdGVkXSc6ICdpc0FjdGl2ZScsXG4gICAgJ1tjbGFzcy5pcy1jbG9zYWJsZV0nOiAnY2xvc2FibGUnLFxuICAgIHJvbGU6ICd0YWInLFxuICB9LFxufSlcbmV4cG9ydCBjbGFzcyBUYWJCYXJJdGVtQ29tcG9uZW50IGltcGxlbWVudHMgSGlnaGxpZ2h0YWJsZSwgT25Jbml0IHtcbiAgcHJpdmF0ZSByZWFkb25seSBkaXNhYmxlZENvbnRyb2xsZXIgPSBEaXNhYmxlZENvbnRyb2xsZXIuaW5qZWN0KCk7XG4gIHByaXZhdGUgcmVhZG9ubHkgdGFiQmFyID0gaW5qZWN0KFRBQl9CQVIpO1xuICBwcml2YXRlIHJlYWRvbmx5IHJvdXRlckxpbmtBY3RpdmUgPSBpbmplY3QoUm91dGVyTGlua0FjdGl2ZSwgeyBvcHRpb25hbDogdHJ1ZSwgc2VsZjogdHJ1ZSB9KTtcbiAgcHJpdmF0ZSByZWFkb25seSB0YWtlVW50aWxEZXN0cm95ZWQgPSB1bnRpbERlc3Ryb3llZCgpO1xuXG4gIHByb3RlY3RlZCBpc0FjdGl2ZSA9IGZhbHNlO1xuXG4gIHB1YmxpYyByZWFkb25seSBlbGVtZW50OiBFbGVtZW50UmVmPEhUTUxFbGVtZW50PiA9IGluamVjdChFbGVtZW50UmVmKTtcblxuICBwdWJsaWMgZ2V0IGRpc2FibGVkKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiAhIXRoaXMuZGlzYWJsZWRDb250cm9sbGVyPy5kaXNhYmxlZDtcbiAgfVxuXG4gIC8qKlxuICAgKiBJbmRpY2F0ZXMgaWYgdGhlIHRhYiBjYW4gYmUgY2xvc2VkLiBUaGlzIGNvbnRyb2xzIHRoZSB2aXNpYmlsaXR5IG9mIHRoZSBjbG9zZSBidXR0b25cbiAgICogYW5kIGVuYWJsZXMgdGhlIGVtaXNzaW9uIG9mIHRoZSBgdGFiQ2xvc2VgIGV2ZW50IHdoZW4gdGhlIHRhYiBpcyBjbG9zZWQuXG4gICAqXG4gICAqIEB0eXBlIHtib29sZWFufVxuICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgKi9cbiAgQElucHV0KHsgdHJhbnNmb3JtOiBib29sZWFuQXR0cmlidXRlIH0pXG4gIHB1YmxpYyBjbG9zYWJsZSA9IGZhbHNlO1xuXG4gIC8qKlxuICAgKiBFdmVudCBlbWl0dGVyIHRoYXQgZmlyZXMgd2hlbiB0aGUgdGFiIGlzIGNsb3NlZC4gSXQgZW1pdHMgdGhlIGluc3RhbmNlIG9mIHRoZSB0YWIgaXRlbSBjb21wb25lbnQuXG4gICAqXG4gICAqIEBlbWl0cyB7VGFiQmFySXRlbUNvbXBvbmVudH1cbiAgICovXG4gIEBPdXRwdXQoKVxuICBwdWJsaWMgdGFiQ2xvc2UgPSBuZXcgRXZlbnRFbWl0dGVyPFRhYkJhckl0ZW1Db21wb25lbnQ+KCk7XG5cbiAgcHVibGljIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMucm91dGVyTGlua0FjdGl2ZT8uaXNBY3RpdmVDaGFuZ2UucGlwZSh0aGlzLnRha2VVbnRpbERlc3Ryb3llZCgpLCBmaWx0ZXIoQm9vbGVhbikpLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICB0aGlzLm9uQ2xpY2soKTtcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTZXRzIHRoZSB0YWIgYXMgYWN0aXZlIGFuZCBhcHBsaWVzIGNvcnJlc3BvbmRpbmcgc3R5bGVzLiBUaGlzIG1ldGhvZCBpcyBwYXJ0IG9mIHRoZVxuICAgKiBgSGlnaGxpZ2h0YWJsZWAgaW50ZXJmYWNlLCBhbGxvd2luZyB0aGUgdGFiIGJhciB0byBtYW5hZ2UgYWN0aXZlIHN0YXRlcy5cbiAgICovXG4gIHB1YmxpYyBzZXRBY3RpdmVTdHlsZXMoKTogdm9pZCB7XG4gICAgZGVmZXJGbigoKSA9PiAodGhpcy5pc0FjdGl2ZSA9IHRydWUpKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTZXRzIHRoZSB0YWIgYXMgaW5hY3RpdmUgYW5kIHJlbW92ZXMgY29ycmVzcG9uZGluZyBhY3RpdmUgc3R5bGVzLiBUaGlzIG1ldGhvZCBpcyBwYXJ0IG9mIHRoZVxuICAgKiBgSGlnaGxpZ2h0YWJsZWAgaW50ZXJmYWNlLlxuICAgKi9cbiAgcHVibGljIHNldEluYWN0aXZlU3R5bGVzKCk6IHZvaWQge1xuICAgIGRlZmVyRm4oKCkgPT4gKHRoaXMuaXNBY3RpdmUgPSBmYWxzZSkpO1xuICB9XG5cbiAgQEhvc3RMaXN0ZW5lcignY2xpY2snKVxuICBwcm90ZWN0ZWQgb25DbGljaygpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5kaXNhYmxlZCkgcmV0dXJuO1xuICAgIHRoaXMudGFiQmFyLmFjdGl2YXRlSXRlbSh0aGlzKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBoYW5kbGVDbG9zZShldmVudDogRXZlbnQpOiB2b2lkIHtcbiAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICBpZiAodGhpcy5kaXNhYmxlZCB8fCAhdGhpcy5jbG9zYWJsZSkgcmV0dXJuO1xuICAgIHRoaXMudGFiQmFyLnJlbW92ZUl0ZW0odGhpcyk7XG4gICAgdGhpcy50YWJDbG9zZS5lbWl0KHRoaXMpO1xuICB9XG59XG4iLCI8bmctY29udGVudCBzZWxlY3Q9XCJvZHgtaWNvblwiIC8+XG48ZGl2IGNsYXNzPVwib2R4LXRhYi1iYXItaXRlbV9fbGFiZWxcIj48bmctY29udGVudCAvPjwvZGl2PlxuQGlmIChjbG9zYWJsZSkge1xuICA8b2R4LWljb24gbmFtZT1cImNsb3NlXCIgaWNvblNldD1cImNvcmVcIiBzaXplPVwic21hbGxcIiAoY2xpY2spPVwiaGFuZGxlQ2xvc2UoJGV2ZW50KVwiIC8+XG59XG4iXX0=
|
|
95
|
+
'(click)': 'onClick()',
|
|
96
|
+
}, template: "<ng-content select=\"odx-icon\" />\n<div class=\"odx-tab-bar-item__label\"><ng-content /></div>\n@if (closable()) {\n <odx-icon name=\"close\" iconSet=\"core\" size=\"small\" (click)=\"handleClose($event)\" />\n}\n" }]
|
|
97
|
+
}] });
|
|
98
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFiLWJhci1pdGVtLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYW5ndWxhci9jb21wb25lbnRzL3RhYi1iYXIvc3JjL2xpYi9jb21wb25lbnRzL3RhYi1iYXItaXRlbS90YWItYmFyLWl0ZW0uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9hbmd1bGFyL2NvbXBvbmVudHMvdGFiLWJhci9zcmMvbGliL2NvbXBvbmVudHMvdGFiLWJhci1pdGVtL3RhYi1iYXItaXRlbS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQ0EsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQVUsTUFBTSxFQUFFLGlCQUFpQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ25KLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ25ELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUNsRCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDN0QsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ3JELE9BQU8sRUFBRSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDN0QsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUM5QixPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sc0JBQXNCLENBQUM7O0FBRS9DOzs7Ozs7Ozs7O0dBVUc7QUFtQkksSUFBTSxtQkFBbUIsR0FBekIsTUFBTSxtQkFBbUI7SUFBekI7UUFDWSx1QkFBa0IsR0FBRyxrQkFBa0IsQ0FBQyxNQUFNLEVBQUUsQ0FBQztRQUNqRCxXQUFNLEdBQUcsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ3pCLHFCQUFnQixHQUFHLE1BQU0sQ0FBQyxnQkFBZ0IsRUFBRSxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7UUFDNUUsdUJBQWtCLEdBQUcsY0FBYyxFQUFFLENBQUM7UUFFN0MsYUFBUSxHQUFHLEtBQUssQ0FBQztRQUVYLFlBQU8sR0FBNEIsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBTXRFOzs7Ozs7V0FNRztRQUNJLGFBQVEsR0FBRyxLQUFLLENBQUMsS0FBSyxFQUFFLEVBQUUsU0FBUyxFQUFFLGdCQUFnQixFQUFFLENBQUMsQ0FBQztRQUVoRTs7OztXQUlHO1FBQ0ksYUFBUSxHQUFHLE1BQU0sRUFBdUIsQ0FBQztLQW1DakQ7SUFyREMsSUFBVyxRQUFRO1FBQ2pCLE9BQU8sQ0FBQyxDQUFDLElBQUksQ0FBQyxrQkFBa0IsRUFBRSxRQUFRLENBQUM7SUFDN0MsQ0FBQztJQWtCTSxRQUFRO1FBQ2IsSUFBSSxDQUFDLGdCQUFnQixFQUFFLGNBQWMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLGtCQUFrQixFQUFFLEVBQUUsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLEdBQUcsRUFBRTtZQUNwRyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7UUFDakIsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQ7OztPQUdHO0lBQ0ksZUFBZTtRQUNwQixPQUFPLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxDQUFDLENBQUM7SUFDeEMsQ0FBQztJQUVEOzs7T0FHRztJQUNJLGlCQUFpQjtRQUN0QixPQUFPLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsUUFBUSxHQUFHLEtBQUssQ0FBQyxDQUFDLENBQUM7SUFDekMsQ0FBQztJQUVTLE9BQU87UUFDZixJQUFJLElBQUksQ0FBQyxRQUFRO1lBQUUsT0FBTztRQUMxQixJQUFJLENBQUMsTUFBTSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUNqQyxDQUFDO0lBRVMsV0FBVyxDQUFDLEtBQVk7UUFDaEMsS0FBSyxDQUFDLGVBQWUsRUFBRSxDQUFDO1FBQ3hCLElBQUksSUFBSSxDQUFDLFFBQVEsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUU7WUFBRSxPQUFPO1FBQzlDLElBQUksQ0FBQyxNQUFNLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQzdCLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQzNCLENBQUM7K0dBOURVLG1CQUFtQjttR0FBbkIsbUJBQW1CLGtkQVZuQixDQUFDLGtCQUFrQixDQUFDLE9BQU8sRUFBRSxDQUFDLDBCQzlCM0MseU5BS0EsMkNEcUJZLFlBQVksK0JBQUUsYUFBYTs7QUFjMUIsbUJBQW1CO0lBbEIvQixZQUFZLENBQUMsY0FBYyxDQUFDO0dBa0JoQixtQkFBbUIsQ0ErRC9COzs0RkEvRFksbUJBQW1CO2tCQWpCL0IsU0FBUzsrQkFDRSxrQkFBa0IsY0FDaEIsSUFBSSxXQUNQLENBQUMsWUFBWSxFQUFFLGFBQWEsQ0FBQyxpQkFFdkIsaUJBQWlCLENBQUMsSUFBSSxtQkFDcEIsdUJBQXVCLENBQUMsTUFBTSxhQUNwQyxDQUFDLGtCQUFrQixDQUFDLE9BQU8sRUFBRSxDQUFDLFFBQ25DO3dCQUNKLHFCQUFxQixFQUFFLFVBQVU7d0JBQ2pDLG1CQUFtQixFQUFFLFVBQVU7d0JBQy9CLHNCQUFzQixFQUFFLFVBQVU7d0JBQ2xDLHFCQUFxQixFQUFFLFlBQVk7d0JBQ25DLElBQUksRUFBRSxLQUFLO3dCQUNYLFNBQVMsRUFBRSxXQUFXO3FCQUN2QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEhpZ2hsaWdodGFibGUgfSBmcm9tICdAYW5ndWxhci9jZGsvYTExeSc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgYm9vbGVhbkF0dHJpYnV0ZSwgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgRWxlbWVudFJlZiwgaW5qZWN0LCBpbnB1dCwgT25Jbml0LCBvdXRwdXQsIFZpZXdFbmNhcHN1bGF0aW9uIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBSb3V0ZXJMaW5rQWN0aXZlIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7IERpc2FibGVkQ29udHJvbGxlciB9IGZyb20gJ0BvZHgvYW5ndWxhcic7XG5pbXBvcnQgeyBJY29uQ29tcG9uZW50IH0gZnJvbSAnQG9keC9hbmd1bGFyL2NvbXBvbmVudHMvaWNvbic7XG5pbXBvcnQgeyBDU1NDb21wb25lbnQgfSBmcm9tICdAb2R4L2FuZ3VsYXIvaW50ZXJuYWwnO1xuaW1wb3J0IHsgZGVmZXJGbiwgdW50aWxEZXN0cm95ZWQgfSBmcm9tICdAb2R4L2FuZ3VsYXIvdXRpbHMnO1xuaW1wb3J0IHsgZmlsdGVyIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBUQUJfQkFSIH0gZnJvbSAnLi4vLi4vdGFiLWJhci5jb25maWcnO1xuXG4vKipcbiAqIFJlcHJlc2VudHMgYW4gaW5kaXZpZHVhbCB0YWIgaXRlbSBpbiBhIHRhYiBiYXIgaW50ZXJmYWNlLCBwcm92aWRpbmcgZnVuY3Rpb25hbGl0aWVzXG4gKiBmb3IgYWN0aXZhdGlvbiwgZGVhY3RpdmF0aW9uLCBhbmQgb3B0aW9uYWwgY2xvc2luZyBvZiB0aGUgdGFiLiBUaGlzIGNvbXBvbmVudCBpcyBkZXNpZ25lZFxuICogdG8gYmUgdXNlZCB3aXRoaW4gYSBgVGFiQmFyQ29tcG9uZW50YCB0byBjcmVhdGUgYSBjb21wbGV0ZSB0YWJiZWQgaW50ZXJmYWNlLlxuICpcbiAqIEl0IHN1cHBvcnRzIGRpc2FibGVkIHN0YXRlIG1hbmFnZW1lbnQgdGhyb3VnaCBgRGlzYWJsZWRDb250cm9sbGVyYCwgYWxsb3dpbmcgdGhlIHRhYiB0byBiZVxuICogZGlzYWJsZWQgYmFzZWQgb24gcGFyZW50IGNvbXBvbmVudCBzdGF0ZXMgb3IgaXRzIG93biBgZGlzYWJsZWRgIGlucHV0IHByb3BlcnR5LlxuICpcbiAqIFRoZSBjb21wb25lbnQgaW50ZWdyYXRlcyB3aXRoIEFuZ3VsYXIncyBgUm91dGVyTGlua0FjdGl2ZWAgdG8gYXV0b21hdGljYWxseSBzZXQgYWN0aXZlXG4gKiBzdHlsZXMgYmFzZWQgb24gdGhlIGN1cnJlbnQgcm91dGVyIHN0YXRlLCBlbmhhbmNpbmcgU1BBIG5hdmlnYXRpb24gZXhwZXJpZW5jZXMuXG4gKi9cbkBDU1NDb21wb25lbnQoJ3RhYi1iYXItaXRlbScpXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdvZHgtdGFiLWJhci1pdGVtJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZSwgSWNvbkNvbXBvbmVudF0sXG4gIHRlbXBsYXRlVXJsOiAnLi90YWItYmFyLWl0ZW0uY29tcG9uZW50Lmh0bWwnLFxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgcHJvdmlkZXJzOiBbRGlzYWJsZWRDb250cm9sbGVyLmNvbm5lY3QoKV0sXG4gIGhvc3Q6IHtcbiAgICAnW2NsYXNzLmlzLWRpc2FibGVkXSc6ICdkaXNhYmxlZCcsXG4gICAgJ1tjbGFzcy5pcy1hY3RpdmVdJzogJ2lzQWN0aXZlJyxcbiAgICAnW2F0dHIuYXJpYS1zZWxlY3RlZF0nOiAnaXNBY3RpdmUnLFxuICAgICdbY2xhc3MuaXMtY2xvc2FibGVdJzogJ2Nsb3NhYmxlKCknLFxuICAgIHJvbGU6ICd0YWInLFxuICAgICcoY2xpY2spJzogJ29uQ2xpY2soKScsXG4gIH0sXG59KVxuZXhwb3J0IGNsYXNzIFRhYkJhckl0ZW1Db21wb25lbnQgaW1wbGVtZW50cyBIaWdobGlnaHRhYmxlLCBPbkluaXQge1xuICBwcml2YXRlIHJlYWRvbmx5IGRpc2FibGVkQ29udHJvbGxlciA9IERpc2FibGVkQ29udHJvbGxlci5pbmplY3QoKTtcbiAgcHJpdmF0ZSByZWFkb25seSB0YWJCYXIgPSBpbmplY3QoVEFCX0JBUik7XG4gIHByaXZhdGUgcmVhZG9ubHkgcm91dGVyTGlua0FjdGl2ZSA9IGluamVjdChSb3V0ZXJMaW5rQWN0aXZlLCB7IG9wdGlvbmFsOiB0cnVlLCBzZWxmOiB0cnVlIH0pO1xuICBwcml2YXRlIHJlYWRvbmx5IHRha2VVbnRpbERlc3Ryb3llZCA9IHVudGlsRGVzdHJveWVkKCk7XG5cbiAgcHJvdGVjdGVkIGlzQWN0aXZlID0gZmFsc2U7XG5cbiAgcHVibGljIHJlYWRvbmx5IGVsZW1lbnQ6IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+ID0gaW5qZWN0KEVsZW1lbnRSZWYpO1xuXG4gIHB1YmxpYyBnZXQgZGlzYWJsZWQoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuICEhdGhpcy5kaXNhYmxlZENvbnRyb2xsZXI/LmRpc2FibGVkO1xuICB9XG5cbiAgLyoqXG4gICAqIEluZGljYXRlcyBpZiB0aGUgdGFiIGNhbiBiZSBjbG9zZWQuIFRoaXMgY29udHJvbHMgdGhlIHZpc2liaWxpdHkgb2YgdGhlIGNsb3NlIGJ1dHRvblxuICAgKiBhbmQgZW5hYmxlcyB0aGUgZW1pc3Npb24gb2YgdGhlIGB0YWJDbG9zZWAgZXZlbnQgd2hlbiB0aGUgdGFiIGlzIGNsb3NlZC5cbiAgICpcbiAgICogQHR5cGUge2Jvb2xlYW59XG4gICAqIEBkZWZhdWx0IGZhbHNlXG4gICAqL1xuICBwdWJsaWMgY2xvc2FibGUgPSBpbnB1dChmYWxzZSwgeyB0cmFuc2Zvcm06IGJvb2xlYW5BdHRyaWJ1dGUgfSk7XG5cbiAgLyoqXG4gICAqIEV2ZW50IGVtaXR0ZXIgdGhhdCBmaXJlcyB3aGVuIHRoZSB0YWIgaXMgY2xvc2VkLiBJdCBlbWl0cyB0aGUgaW5zdGFuY2Ugb2YgdGhlIHRhYiBpdGVtIGNvbXBvbmVudC5cbiAgICpcbiAgICogQGVtaXRzIHtUYWJCYXJJdGVtQ29tcG9uZW50fVxuICAgKi9cbiAgcHVibGljIHRhYkNsb3NlID0gb3V0cHV0PFRhYkJhckl0ZW1Db21wb25lbnQ+KCk7XG5cbiAgcHVibGljIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMucm91dGVyTGlua0FjdGl2ZT8uaXNBY3RpdmVDaGFuZ2UucGlwZSh0aGlzLnRha2VVbnRpbERlc3Ryb3llZCgpLCBmaWx0ZXIoQm9vbGVhbikpLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICB0aGlzLm9uQ2xpY2soKTtcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTZXRzIHRoZSB0YWIgYXMgYWN0aXZlIGFuZCBhcHBsaWVzIGNvcnJlc3BvbmRpbmcgc3R5bGVzLiBUaGlzIG1ldGhvZCBpcyBwYXJ0IG9mIHRoZVxuICAgKiBgSGlnaGxpZ2h0YWJsZWAgaW50ZXJmYWNlLCBhbGxvd2luZyB0aGUgdGFiIGJhciB0byBtYW5hZ2UgYWN0aXZlIHN0YXRlcy5cbiAgICovXG4gIHB1YmxpYyBzZXRBY3RpdmVTdHlsZXMoKTogdm9pZCB7XG4gICAgZGVmZXJGbigoKSA9PiAodGhpcy5pc0FjdGl2ZSA9IHRydWUpKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTZXRzIHRoZSB0YWIgYXMgaW5hY3RpdmUgYW5kIHJlbW92ZXMgY29ycmVzcG9uZGluZyBhY3RpdmUgc3R5bGVzLiBUaGlzIG1ldGhvZCBpcyBwYXJ0IG9mIHRoZVxuICAgKiBgSGlnaGxpZ2h0YWJsZWAgaW50ZXJmYWNlLlxuICAgKi9cbiAgcHVibGljIHNldEluYWN0aXZlU3R5bGVzKCk6IHZvaWQge1xuICAgIGRlZmVyRm4oKCkgPT4gKHRoaXMuaXNBY3RpdmUgPSBmYWxzZSkpO1xuICB9XG5cbiAgcHJvdGVjdGVkIG9uQ2xpY2soKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuZGlzYWJsZWQpIHJldHVybjtcbiAgICB0aGlzLnRhYkJhci5hY3RpdmF0ZUl0ZW0odGhpcyk7XG4gIH1cblxuICBwcm90ZWN0ZWQgaGFuZGxlQ2xvc2UoZXZlbnQ6IEV2ZW50KTogdm9pZCB7XG4gICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgaWYgKHRoaXMuZGlzYWJsZWQgfHwgIXRoaXMuY2xvc2FibGUoKSkgcmV0dXJuO1xuICAgIHRoaXMudGFiQmFyLnJlbW92ZUl0ZW0odGhpcyk7XG4gICAgdGhpcy50YWJDbG9zZS5lbWl0KHRoaXMpO1xuICB9XG59XG4iLCI8bmctY29udGVudCBzZWxlY3Q9XCJvZHgtaWNvblwiIC8+XG48ZGl2IGNsYXNzPVwib2R4LXRhYi1iYXItaXRlbV9fbGFiZWxcIj48bmctY29udGVudCAvPjwvZGl2PlxuQGlmIChjbG9zYWJsZSgpKSB7XG4gIDxvZHgtaWNvbiBuYW1lPVwiY2xvc2VcIiBpY29uU2V0PVwiY29yZVwiIHNpemU9XCJzbWFsbFwiIChjbGljayk9XCJoYW5kbGVDbG9zZSgkZXZlbnQpXCIgLz5cbn1cbiJdfQ==
|