@skyux/tabs 6.20.0 → 6.22.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/documentation.json +458 -316
- package/esm2020/lib/modules/tabs/tab-button-adapter.service.mjs +16 -0
- package/esm2020/lib/modules/tabs/tab-button-view-model.mjs +2 -0
- package/esm2020/lib/modules/tabs/tab-button.component.mjs +65 -10
- package/esm2020/lib/modules/tabs/tabset.component.mjs +18 -3
- package/esm2020/lib/modules/tabs/tabset.service.mjs +63 -1
- package/fesm2015/skyux-tabs.mjs +253 -114
- package/fesm2015/skyux-tabs.mjs.map +1 -1
- package/fesm2020/skyux-tabs.mjs +254 -115
- package/fesm2020/skyux-tabs.mjs.map +1 -1
- package/lib/modules/tabs/tab-button-adapter.service.d.ts +10 -0
- package/lib/modules/tabs/tab-button-view-model.d.ts +15 -0
- package/lib/modules/tabs/tab-button.component.d.ts +17 -4
- package/lib/modules/tabs/tabset.component.d.ts +6 -15
- package/lib/modules/tabs/tabset.service.d.ts +11 -0
- package/package.json +9 -9
|
@@ -7,7 +7,9 @@ import * as i0 from "@angular/core";
|
|
|
7
7
|
export class SkyTabsetService {
|
|
8
8
|
constructor() {
|
|
9
9
|
this.currentActiveTabIndex = 0;
|
|
10
|
+
this.currentFocusedTabBtnIndex = 0;
|
|
10
11
|
this._activeTabIndex = new BehaviorSubject(0);
|
|
12
|
+
this._focusedTabBtnIndex = new Subject();
|
|
11
13
|
this._activeTabUnregistered = new Subject();
|
|
12
14
|
this.tabs = [];
|
|
13
15
|
this.tabCounter = 0;
|
|
@@ -18,6 +20,9 @@ export class SkyTabsetService {
|
|
|
18
20
|
get activeTabIndex() {
|
|
19
21
|
return this._activeTabIndex.asObservable();
|
|
20
22
|
}
|
|
23
|
+
get focusedTabBtnIndex() {
|
|
24
|
+
return this._focusedTabBtnIndex.asObservable();
|
|
25
|
+
}
|
|
21
26
|
/**
|
|
22
27
|
* Sets the active tab by its unique `tabIndex` property.
|
|
23
28
|
*/
|
|
@@ -31,8 +36,51 @@ export class SkyTabsetService {
|
|
|
31
36
|
if (config.emitChange) {
|
|
32
37
|
this._activeTabIndex.next(value);
|
|
33
38
|
}
|
|
39
|
+
this.setFocusedTabBtnIndex(value);
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
focusNextTabBtn(tabButtons) {
|
|
43
|
+
const currentTabArrayIndex = this.tabs.findIndex((tab) => this.tabIndexesEqual(tab.tabIndex, this.currentFocusedTabBtnIndex));
|
|
44
|
+
for (let i = this.getNextTabArrayIndex(currentTabArrayIndex); i !== currentTabArrayIndex; i = this.getNextTabArrayIndex(i)) {
|
|
45
|
+
const tabBtn = tabButtons[i];
|
|
46
|
+
if (!tabBtn.disabled) {
|
|
47
|
+
this.setFocusedTabBtnIndex(tabBtn.tabIndex);
|
|
48
|
+
return;
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
focusPrevTabBtn(tabButtons) {
|
|
53
|
+
const currentTabArrayIndex = this.tabs.findIndex((tab) => this.tabIndexesEqual(tab.tabIndex, this.currentFocusedTabBtnIndex));
|
|
54
|
+
for (let i = this.getPrevTabArrayIndex(currentTabArrayIndex); i !== currentTabArrayIndex; i = this.getPrevTabArrayIndex(i)) {
|
|
55
|
+
const tabBtn = tabButtons[i];
|
|
56
|
+
if (!tabBtn.disabled) {
|
|
57
|
+
this.setFocusedTabBtnIndex(tabBtn.tabIndex);
|
|
58
|
+
return;
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
focusFirstOrNearestTabBtn(tabButtons) {
|
|
63
|
+
for (let i = 0; i < tabButtons.length; i++) {
|
|
64
|
+
const tabBtn = tabButtons[i];
|
|
65
|
+
if (!tabBtn.disabled) {
|
|
66
|
+
this.setFocusedTabBtnIndex(tabBtn.tabIndex);
|
|
67
|
+
return;
|
|
68
|
+
}
|
|
34
69
|
}
|
|
35
70
|
}
|
|
71
|
+
focusLastOrNearestTabBtn(tabButtons) {
|
|
72
|
+
for (let i = tabButtons.length - 1; i >= 0; i--) {
|
|
73
|
+
const tabBtn = tabButtons[i];
|
|
74
|
+
if (!tabBtn.disabled) {
|
|
75
|
+
this.setFocusedTabBtnIndex(tabBtn.tabIndex);
|
|
76
|
+
return;
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
setFocusedTabBtnIndex(tabIndex) {
|
|
81
|
+
this.currentFocusedTabBtnIndex = tabIndex;
|
|
82
|
+
this._focusedTabBtnIndex.next(tabIndex);
|
|
83
|
+
}
|
|
36
84
|
/**
|
|
37
85
|
* Registers a tab component.
|
|
38
86
|
*/
|
|
@@ -101,10 +149,24 @@ export class SkyTabsetService {
|
|
|
101
149
|
isTabIndexActive(tabIndex) {
|
|
102
150
|
return this.tabIndexesEqual(tabIndex, this.currentActiveTabIndex);
|
|
103
151
|
}
|
|
152
|
+
getNextTabArrayIndex(currentIndex) {
|
|
153
|
+
let nextIndex = currentIndex + 1;
|
|
154
|
+
if (nextIndex === this.tabs.length) {
|
|
155
|
+
nextIndex = 0;
|
|
156
|
+
}
|
|
157
|
+
return nextIndex;
|
|
158
|
+
}
|
|
159
|
+
getPrevTabArrayIndex(currentIndex) {
|
|
160
|
+
let prevIndex = currentIndex - 1;
|
|
161
|
+
if (prevIndex < 0) {
|
|
162
|
+
prevIndex = this.tabs.length - 1;
|
|
163
|
+
}
|
|
164
|
+
return prevIndex;
|
|
165
|
+
}
|
|
104
166
|
}
|
|
105
167
|
SkyTabsetService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: SkyTabsetService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
106
168
|
SkyTabsetService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: SkyTabsetService });
|
|
107
169
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: SkyTabsetService, decorators: [{
|
|
108
170
|
type: Injectable
|
|
109
171
|
}] });
|
|
110
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFic2V0LnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvdGFicy9zcmMvbGliL21vZHVsZXMvdGFicy90YWJzZXQuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTNDLE9BQU8sRUFBRSxlQUFlLEVBQWMsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDOztBQUs1RDs7R0FFRztBQUVILE1BQU0sT0FBTyxnQkFBZ0I7SUFEN0I7UUFVUywwQkFBcUIsR0FBZ0IsQ0FBQyxDQUFDO1FBRXRDLG9CQUFlLEdBQUcsSUFBSSxlQUFlLENBQWMsQ0FBQyxDQUFDLENBQUM7UUFFdEQsMkJBQXNCLEdBQzVCLElBQUksT0FBTyxFQUFzQyxDQUFDO1FBRTVDLFNBQUksR0FFTixFQUFFLENBQUM7UUFFRCxlQUFVLEdBQUcsQ0FBQyxDQUFDO0tBbUh4QjtJQXRJQyxJQUFXLHFCQUFxQjtRQUM5QixPQUFPLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUNwRCxDQUFDO0lBRUQsSUFBVyxjQUFjO1FBQ3ZCLE9BQU8sSUFBSSxDQUFDLGVBQWUsQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUM3QyxDQUFDO0lBZUQ7O09BRUc7SUFDSSxpQkFBaUIsQ0FDdEIsS0FBa0IsRUFDbEIsTUFBTSxHQUFHO1FBQ1AsVUFBVSxFQUFFLElBQUk7S0FDakI7UUFFRCxJQUNFLEtBQUssS0FBSyxTQUFTO1lBQ25CLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLHFCQUFxQixDQUFDLEVBQ3hEO1lBQ0EsSUFBSSxDQUFDLHFCQUFxQixHQUFHLEtBQUssQ0FBQztZQUNuQywwQkFBMEI7WUFDMUIsSUFBSSxNQUFNLENBQUMsVUFBVSxFQUFFO2dCQUNyQixJQUFJLENBQUMs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QUMscUJBQXFCLENBQUMsQ0FBQztJQUNwRSxDQUFDOzs2R0F0SVUsZ0JBQWdCO2lIQUFoQixnQkFBZ0I7MkZBQWhCLGdCQUFnQjtrQkFENUIsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBPYnNlcnZhYmxlLCBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5cbmltcG9ydCB7IFNreVRhYkluZGV4IH0gZnJvbSAnLi90YWItaW5kZXgnO1xuaW1wb3J0IHsgU2t5VGFic2V0QWN0aXZlVGFiVW5yZWdpc3RlcmVkQXJncyB9IGZyb20gJy4vdGFic2V0LWFjdGl2ZS10YWItdW5yZWdpc3RlcmVkLWFyZ3MnO1xuXG4vKipcbiAqIEBpbnRlcm5hbFxuICovXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgU2t5VGFic2V0U2VydmljZSB7XG4gIHB1YmxpYyBnZXQgYWN0aXZlVGFiVW5yZWdpc3RlcmVkKCk6IE9ic2VydmFibGU8U2t5VGFic2V0QWN0aXZlVGFiVW5yZWdpc3RlcmVkQXJncz4ge1xuICAgIHJldHVybiB0aGlzLl9hY3RpdmVUYWJVbnJlZ2lzdGVyZWQuYXNPYnNlcnZhYmxlKCk7XG4gIH1cblxuICBwdWJsaWMgZ2V0IGFjdGl2ZVRhYkluZGV4KCk6IE9ic2VydmFibGU8U2t5VGFiSW5kZXg+IHtcbiAgICByZXR1cm4gdGhpcy5fYWN0aXZlVGFiSW5kZXguYXNPYnNlcnZhYmxlKCk7XG4gIH1cblxuICBwdWJsaWMgY3VycmVudEFjdGl2ZVRhYkluZGV4OiBTa3lUYWJJbmRleCA9IDA7XG5cbiAgcHJpdmF0ZSBfYWN0aXZlVGFiSW5kZXggPSBuZXcgQmVoYXZpb3JTdWJqZWN0PFNreVRhYkluZGV4PigwKTtcblxuICBwcml2YXRlIF9hY3RpdmVUYWJVbnJlZ2lzdGVyZWQgPVxuICAgIG5ldyBTdWJqZWN0PFNreVRhYnNldEFjdGl2ZVRhYlVucmVnaXN0ZXJlZEFyZ3M+KCk7XG5cbiAgcHJpdmF0ZSB0YWJzOiB7XG4gICAgdGFiSW5kZXg6IFNreVRhYkluZGV4O1xuICB9W10gPSBbXTtcblxuICBwcml2YXRlIHRhYkNvdW50ZXIgPSAwO1xuXG4gIC8qKlxuICAgKiBTZXRzIHRoZSBhY3RpdmUgdGFiIGJ5IGl0cyB1bmlxdWUgYHRhYkluZGV4YCBwcm9wZXJ0eS5cbiAgICovXG4gIHB1YmxpYyBzZXRBY3RpdmVUYWJJbmRleChcbiAgICB2YWx1ZTogU2t5VGFiSW5kZXgsXG4gICAgY29uZmlnID0ge1xuICAgICAgZW1pdENoYW5nZTogdHJ1ZSxcbiAgICB9XG4gICk6IHZvaWQge1xuICAgIGlmIChcbiAgICAgIHZhbHVlICE9PSB1bmRlZmluZWQgJiZcbiAgICAgICF0aGlzLnRhYkluZGV4ZXNFcXVhbCh2YWx1ZSwgdGhpcy5jdXJyZW50QWN0aXZlVGFiSW5kZXgpXG4gICAgKSB7XG4gICAgICB0aGlzLmN1cnJlbnRBY3RpdmVUYWJJbmRleCA9IHZhbHVlO1xuICAgICAgLyogaXN0YW5idWwgaWdub3JlIGVsc2UgKi9cbiAgICAgIGlmIChjb25maWcuZW1pdENoYW5nZSkge1xuICAgICAgICB0aGlzLl9hY3RpdmVUYWJJbmRleC5uZXh0KHZhbHVlKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogUmVnaXN0ZXJzIGEgdGFiIGNvbXBvbmVudC5cbiAgICovXG4gIHB1YmxpYyByZWdpc3RlclRhYih0YWJJbmRleD86IFNreVRhYkluZGV4KTogU2t5VGFiSW5kZXgge1xuICAgIGlmICh0YWJJbmRleCA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICB0YWJJbmRleCA9IHRoaXMudGFiQ291bnRlcjtcbiAgICAgIHRoaXMudGFiQ291bnRlcisrO1xuICAgIH1cblxuICAgIHRoaXMudGFicy5wdXNoKHsgdGFiSW5kZXggfSk7XG5cbiAgICByZXR1cm4gdGFiSW5kZXg7XG4gIH1cblxuICBwdWJsaWMgdXBkYXRlVGFiSW5kZXgoXG4gICAgY3VycmVudFRhYkluZGV4OiBTa3lUYWJJbmRleCxcbiAgICBuZXdUYWJJbmRleDogU2t5VGFiSW5kZXhcbiAgKTogdm9pZCB7XG4gICAgY29uc3QgZm91bmQgPSB0aGlzLnRhYnMuZmluZCgodGFiKSA9PlxuICAgICAgdGhpcy50YWJJbmRleGVzRXF1YWwodGFiLnRhYkluZGV4LCBjdXJyZW50VGFiSW5kZXgpXG4gICAgKTtcbiAgICBmb3VuZC50YWJJbmRleCA9IG5ld1RhYkluZGV4O1xuICB9XG5cbiAgLyoqXG4gICAqIFVucmVnaXN0ZXJzIGEgdGFiIGNvbXBvbmVudC5cbiAgICovXG4gIHB1YmxpYyB1bnJlZ2lzdGVyVGFiKHRhYkluZGV4OiBTa3lUYWJJbmRleCk6IHZvaWQge1xuICAgIGNvbnN0IGluZGV4ID0gdGhpcy50YWJzLmZpbmRJbmRleCgodGFiKSA9PlxuICAgICAgdGhpcy50YWJJbmRleGVzRXF1YWwodGFiLnRhYkluZGV4LCB0YWJJbmRleClcbiAgICApO1xuXG4gICAgLy8gTm90aWZ5IHRoZSB0YWJzZXQgY29tcG9uZW50IHdoZW4gYW4gYWN0aXZlIHRhYiBpcyB1bnJlZ2lzdGVyZWQuXG4gICAgaWYgKHRoaXMuaXNUYWJJbmRleEFjdGl2ZSh0aGlzLnRhYnNbaW5kZXhdLnRhYkluZGV4KSkge1xuICAgICAgdGhpcy5fYWN0aXZlVGFiVW5yZWdpc3RlcmVkLm5leHQoe1xuICAgICAgICBhcnJheUluZGV4OiBpbmRleCxcbiAgICAgIH0pO1xuICAgIH1cblxuICAgIHRoaXMudGFicy5zcGxpY2UoaW5kZXgsIDEpO1xuICB9XG5cbiAgLyoqXG4gICAqIFVucmVnaXN0ZXJzIGFsbCB0YWIgY29tcG9uZW50cyBhdCBvbmNlLlxuICAgKi9cbiAgcHVibGljIHVucmVnaXN0ZXJBbGwoKTogdm9pZCB7XG4gICAgdGhpcy50YWJzID0gW107XG4gIH1cblxuICAvKipcbiAgICogQ29tcGFyZXMgdHdvIHRhYiBpbmRleGVzIGFuZCByZXR1cm5zIGB0cnVlYCBpZiB0aGV5IGFyZSBlcXVhbC5cbiAgICovXG4gIHB1YmxpYyB0YWJJbmRleGVzRXF1YWwoXG4gICAgdGFiSW5kZXgxOiBTa3lUYWJJbmRleCxcbiAgICB0YWJJbmRleDI6IFNreVRhYkluZGV4XG4gICk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0YWJJbmRleDEgPT09IHRhYkluZGV4MiB8fCArdGFiSW5kZXgxID09PSArdGFiSW5kZXgyO1xuICB9XG5cbiAgLyoqXG4gICAqIFZlcmlmaWVzIGlmIGEgcHJvdmlkZWQgdGFiIGluZGV4IGlzIHJlZ2lzdGVyZWQuXG4gICAqL1xuICBwdWJsaWMgaXNWYWxpZFRhYkluZGV4KHRhYkluZGV4OiBTa3lUYWJJbmRleCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLnRhYnMuc29tZSgodGFiKSA9PlxuICAgICAgdGhpcy50YWJJbmRleGVzRXF1YWwodGFiLnRhYkluZGV4LCB0YWJJbmRleClcbiAgICApO1xuICB9XG5cbiAgLyoqXG4gICAqIEFjdGl2YXRlcyB0aGUgZmlyc3QgcmVnaXN0ZXJlZCB0YWIuXG4gICAqL1xuICBwdWJsaWMgYWN0aXZhdGVGaXJzdFRhYigpOiBTa3lUYWJJbmRleCB8IHVuZGVmaW5lZCB7XG4gICAgY29uc3QgZmlyc3RUYWJJbmRleCA9IHRoaXMudGFic1swXSAmJiB0aGlzLnRhYnNbMF0udGFiSW5kZXg7XG4gICAgaWYgKGZpcnN0VGFiSW5kZXggIT09IHVuZGVmaW5lZCkge1xuICAgICAgdGhpcy5zZXRBY3RpdmVUYWJJbmRleChmaXJzdFRhYkluZGV4KTtcbiAgICAgIHJldHVybiBmaXJzdFRhYkluZGV4O1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBBY3RpdmF0ZXMgdGhlIG5leHQgcmVnaXN0ZXJlZCB0YWIsIG9yIHRoZSBwcmV2aW91cyBvbmUgYmFzZWQgb24gYSBwcm92aWRlZCBhcnJheSBpbmRleC5cbiAgICovXG4gIHB1YmxpYyBhY3RpdmF0ZU5lYXJlc3RUYWIoYXJyYXlJbmRleDogbnVtYmVyKTogdm9pZCB7XG4gICAgY29uc3QgbmV3QWN0aXZlVGFiID0gdGhpcy50YWJzW2FycmF5SW5kZXhdIHx8IHRoaXMudGFic1thcnJheUluZGV4IC0gMV07XG4gICAgaWYgKG5ld0FjdGl2ZVRhYikge1xuICAgICAgdGhpcy5jdXJyZW50QWN0aXZlVGFiSW5kZXggPSBuZXdBY3RpdmVUYWIudGFiSW5kZXg7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBpc1RhYkluZGV4QWN0aXZlKHRhYkluZGV4OiBTa3lUYWJJbmRleCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLnRhYkluZGV4ZXNFcXVhbCh0YWJJbmRleCwgdGhpcy5jdXJyZW50QWN0aXZlVGFiSW5kZXgpO1xuICB9XG59XG4iXX0=
|
|
172
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFic2V0LnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvdGFicy9zcmMvbGliL21vZHVsZXMvdGFicy90YWJzZXQuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTNDLE9BQU8sRUFBRSxlQUFlLEVBQWMsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDOztBQU01RDs7R0FFRztBQUVILE1BQU0sT0FBTyxnQkFBZ0I7SUFEN0I7UUFjUywwQkFBcUIsR0FBZ0IsQ0FBQyxDQUFDO1FBRXZDLDhCQUF5QixHQUFnQixDQUFDLENBQUM7UUFFMUMsb0JBQWUsR0FBRyxJQUFJLGVBQWUsQ0FBYyxDQUFDLENBQUMsQ0FBQztRQUV0RCx3QkFBbUIsR0FBRyxJQUFJLE9BQU8sRUFBZSxDQUFDO1FBRWpELDJCQUFzQixHQUM1QixJQUFJLE9BQU8sRUFBc0MsQ0FBQztRQUU1QyxTQUFJLEdBRU4sRUFBRSxDQUFDO1FBRUQsZUFBVSxHQUFHLENBQUMsQ0FBQztLQXlNeEI7SUFwT0MsSUFBVyxxQkFBcUI7UUFDOUIsT0FBTyxJQUFJLENBQUMsc0JBQXNCLENBQUMsWUFBWSxFQUFFLENBQUM7SUFDcEQsQ0FBQztJQUVELElBQVcsY0FBYztRQUN2QixPQUFPLElBQUksQ0FBQyxlQUFlLENBQUMsWUFBWSxFQUFFLENBQUM7SUFDN0MsQ0FBQztJQUVELElBQVcsa0JBQWtCO1FBQzNCLE9BQU8sSUFBSSxDQUFDLG1CQUFtQixDQUFDLFlBQVksRUFBRSxDQUFDO0lBQ2pELENBQUM7SUFtQkQ7O09BRUc7SUFDSSxpQkFBaUIsQ0FDdEIsS0FBa0IsRUFDbEIsTUFBTSxHQUFHO1FBQ1AsVUFBVSxFQUFFLElBQUk7S0FDakI7UUFFRCxJQUNFLEtBQUssS0FBSyxTQUFTO1lBQ25CLENBQUMsSUFBSSxDQUFDLGVB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LFFBQVEsRUFBRSxJQUFJLENBQUMscUJBQXFCLENBQUMsQ0FBQztJQUNwRSxDQUFDO0lBRU8sb0JBQW9CLENBQUMsWUFBb0I7UUFDL0MsSUFBSSxTQUFTLEdBQUcsWUFBWSxHQUFHLENBQUMsQ0FBQztRQUVqQyxJQUFJLFNBQVMsS0FBSyxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRTtZQUNsQyxTQUFTLEdBQUcsQ0FBQyxDQUFDO1NBQ2Y7UUFFRCxPQUFPLFNBQVMsQ0FBQztJQUNuQixDQUFDO0lBRU8sb0JBQW9CLENBQUMsWUFBb0I7UUFDL0MsSUFBSSxTQUFTLEdBQUcsWUFBWSxHQUFHLENBQUMsQ0FBQztRQUVqQyxJQUFJLFNBQVMsR0FBRyxDQUFDLEVBQUU7WUFDakIsU0FBUyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQztTQUNsQztRQUVELE9BQU8sU0FBUyxDQUFDO0lBQ25CLENBQUM7OzZHQXBPVSxnQkFBZ0I7aUhBQWhCLGdCQUFnQjsyRkFBaEIsZ0JBQWdCO2tCQUQ1QixVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIE9ic2VydmFibGUsIFN1YmplY3QgfSBmcm9tICdyeGpzJztcblxuaW1wb3J0IHsgVGFiQnV0dG9uVmlld01vZGVsIH0gZnJvbSAnLi90YWItYnV0dG9uLXZpZXctbW9kZWwnO1xuaW1wb3J0IHsgU2t5VGFiSW5kZXggfSBmcm9tICcuL3RhYi1pbmRleCc7XG5pbXBvcnQgeyBTa3lUYWJzZXRBY3RpdmVUYWJVbnJlZ2lzdGVyZWRBcmdzIH0gZnJvbSAnLi90YWJzZXQtYWN0aXZlLXRhYi11bnJlZ2lzdGVyZWQtYXJncyc7XG5cbi8qKlxuICogQGludGVybmFsXG4gKi9cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBTa3lUYWJzZXRTZXJ2aWNlIHtcbiAgcHVibGljIGdldCBhY3RpdmVUYWJVbnJlZ2lzdGVyZWQoKTogT2JzZXJ2YWJsZTxTa3lUYWJzZXRBY3RpdmVUYWJVbnJlZ2lzdGVyZWRBcmdzPiB7XG4gICAgcmV0dXJuIHRoaXMuX2FjdGl2ZVRhYlVucmVnaXN0ZXJlZC5hc09ic2VydmFibGUoKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgYWN0aXZlVGFiSW5kZXgoKTogT2JzZXJ2YWJsZTxTa3lUYWJJbmRleD4ge1xuICAgIHJldHVybiB0aGlzLl9hY3RpdmVUYWJJbmRleC5hc09ic2VydmFibGUoKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgZm9jdXNlZFRhYkJ0bkluZGV4KCk6IE9ic2VydmFibGU8U2t5VGFiSW5kZXg+IHtcbiAgICByZXR1cm4gdGhpcy5fZm9jdXNlZFRhYkJ0bkluZGV4LmFzT2JzZXJ2YWJsZSgpO1xuICB9XG5cbiAgcHVibGljIGN1cnJlbnRBY3RpdmVUYWJJbmRleDogU2t5VGFiSW5kZXggPSAwO1xuXG4gIHB1YmxpYyBjdXJyZW50Rm9jdXNlZFRhYkJ0bkluZGV4OiBTa3lUYWJJbmRleCA9IDA7XG5cbiAgcHJpdmF0ZSBfYWN0aXZlVGFiSW5kZXggPSBuZXcgQmVoYXZpb3JTdWJqZWN0PFNreVRhYkluZGV4PigwKTtcblxuICBwcml2YXRlIF9mb2N1c2VkVGFiQnRuSW5kZXggPSBuZXcgU3ViamVjdDxTa3lUYWJJbmRleD4oKTtcblxuICBwcml2YXRlIF9hY3RpdmVUYWJVbnJlZ2lzdGVyZWQgPVxuICAgIG5ldyBTdWJqZWN0PFNreVRhYnNldEFjdGl2ZVRhYlVucmVnaXN0ZXJlZEFyZ3M+KCk7XG5cbiAgcHJpdmF0ZSB0YWJzOiB7XG4gICAgdGFiSW5kZXg6IFNreVRhYkluZGV4O1xuICB9W10gPSBbXTtcblxuICBwcml2YXRlIHRhYkNvdW50ZXIgPSAwO1xuXG4gIC8qKlxuICAgKiBTZXRzIHRoZSBhY3RpdmUgdGFiIGJ5IGl0cyB1bmlxdWUgYHRhYkluZGV4YCBwcm9wZXJ0eS5cbiAgICovXG4gIHB1YmxpYyBzZXRBY3RpdmVUYWJJbmRleChcbiAgICB2YWx1ZTogU2t5VGFiSW5kZXgsXG4gICAgY29uZmlnID0ge1xuICAgICAgZW1pdENoYW5nZTogdHJ1ZSxcbiAgICB9XG4gICk6IHZvaWQge1xuICAgIGlmIChcbiAgICAgIHZhbHVlICE9PSB1bmRlZmluZWQgJiZcbiAgICAgICF0aGlzLnRhYkluZGV4ZXNFcXVhbCh2YWx1ZSwgdGhpcy5jdXJyZW50QWN0aXZlVGFiSW5kZXgpXG4gICAgKSB7XG4gICAgICB0aGlzLmN1cnJlbnRBY3RpdmVUYWJJbmRleCA9IHZhbHVlO1xuXG4gICAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgZWxzZSAqL1xuICAgICAgaWYgKGNvbmZpZy5lbWl0Q2hhbmdlKSB7XG4gICAgICAgIHRoaXMuX2FjdGl2ZVRhYkluZGV4Lm5leHQodmFsdWUpO1xuICAgICAgfVxuXG4gICAgICB0aGlzLnNldEZvY3VzZWRUYWJCdG5JbmRleCh2YWx1ZSk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGZvY3VzTmV4dFRhYkJ0bih0YWJCdXR0b25zOiBUYWJCdXR0b25WaWV3TW9kZWxbXSk6IHZvaWQge1xuICAgIGNvbnN0IGN1cnJlbnRUYWJBcnJheUluZGV4ID0gdGhpcy50YWJzLmZpbmRJbmRleCgodGFiKSA9PlxuICAgICAgdGhpcy50YWJJbmRleGVzRXF1YWwodGFiLnRhYkluZGV4LCB0aGlzLmN1cnJlbnRGb2N1c2VkVGFiQnRuSW5kZXgpXG4gICAgKTtcblxuICAgIGZvciAoXG4gICAgICBsZXQgaSA9IHRoaXMuZ2V0TmV4dFRhYkFycmF5SW5kZXgoY3VycmVudFRhYkFycmF5SW5kZXgpO1xuICAgICAgaSAhPT0gY3VycmVudFRhYkFycmF5SW5kZXg7XG4gICAgICBpID0gdGhpcy5nZXROZXh0VGFiQXJyYXlJbmRleChpKVxuICAgICkge1xuICAgICAgY29uc3QgdGFiQnRuID0gdGFiQnV0dG9uc1tpXTtcbiAgICAgIGlmICghdGFiQnRuLmRpc2FibGVkKSB7XG4gICAgICAgIHRoaXMuc2V0Rm9jdXNlZFRhYkJ0bkluZGV4KHRhYkJ0bi50YWJJbmRleCk7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBwdWJsaWMgZm9jdXNQcmV2VGFiQnRuKHRhYkJ1dHRvbnM6IFRhYkJ1dHRvblZpZXdNb2RlbFtdKTogdm9pZCB7XG4gICAgY29uc3QgY3VycmVudFRhYkFycmF5SW5kZXggPSB0aGlzLnRhYnMuZmluZEluZGV4KCh0YWIpID0+XG4gICAgICB0aGlzLnRhYkluZGV4ZXNFcXVhbCh0YWIudGFiSW5kZXgsIHRoaXMuY3VycmVudEZvY3VzZWRUYWJCdG5JbmRleClcbiAgICApO1xuXG4gICAgZm9yIChcbiAgICAgIGxldCBpID0gdGhpcy5nZXRQcmV2VGFiQXJyYXlJbmRleChjdXJyZW50VGFiQXJyYXlJbmRleCk7XG4gICAgICBpICE9PSBjdXJyZW50VGFiQXJyYXlJbmRleDtcbiAgICAgIGkgPSB0aGlzLmdldFByZXZUYWJBcnJheUluZGV4KGkpXG4gICAgKSB7XG4gICAgICBjb25zdCB0YWJCdG4gPSB0YWJCdXR0b25zW2ldO1xuICAgICAgaWYgKCF0YWJCdG4uZGlzYWJsZWQpIHtcbiAgICAgICAgdGhpcy5zZXRGb2N1c2VkVGFiQnRuSW5kZXgodGFiQnRuLnRhYkluZGV4KTtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBmb2N1c0ZpcnN0T3JOZWFyZXN0VGFiQnRuKHRhYkJ1dHRvbnM6IFRhYkJ1dHRvblZpZXdNb2RlbFtdKTogdm9pZCB7XG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCB0YWJCdXR0b25zLmxlbmd0aDsgaSsrKSB7XG4gICAgICBjb25zdCB0YWJCdG4gPSB0YWJCdXR0b25zW2ldO1xuXG4gICAgICBpZiAoIXRhYkJ0bi5kaXNhYmxlZCkge1xuICAgICAgICB0aGlzLnNldEZvY3VzZWRUYWJCdG5JbmRleCh0YWJCdG4udGFiSW5kZXgpO1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGZvY3VzTGFzdE9yTmVhcmVzdFRhYkJ0bih0YWJCdXR0b25zOiBUYWJCdXR0b25WaWV3TW9kZWxbXSk6IHZvaWQge1xuICAgIGZvciAobGV0IGkgPSB0YWJCdXR0b25zLmxlbmd0aCAtIDE7IGkgPj0gMDsgaS0tKSB7XG4gICAgICBjb25zdCB0YWJCdG4gPSB0YWJCdXR0b25zW2ldO1xuXG4gICAgICBpZiAoIXRhYkJ0bi5kaXNhYmxlZCkge1xuICAgICAgICB0aGlzLnNldEZvY3VzZWRUYWJCdG5JbmRleCh0YWJCdG4udGFiSW5kZXgpO1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcHVibGljIHNldEZvY3VzZWRUYWJCdG5JbmRleCh0YWJJbmRleDogU2t5VGFiSW5kZXgpOiB2b2lkIHtcbiAgICB0aGlzLmN1cnJlbnRGb2N1c2VkVGFiQnRuSW5kZXggPSB0YWJJbmRleDtcbiAgICB0aGlzLl9mb2N1c2VkVGFiQnRuSW5kZXgubmV4dCh0YWJJbmRleCk7XG4gIH1cblxuICAvKipcbiAgICogUmVnaXN0ZXJzIGEgdGFiIGNvbXBvbmVudC5cbiAgICovXG4gIHB1YmxpYyByZWdpc3RlclRhYih0YWJJbmRleD86IFNreVRhYkluZGV4KTogU2t5VGFiSW5kZXgge1xuICAgIGlmICh0YWJJbmRleCA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICB0YWJJbmRleCA9IHRoaXMudGFiQ291bnRlcjtcbiAgICAgIHRoaXMudGFiQ291bnRlcisrO1xuICAgIH1cblxuICAgIHRoaXMudGFicy5wdXNoKHsgdGFiSW5kZXggfSk7XG5cbiAgICByZXR1cm4gdGFiSW5kZXg7XG4gIH1cblxuICBwdWJsaWMgdXBkYXRlVGFiSW5kZXgoXG4gICAgY3VycmVudFRhYkluZGV4OiBTa3lUYWJJbmRleCxcbiAgICBuZXdUYWJJbmRleDogU2t5VGFiSW5kZXhcbiAgKTogdm9pZCB7XG4gICAgY29uc3QgZm91bmQgPSB0aGlzLnRhYnMuZmluZCgodGFiKSA9PlxuICAgICAgdGhpcy50YWJJbmRleGVzRXF1YWwodGFiLnRhYkluZGV4LCBjdXJyZW50VGFiSW5kZXgpXG4gICAgKTtcbiAgICBmb3VuZC50YWJJbmRleCA9IG5ld1RhYkluZGV4O1xuICB9XG5cbiAgLyoqXG4gICAqIFVucmVnaXN0ZXJzIGEgdGFiIGNvbXBvbmVudC5cbiAgICovXG4gIHB1YmxpYyB1bnJlZ2lzdGVyVGFiKHRhYkluZGV4OiBTa3lUYWJJbmRleCk6IHZvaWQge1xuICAgIGNvbnN0IGluZGV4ID0gdGhpcy50YWJzLmZpbmRJbmRleCgodGFiKSA9PlxuICAgICAgdGhpcy50YWJJbmRleGVzRXF1YWwodGFiLnRhYkluZGV4LCB0YWJJbmRleClcbiAgICApO1xuXG4gICAgLy8gTm90aWZ5IHRoZSB0YWJzZXQgY29tcG9uZW50IHdoZW4gYW4gYWN0aXZlIHRhYiBpcyB1bnJlZ2lzdGVyZWQuXG4gICAgaWYgKHRoaXMuaXNUYWJJbmRleEFjdGl2ZSh0aGlzLnRhYnNbaW5kZXhdLnRhYkluZGV4KSkge1xuICAgICAgdGhpcy5fYWN0aXZlVGFiVW5yZWdpc3RlcmVkLm5leHQoe1xuICAgICAgICBhcnJheUluZGV4OiBpbmRleCxcbiAgICAgIH0pO1xuICAgIH1cblxuICAgIHRoaXMudGFicy5zcGxpY2UoaW5kZXgsIDEpO1xuICB9XG5cbiAgLyoqXG4gICAqIFVucmVnaXN0ZXJzIGFsbCB0YWIgY29tcG9uZW50cyBhdCBvbmNlLlxuICAgKi9cbiAgcHVibGljIHVucmVnaXN0ZXJBbGwoKTogdm9pZCB7XG4gICAgdGhpcy50YWJzID0gW107XG4gIH1cblxuICAvKipcbiAgICogQ29tcGFyZXMgdHdvIHRhYiBpbmRleGVzIGFuZCByZXR1cm5zIGB0cnVlYCBpZiB0aGV5IGFyZSBlcXVhbC5cbiAgICovXG4gIHB1YmxpYyB0YWJJbmRleGVzRXF1YWwoXG4gICAgdGFiSW5kZXgxOiBTa3lUYWJJbmRleCxcbiAgICB0YWJJbmRleDI6IFNreVRhYkluZGV4XG4gICk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0YWJJbmRleDEgPT09IHRhYkluZGV4MiB8fCArdGFiSW5kZXgxID09PSArdGFiSW5kZXgyO1xuICB9XG5cbiAgLyoqXG4gICAqIFZlcmlmaWVzIGlmIGEgcHJvdmlkZWQgdGFiIGluZGV4IGlzIHJlZ2lzdGVyZWQuXG4gICAqL1xuICBwdWJsaWMgaXNWYWxpZFRhYkluZGV4KHRhYkluZGV4OiBTa3lUYWJJbmRleCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLnRhYnMuc29tZSgodGFiKSA9PlxuICAgICAgdGhpcy50YWJJbmRleGVzRXF1YWwodGFiLnRhYkluZGV4LCB0YWJJbmRleClcbiAgICApO1xuICB9XG5cbiAgLyoqXG4gICAqIEFjdGl2YXRlcyB0aGUgZmlyc3QgcmVnaXN0ZXJlZCB0YWIuXG4gICAqL1xuICBwdWJsaWMgYWN0aXZhdGVGaXJzdFRhYigpOiBTa3lUYWJJbmRleCB8IHVuZGVmaW5lZCB7XG4gICAgY29uc3QgZmlyc3RUYWJJbmRleCA9IHRoaXMudGFic1swXSAmJiB0aGlzLnRhYnNbMF0udGFiSW5kZXg7XG4gICAgaWYgKGZpcnN0VGFiSW5kZXggIT09IHVuZGVmaW5lZCkge1xuICAgICAgdGhpcy5zZXRBY3RpdmVUYWJJbmRleChmaXJzdFRhYkluZGV4KTtcbiAgICAgIHJldHVybiBmaXJzdFRhYkluZGV4O1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBBY3RpdmF0ZXMgdGhlIG5leHQgcmVnaXN0ZXJlZCB0YWIsIG9yIHRoZSBwcmV2aW91cyBvbmUgYmFzZWQgb24gYSBwcm92aWRlZCBhcnJheSBpbmRleC5cbiAgICovXG4gIHB1YmxpYyBhY3RpdmF0ZU5lYXJlc3RUYWIoYXJyYXlJbmRleDogbnVtYmVyKTogdm9pZCB7XG4gICAgY29uc3QgbmV3QWN0aXZlVGFiID0gdGhpcy50YWJzW2FycmF5SW5kZXhdIHx8IHRoaXMudGFic1thcnJheUluZGV4IC0gMV07XG4gICAgaWYgKG5ld0FjdGl2ZVRhYikge1xuICAgICAgdGhpcy5jdXJyZW50QWN0aXZlVGFiSW5kZXggPSBuZXdBY3RpdmVUYWIudGFiSW5kZXg7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBpc1RhYkluZGV4QWN0aXZlKHRhYkluZGV4OiBTa3lUYWJJbmRleCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLnRhYkluZGV4ZXNFcXVhbCh0YWJJbmRleCwgdGhpcy5jdXJyZW50QWN0aXZlVGFiSW5kZXgpO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXROZXh0VGFiQXJyYXlJbmRleChjdXJyZW50SW5kZXg6IG51bWJlcik6IG51bWJlciB7XG4gICAgbGV0IG5leHRJbmRleCA9IGN1cnJlbnRJbmRleCArIDE7XG5cbiAgICBpZiAobmV4dEluZGV4ID09PSB0aGlzLnRhYnMubGVuZ3RoKSB7XG4gICAgICBuZXh0SW5kZXggPSAwO1xuICAgIH1cblxuICAgIHJldHVybiBuZXh0SW5kZXg7XG4gIH1cblxuICBwcml2YXRlIGdldFByZXZUYWJBcnJheUluZGV4KGN1cnJlbnRJbmRleDogbnVtYmVyKTogbnVtYmVyIHtcbiAgICBsZXQgcHJldkluZGV4ID0gY3VycmVudEluZGV4IC0gMTtcblxuICAgIGlmIChwcmV2SW5kZXggPCAwKSB7XG4gICAgICBwcmV2SW5kZXggPSB0aGlzLnRhYnMubGVuZ3RoIC0gMTtcbiAgICB9XG5cbiAgICByZXR1cm4gcHJldkluZGV4O1xuICB9XG59XG4iXX0=
|