@skyux/tabs 4.6.9
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 +218 -0
- package/README.md +5 -0
- package/bundles/skyux-tabs-testing.umd.js +395 -0
- package/bundles/skyux-tabs-testing.umd.js.map +1 -0
- package/bundles/skyux-tabs-testing.umd.min.js +16 -0
- package/bundles/skyux-tabs-testing.umd.min.js.map +1 -0
- package/bundles/skyux-tabs.umd.js +2414 -0
- package/bundles/skyux-tabs.umd.js.map +1 -0
- package/bundles/skyux-tabs.umd.min.js +16 -0
- package/bundles/skyux-tabs.umd.min.js.map +1 -0
- package/esm2015/modules/sectioned-form/sectioned-form-section.component.js +74 -0
- package/esm2015/modules/sectioned-form/sectioned-form.component.js +105 -0
- package/esm2015/modules/sectioned-form/sectioned-form.module.js +28 -0
- package/esm2015/modules/sectioned-form/sectioned-form.service.js +34 -0
- package/esm2015/modules/shared/tabs-resources.module.js +17 -0
- package/esm2015/modules/tabs/tab-button.component.js +71 -0
- package/esm2015/modules/tabs/tab-index.js +1 -0
- package/esm2015/modules/tabs/tab.component.js +144 -0
- package/esm2015/modules/tabs/tabs.module.js +41 -0
- package/esm2015/modules/tabs/tabset-active-tab-unregistered-args.js +1 -0
- package/esm2015/modules/tabs/tabset-adapter.service.js +53 -0
- package/esm2015/modules/tabs/tabset-buttons-display-mode.js +1 -0
- package/esm2015/modules/tabs/tabset-nav-button.component.js +122 -0
- package/esm2015/modules/tabs/tabset-permalink.service.js +123 -0
- package/esm2015/modules/tabs/tabset-style.js +1 -0
- package/esm2015/modules/tabs/tabset-tab-indexes-change.js +1 -0
- package/esm2015/modules/tabs/tabset.component.js +403 -0
- package/esm2015/modules/tabs/tabset.service.js +109 -0
- package/esm2015/modules/vertical-tabset/vertical-tab-media-query.service.js +71 -0
- package/esm2015/modules/vertical-tabset/vertical-tab.component.js +195 -0
- package/esm2015/modules/vertical-tabset/vertical-tabset-adapter.service.js +50 -0
- package/esm2015/modules/vertical-tabset/vertical-tabset-group.component.js +113 -0
- package/esm2015/modules/vertical-tabset/vertical-tabset.component.js +139 -0
- package/esm2015/modules/vertical-tabset/vertical-tabset.module.js +43 -0
- package/esm2015/modules/vertical-tabset/vertical-tabset.service.js +167 -0
- package/esm2015/plugin-resources/tabs-resources-provider.js +16 -0
- package/esm2015/public_api.js +10 -0
- package/esm2015/skyux-tabs.js +21 -0
- package/esm2015/testing/public_api.js +2 -0
- package/esm2015/testing/skyux-tabs-testing.js +5 -0
- package/esm2015/testing/tabs/tab-fixture-tab.js +1 -0
- package/esm2015/testing/tabs/tabset-fixture.js +141 -0
- package/esm5/modules/sectioned-form/sectioned-form-section.component.js +84 -0
- package/esm5/modules/sectioned-form/sectioned-form.component.js +111 -0
- package/esm5/modules/sectioned-form/sectioned-form.module.js +31 -0
- package/esm5/modules/sectioned-form/sectioned-form.service.js +35 -0
- package/esm5/modules/shared/tabs-resources.module.js +20 -0
- package/esm5/modules/tabs/tab-button.component.js +72 -0
- package/esm5/modules/tabs/tab-index.js +1 -0
- package/esm5/modules/tabs/tab.component.js +173 -0
- package/esm5/modules/tabs/tabs.module.js +44 -0
- package/esm5/modules/tabs/tabset-active-tab-unregistered-args.js +1 -0
- package/esm5/modules/tabs/tabset-adapter.service.js +58 -0
- package/esm5/modules/tabs/tabset-buttons-display-mode.js +1 -0
- package/esm5/modules/tabs/tabset-nav-button.component.js +145 -0
- package/esm5/modules/tabs/tabset-permalink.service.js +129 -0
- package/esm5/modules/tabs/tabset-style.js +1 -0
- package/esm5/modules/tabs/tabset-tab-indexes-change.js +1 -0
- package/esm5/modules/tabs/tabset.component.js +434 -0
- package/esm5/modules/tabs/tabset.service.js +122 -0
- package/esm5/modules/vertical-tabset/vertical-tab-media-query.service.js +76 -0
- package/esm5/modules/vertical-tabset/vertical-tab.component.js +214 -0
- package/esm5/modules/vertical-tabset/vertical-tabset-adapter.service.js +51 -0
- package/esm5/modules/vertical-tabset/vertical-tabset-group.component.js +119 -0
- package/esm5/modules/vertical-tabset/vertical-tabset.component.js +145 -0
- package/esm5/modules/vertical-tabset/vertical-tabset.module.js +46 -0
- package/esm5/modules/vertical-tabset/vertical-tabset.service.js +176 -0
- package/esm5/plugin-resources/tabs-resources-provider.js +17 -0
- package/esm5/public_api.js +10 -0
- package/esm5/skyux-tabs.js +21 -0
- package/esm5/testing/public_api.js +2 -0
- package/esm5/testing/skyux-tabs-testing.js +5 -0
- package/esm5/testing/tabs/tab-fixture-tab.js +1 -0
- package/esm5/testing/tabs/tabset-fixture.js +168 -0
- package/fesm2015/skyux-tabs-testing.js +148 -0
- package/fesm2015/skyux-tabs-testing.js.map +1 -0
- package/fesm2015/skyux-tabs.js +1998 -0
- package/fesm2015/skyux-tabs.js.map +1 -0
- package/fesm5/skyux-tabs-testing.js +174 -0
- package/fesm5/skyux-tabs-testing.js.map +1 -0
- package/fesm5/skyux-tabs.js +2182 -0
- package/fesm5/skyux-tabs.js.map +1 -0
- package/modules/sectioned-form/sectioned-form-section.component.d.ts +39 -0
- package/modules/sectioned-form/sectioned-form.component.d.ts +30 -0
- package/modules/sectioned-form/sectioned-form.module.d.ts +2 -0
- package/modules/sectioned-form/sectioned-form.service.d.ts +21 -0
- package/modules/shared/tabs-resources.module.d.ts +2 -0
- package/modules/tabs/tab-button.component.d.ts +21 -0
- package/modules/tabs/tab-index.d.ts +1 -0
- package/modules/tabs/tab.component.d.ts +77 -0
- package/modules/tabs/tabs.module.d.ts +2 -0
- package/modules/tabs/tabset-active-tab-unregistered-args.d.ts +10 -0
- package/modules/tabs/tabset-adapter.service.d.ts +21 -0
- package/modules/tabs/tabset-buttons-display-mode.d.ts +1 -0
- package/modules/tabs/tabset-nav-button.component.d.ts +24 -0
- package/modules/tabs/tabset-permalink.service.d.ts +43 -0
- package/modules/tabs/tabset-style.d.ts +1 -0
- package/modules/tabs/tabset-tab-indexes-change.d.ts +7 -0
- package/modules/tabs/tabset.component.d.ts +142 -0
- package/modules/tabs/tabset.service.d.ts +51 -0
- package/modules/vertical-tabset/vertical-tab-media-query.service.d.ts +15 -0
- package/modules/vertical-tabset/vertical-tab.component.d.ts +86 -0
- package/modules/vertical-tabset/vertical-tabset-adapter.service.d.ts +10 -0
- package/modules/vertical-tabset/vertical-tabset-group.component.d.ts +33 -0
- package/modules/vertical-tabset/vertical-tabset.component.d.ts +45 -0
- package/modules/vertical-tabset/vertical-tabset.module.d.ts +2 -0
- package/modules/vertical-tabset/vertical-tabset.service.d.ts +41 -0
- package/package.json +41 -0
- package/plugin-resources/tabs-resources-provider.d.ts +5 -0
- package/public_api.d.ts +9 -0
- package/skyux-tabs.d.ts +20 -0
- package/skyux-tabs.metadata.json +1 -0
- package/src/assets/img/guidelines/tabs/tabs-anatomy.png +0 -0
- package/src/assets/img/guidelines/tabs/tabs-behavior-1.png +0 -0
- package/src/assets/img/guidelines/tabs/tabs-layout-1.png +0 -0
- package/src/assets/img/guidelines/tabs/tabs-layout-2.png +0 -0
- package/src/assets/img/guidelines/tabs/tabs-layout-3.png +0 -0
- package/src/assets/img/guidelines/tabs/tabs-layout-4.png +0 -0
- package/src/assets/img/guidelines/tabs/tabs-options-1.png +0 -0
- package/src/assets/img/guidelines/tabs/tabs-options-2.png +0 -0
- package/src/assets/img/guidelines/tabs/tabs-state-collapsed-closed.png +0 -0
- package/src/assets/img/guidelines/tabs/tabs-state-collapsed-open.png +0 -0
- package/src/assets/img/guidelines/tabs/tabs-state-hover.png +0 -0
- package/src/assets/img/guidelines/tabs/tabs-state-selected.png +0 -0
- package/src/assets/img/guidelines/tabs/tabs-state-unselected.png +0 -0
- package/src/assets/img/guidelines/tabs/tabs-usage-1.png +0 -0
- package/src/assets/img/guidelines/tabs/tabs-usage-2.png +0 -0
- package/src/assets/img/guidelines/tabs/tabs-usage-3.png +0 -0
- package/src/assets/img/guidelines/tabs/tabs-usage-4.png +0 -0
- package/src/assets/img/guidelines/tabs/tabs-usage-5.png +0 -0
- package/src/assets/img/guidelines/vertical-tabs/vertical-tabs-anatomy-1.png +0 -0
- package/src/assets/img/guidelines/vertical-tabs/vertical-tabs-anatomy-2.png +0 -0
- package/src/assets/img/guidelines/vertical-tabs/vertical-tabs-layout-1.png +0 -0
- package/src/assets/img/guidelines/vertical-tabs/vertical-tabs-state-hover.png +0 -0
- package/src/assets/img/guidelines/vertical-tabs/vertical-tabs-state-selected-group.png +0 -0
- package/src/assets/img/guidelines/vertical-tabs/vertical-tabs-state-selected.png +0 -0
- package/src/assets/img/guidelines/vertical-tabs/vertical-tabs-state-unselected-group.png +0 -0
- package/src/assets/img/guidelines/vertical-tabs/vertical-tabs-state-unselected.png +0 -0
- package/src/assets/img/guidelines/vertical-tabs/vertical-tabs-usage-1.png +0 -0
- package/src/assets/img/guidelines/vertical-tabs/vertical-tabs-usage-2.png +0 -0
- package/src/assets/img/guidelines/vertical-tabs/vertical-tabs-usage-3.png +0 -0
- package/src/assets/img/guidelines/vertical-tabs/vertical-tabs-usage-4.png +0 -0
- package/src/assets/img/guidelines/vertical-tabs/vertical-tabs-usage-5.png +0 -0
- package/src/assets/img/guidelines/vertical-tabs/vertical-tabs-usage-6.png +0 -0
- package/src/assets/img/guidelines/vertical-tabs/vertical-tabs-usage-7.png +0 -0
- package/src/assets/locales/resources_en_US.json +26 -0
- package/testing/package.json +13 -0
- package/testing/public_api.d.ts +2 -0
- package/testing/skyux-tabs-testing.d.ts +4 -0
- package/testing/skyux-tabs-testing.metadata.json +1 -0
- package/testing/tabs/tab-fixture-tab.d.ts +25 -0
- package/testing/tabs/tabset-fixture.d.ts +50 -0
|
@@ -0,0 +1,139 @@
|
|
|
1
|
+
import { __decorate } from "tslib";
|
|
2
|
+
import { Component, ElementRef, ViewChild, Input, OnInit, ChangeDetectionStrategy, Output, EventEmitter, AfterViewChecked, ChangeDetectorRef, OnDestroy } from '@angular/core';
|
|
3
|
+
import { style, trigger, transition, animate } from '@angular/animations';
|
|
4
|
+
import { SkyLibResourcesService } from '@skyux/i18n';
|
|
5
|
+
import { Subject } from 'rxjs';
|
|
6
|
+
import { take, takeUntil } from 'rxjs/operators';
|
|
7
|
+
import { SkyVerticalTabsetAdapterService } from './vertical-tabset-adapter.service';
|
|
8
|
+
import { SkyVerticalTabsetService, HIDDEN_STATE, VISIBLE_STATE } from './vertical-tabset.service';
|
|
9
|
+
let SkyVerticalTabsetComponent = class SkyVerticalTabsetComponent {
|
|
10
|
+
constructor(adapterService, tabService, resources, changeRef) {
|
|
11
|
+
this.adapterService = adapterService;
|
|
12
|
+
this.tabService = tabService;
|
|
13
|
+
this.resources = resources;
|
|
14
|
+
this.changeRef = changeRef;
|
|
15
|
+
/**
|
|
16
|
+
* Indicates whether the vertical tabset loads tab content during initialization so that it
|
|
17
|
+
* displays content without moving around elements in the content container.
|
|
18
|
+
* @default 'false'
|
|
19
|
+
*/
|
|
20
|
+
this.maintainTabContent = false;
|
|
21
|
+
/**
|
|
22
|
+
* Fires when the active tab changes. Emits the index of the active tab. The
|
|
23
|
+
* index is based on the tab's position when it loads.
|
|
24
|
+
*/
|
|
25
|
+
this.activeChange = new EventEmitter();
|
|
26
|
+
this.isMobile = false;
|
|
27
|
+
this._ngUnsubscribe = new Subject();
|
|
28
|
+
}
|
|
29
|
+
/**
|
|
30
|
+
* Specifies an ARIA role for the vertical tabset
|
|
31
|
+
* [to support accessibility](https://developer.blackbaud.com/skyux/learn/accessibility)
|
|
32
|
+
* by indicating how the tabset functions and what it controls. For information about how
|
|
33
|
+
* an ARIA role indicates what an item represents on a web page, see the
|
|
34
|
+
* [WAI-ARIA roles model](https://www.w3.org/WAI/PF/aria/roles).
|
|
35
|
+
* @default "tablist"
|
|
36
|
+
*/
|
|
37
|
+
get ariaRole() {
|
|
38
|
+
if (this.isMobile) {
|
|
39
|
+
return undefined;
|
|
40
|
+
}
|
|
41
|
+
return this._ariaRole || 'tablist';
|
|
42
|
+
}
|
|
43
|
+
set ariaRole(value) {
|
|
44
|
+
this._ariaRole = value;
|
|
45
|
+
}
|
|
46
|
+
ngOnInit() {
|
|
47
|
+
this.tabService.maintainTabContent = this.maintainTabContent;
|
|
48
|
+
this.tabService.indexChanged
|
|
49
|
+
.pipe(takeUntil(this._ngUnsubscribe))
|
|
50
|
+
.subscribe((index) => {
|
|
51
|
+
this.activeChange.emit(index);
|
|
52
|
+
if (this.contentWrapper) {
|
|
53
|
+
this.adapterService.scrollToContentTop(this.contentWrapper);
|
|
54
|
+
}
|
|
55
|
+
this.changeRef.markForCheck();
|
|
56
|
+
});
|
|
57
|
+
this.tabService.switchingMobile
|
|
58
|
+
.pipe(takeUntil(this._ngUnsubscribe))
|
|
59
|
+
.subscribe((mobile) => {
|
|
60
|
+
this.isMobile = mobile;
|
|
61
|
+
this.changeRef.markForCheck();
|
|
62
|
+
});
|
|
63
|
+
if (this.tabService.isMobile()) {
|
|
64
|
+
this.isMobile = true;
|
|
65
|
+
this.tabService.animationContentVisibleState = VISIBLE_STATE;
|
|
66
|
+
this.changeRef.markForCheck();
|
|
67
|
+
}
|
|
68
|
+
if (!this.showTabsText) {
|
|
69
|
+
this.resources.getString('skyux_vertical_tabs_show_tabs_text')
|
|
70
|
+
.pipe(take(1))
|
|
71
|
+
.subscribe(resource => {
|
|
72
|
+
/* sanity check */
|
|
73
|
+
if (!this.showTabsText) {
|
|
74
|
+
this.showTabsText = resource;
|
|
75
|
+
}
|
|
76
|
+
});
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
ngAfterViewChecked() {
|
|
80
|
+
this.tabService.content = this.content;
|
|
81
|
+
this.tabService.updateContent();
|
|
82
|
+
}
|
|
83
|
+
ngOnDestroy() {
|
|
84
|
+
this._ngUnsubscribe.next();
|
|
85
|
+
this._ngUnsubscribe.complete();
|
|
86
|
+
}
|
|
87
|
+
};
|
|
88
|
+
SkyVerticalTabsetComponent.ctorParameters = () => [
|
|
89
|
+
{ type: SkyVerticalTabsetAdapterService },
|
|
90
|
+
{ type: SkyVerticalTabsetService },
|
|
91
|
+
{ type: SkyLibResourcesService },
|
|
92
|
+
{ type: ChangeDetectorRef }
|
|
93
|
+
];
|
|
94
|
+
__decorate([
|
|
95
|
+
Input()
|
|
96
|
+
], SkyVerticalTabsetComponent.prototype, "showTabsText", void 0);
|
|
97
|
+
__decorate([
|
|
98
|
+
Input()
|
|
99
|
+
], SkyVerticalTabsetComponent.prototype, "ariaRole", null);
|
|
100
|
+
__decorate([
|
|
101
|
+
Input()
|
|
102
|
+
], SkyVerticalTabsetComponent.prototype, "maintainTabContent", void 0);
|
|
103
|
+
__decorate([
|
|
104
|
+
Output()
|
|
105
|
+
], SkyVerticalTabsetComponent.prototype, "activeChange", void 0);
|
|
106
|
+
__decorate([
|
|
107
|
+
ViewChild('groupContainerWrapper')
|
|
108
|
+
], SkyVerticalTabsetComponent.prototype, "tabGroups", void 0);
|
|
109
|
+
__decorate([
|
|
110
|
+
ViewChild('skySideContent')
|
|
111
|
+
], SkyVerticalTabsetComponent.prototype, "content", void 0);
|
|
112
|
+
__decorate([
|
|
113
|
+
ViewChild('contentContainerWrapper')
|
|
114
|
+
], SkyVerticalTabsetComponent.prototype, "contentWrapper", void 0);
|
|
115
|
+
SkyVerticalTabsetComponent = __decorate([
|
|
116
|
+
Component({
|
|
117
|
+
selector: 'sky-vertical-tabset',
|
|
118
|
+
template: " <div class=\"sky-vertical-tabset\" (window:resize)=\"tabService.updateContent()\">\n <div\n *ngIf=\"maintainTabContent || tabService.tabsVisible()\"\n #groupContainerWrapper\n class=\"sky-vertical-tabset-group-container\"\n [ngClass]=\"{'sky-vertical-tabset-hidden': !tabService.tabsVisible()}\"\n [attr.role]=\"ariaRole\"\n [@tabGroupEnter]=\"tabService.animationTabsVisibleState\"\n >\n <ng-content></ng-content>\n </div>\n <div\n *ngIf=\"maintainTabContent || tabService.contentVisible()\"\n class=\"sky-vertical-tabset-content\"\n [ngClass]=\"{'sky-vertical-tabset-content-hidden': !tabService.contentVisible()}\"\n [@contentEnter]=\"tabService.animationContentVisibleState\"\n #contentContainerWrapper\n >\n <div #skySideContent></div>\n <button\n *ngIf=\"!tabService.tabsVisible()\"\n (click)=\"tabService.showTabs()\"\n class=\"sky-btn sky-btn-primary sky-vertical-tabset-show-tabs-btn\"\n >\n <sky-icon icon=\"chevron-left\"></sky-icon>\n {{ showTabsText }}\n </button>\n </div>\n</div>\n",
|
|
119
|
+
providers: [SkyVerticalTabsetService],
|
|
120
|
+
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
121
|
+
animations: [
|
|
122
|
+
trigger('tabGroupEnter', [
|
|
123
|
+
transition(`${HIDDEN_STATE} => ${VISIBLE_STATE}`, [
|
|
124
|
+
style({ transform: 'translate(-100%)' }),
|
|
125
|
+
animate('150ms ease-in')
|
|
126
|
+
])
|
|
127
|
+
]),
|
|
128
|
+
trigger('contentEnter', [
|
|
129
|
+
transition(`${HIDDEN_STATE} => ${VISIBLE_STATE}`, [
|
|
130
|
+
style({ transform: 'translate(100%)' }),
|
|
131
|
+
animate('150ms ease-in')
|
|
132
|
+
])
|
|
133
|
+
])
|
|
134
|
+
],
|
|
135
|
+
styles: [":host .sky-vertical-tabset{display:block;height:auto}:host .sky-vertical-tabset-group-container{border-right:none}:host-context(.sky-responsive-container-lg) .sky-vertical-tabset,:host-context(.sky-responsive-container-md) .sky-vertical-tabset,:host-context(.sky-responsive-container-sm) .sky-vertical-tabset,:host-context(.sky-responsive-container-xs) .sky-vertical-tabset{display:block;height:auto}:host-context(.sky-responsive-container-lg) .sky-vertical-tabset-group-container,:host-context(.sky-responsive-container-md) .sky-vertical-tabset-group-container,:host-context(.sky-responsive-container-sm) .sky-vertical-tabset-group-container,:host-context(.sky-responsive-container-xs) .sky-vertical-tabset-group-container{border-right:none}@media (min-width:768px){:host .sky-vertical-tabset{display:flex;height:100%}:host .sky-vertical-tabset-group-container{border-right:1px solid #cdcfd2}}:host-context(.sky-responsive-container-lg) .sky-vertical-tabset,:host-context(.sky-responsive-container-md) .sky-vertical-tabset,:host-context(.sky-responsive-container-sm) .sky-vertical-tabset{display:flex;height:100%}:host-context(.sky-responsive-container-lg) .sky-vertical-tabset-group-container,:host-context(.sky-responsive-container-md) .sky-vertical-tabset-group-container,:host-context(.sky-responsive-container-sm) .sky-vertical-tabset-group-container{border-right:1px solid #cdcfd2}.sky-vertical-tabset-hidden{display:none}.sky-vertical-tabset-content{margin:10px 0 0 10px;flex-basis:75%;overflow-y:auto}.sky-vertical-tabset-content-hidden{display:none}.sky-vertical-tabset-show-tabs-btn{margin-top:10px}.sky-vertical-tabset-group-container{flex-basis:25%;overflow-y:auto}:host-context(sky-modal-content>) .sky-vertical-tabset{margin:-15px}"]
|
|
136
|
+
})
|
|
137
|
+
], SkyVerticalTabsetComponent);
|
|
138
|
+
export { SkyVerticalTabsetComponent };
|
|
139
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmVydGljYWwtdGFic2V0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0Bza3l1eC90YWJzLyIsInNvdXJjZXMiOlsibW9kdWxlcy92ZXJ0aWNhbC10YWJzZXQvdmVydGljYWwtdGFic2V0LmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUNMLFNBQVMsRUFDVCxVQUFVLEVBQ1YsU0FBUyxFQUNULEtBQUssRUFDTCxNQUFNLEVBQ04sdUJBQXVCLEVBQ3ZCLE1BQU0sRUFDTixZQUFZLEVBQ1osZ0JBQWdCLEVBQ2hCLGlCQUFpQixFQUNqQixTQUFTLEVBQ1YsTUFBTSxlQUFlLENBQUM7QUFFdkIsT0FBTyxFQUNMLEtBQUssRUFDTCxPQUFPLEVBQ1AsVUFBVSxFQUNWLE9BQU8sRUFDUixNQUFNLHFCQUFxQixDQUFDO0FBRTdCLE9BQU8sRUFDTCxzQkFBc0IsRUFDdkIsTUFBTSxhQUFhLENBQUM7QUFFckIsT0FBTyxFQUNMLE9BQU8sRUFDUixNQUFNLE1BQU0sQ0FBQztBQUVkLE9BQU8sRUFDTCxJQUFJLEVBQ0osU0FBUyxFQUNWLE1BQU0sZ0JBQWdCLENBQUM7QUFFeEIsT0FBTyxFQUNMLCtCQUErQixFQUNoQyxNQUFNLG1DQUFtQyxDQUFDO0FBRTNDLE9BQU8sRUFDTCx3QkFBd0IsRUFDeEIsWUFBWSxFQUNaLGFBQWEsRUFDZCxNQUFNLDJCQUEyQixDQUFDO0FBMkJuQyxJQUFhLDBCQUEwQixHQUF2QyxNQUFhLDBCQUEwQjtJQXVEckMsWUFDUyxjQUErQyxFQUMvQyxVQUFvQyxFQUNuQyxTQUFpQyxFQUNqQyxTQUE0QjtRQUg3QixtQkFBYyxHQUFkLGNBQWMsQ0FBaUM7UUFDL0MsZUFBVSxHQUFWLFVBQVUsQ0FBMEI7UUFDbkMsY0FBUyxHQUFULFNBQVMsQ0FBd0I7UUFDakMsY0FBUyxHQUFULFNBQVMsQ0FBbUI7UUFoQ3RDOzs7O1dBSUc7UUFFSSx1QkFBa0IsR0FBWSxLQUFLLENBQUM7UUFFM0M7OztXQUdH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O0FBR2pEO0lBREMsU0FBUyxDQUFDLHVCQUF1QixDQUFDOzZEQUNOO0FBRzdCO0lBREMsU0FBUyxDQUFDLGdCQUFnQixDQUFDOzJEQUNEO0FBRzNCO0lBREMsU0FBUyxDQUFDLHlCQUF5QixDQUFDO2tFQUNGO0FBakR4QiwwQkFBMEI7SUF6QnRDLFNBQVMsQ0FBQztRQUNULFFBQVEsRUFBRSxxQkFBcUI7UUFDL0IsZ2tDQUErQztRQUUvQyxTQUFTLEVBQUUsQ0FBQyx3QkFBd0IsQ0FBQztRQUNyQyxlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTtRQUMvQyxVQUFVLEVBQUU7WUFDVixPQUFPLENBQ0wsZUFBZSxFQUFFO2dCQUNmLFVBQVUsQ0FBQyxHQUFHLFlBQVksT0FBTyxhQUFhLEVBQUUsRUFBRTtvQkFDaEQsS0FBSyxDQUFDLEVBQUMsU0FBUyxFQUFFLGtCQUFrQixFQUFDLENBQUM7b0JBQ3RDLE9BQU8sQ0FBQyxlQUFlLENBQUM7aUJBQ3pCLENBQUM7YUFDSCxDQUNGO1lBQ0QsT0FBTyxDQUNMLGNBQWMsRUFBRTtnQkFDZCxVQUFVLENBQUMsR0FBRyxZQUFZLE9BQU8sYUFBYSxFQUFFLEVBQUU7b0JBQ2hELEtBQUssQ0FBQyxFQUFDLFNBQVMsRUFBRSxpQkFBaUIsRUFBQyxDQUFDO29CQUNyQyxPQUFPLENBQUMsZUFBZSxDQUFDO2lCQUN6QixDQUFDO2FBQ0gsQ0FDRjtTQUNGOztLQUNGLENBQUM7R0FDVywwQkFBMEIsQ0EyR3RDO1NBM0dZLDBCQUEwQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENvbXBvbmVudCxcbiAgRWxlbWVudFJlZixcbiAgVmlld0NoaWxkLFxuICBJbnB1dCxcbiAgT25Jbml0LFxuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgT3V0cHV0LFxuICBFdmVudEVtaXR0ZXIsXG4gIEFmdGVyVmlld0NoZWNrZWQsXG4gIENoYW5nZURldGVjdG9yUmVmLFxuICBPbkRlc3Ryb3lcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7XG4gIHN0eWxlLFxuICB0cmlnZ2VyLFxuICB0cmFuc2l0aW9uLFxuICBhbmltYXRlXG59IGZyb20gJ0Bhbmd1bGFyL2FuaW1hdGlvbnMnO1xuXG5pbXBvcnQge1xuICBTa3lMaWJSZXNvdXJjZXNTZXJ2aWNlXG59IGZyb20gJ0Bza3l1eC9pMThuJztcblxuaW1wb3J0IHtcbiAgU3ViamVjdFxufSBmcm9tICdyeGpzJztcblxuaW1wb3J0IHtcbiAgdGFrZSxcbiAgdGFrZVVudGlsXG59IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuaW1wb3J0IHtcbiAgU2t5VmVydGljYWxUYWJzZXRBZGFwdGVyU2VydmljZVxufSBmcm9tICcuL3ZlcnRpY2FsLXRhYnNldC1hZGFwdGVyLnNlcnZpY2UnO1xuXG5pbXBvcnQge1xuICBTa3lWZXJ0aWNhbFRhYnNldFNlcnZpY2UsXG4gIEhJRERFTl9TVEFURSxcbiAgVklTSUJMRV9TVEFURVxufSBmcm9tICcuL3ZlcnRpY2FsLXRhYnNldC5zZXJ2aWNlJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc2t5LXZlcnRpY2FsLXRhYnNldCcsXG4gIHRlbXBsYXRlVXJsOiAnLi92ZXJ0aWNhbC10YWJzZXQuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi92ZXJ0aWNhbC10YWJzZXQuY29tcG9uZW50LnNjc3MnXSxcbiAgcHJvdmlkZXJzOiBbU2t5VmVydGljYWxUYWJzZXRTZXJ2aWNlXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIGFuaW1hdGlvbnM6IFtcbiAgICB0cmlnZ2VyKFxuICAgICAgJ3RhYkdyb3VwRW50ZXInLCBbXG4gICAgICAgIHRyYW5zaXRpb24oYCR7SElEREVOX1NUQVRFfSA9PiAke1ZJU0lCTEVfU1RBVEV9YCwgW1xuICAgICAgICAgIHN0eWxlKHt0cmFuc2Zvcm06ICd0cmFuc2xhdGUoLTEwMCUpJ30pLFxuICAgICAgICAgIGFuaW1hdGUoJzE1MG1zIGVhc2UtaW4nKVxuICAgICAgICBdKVxuICAgICAgXVxuICAgICksXG4gICAgdHJpZ2dlcihcbiAgICAgICdjb250ZW50RW50ZXInLCBbXG4gICAgICAgIHRyYW5zaXRpb24oYCR7SElEREVOX1NUQVRFfSA9PiAke1ZJU0lCTEVfU1RBVEV9YCwgW1xuICAgICAgICAgIHN0eWxlKHt0cmFuc2Zvcm06ICd0cmFuc2xhdGUoMTAwJSknfSksXG4gICAgICAgICAgYW5pbWF0ZSgnMTUwbXMgZWFzZS1pbicpXG4gICAgICAgIF0pXG4gICAgICBdXG4gICAgKVxuICBdXG59KVxuZXhwb3J0IGNsYXNzIFNreVZlcnRpY2FsVGFic2V0Q29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBBZnRlclZpZXdDaGVja2VkLCBPbkRlc3Ryb3kge1xuXG4gIC8qKlxuICAgKiBTcGVjaWZpZXMgdGhlIHRleHQgdG8gZGlzcGxheSBvbiB0aGUgc2hvdyB0YWJzIGJ1dHRvbiBvbiBtb2JpbGUgZGV2aWNlcy5cbiAgICovXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBzaG93VGFic1RleHQ6IHN0cmluZztcblxuICAvKipcbiAgICogU3BlY2lmaWVzIGFuIEFSSUEgcm9sZSBmb3IgdGhlIHZlcnRpY2FsIHRhYnNldFxuICAgKiBbdG8gc3VwcG9ydCBhY2Nlc3NpYmlsaXR5XShodHRwczovL2RldmVsb3Blci5ibGFja2JhdWQuY29tL3NreXV4L2xlYXJuL2FjY2Vzc2liaWxpdHkpXG4gICAqIGJ5IGluZGljYXRpbmcgaG93IHRoZSB0YWJzZXQgZnVuY3Rpb25zIGFuZCB3aGF0IGl0IGNvbnRyb2xzLiBGb3IgaW5mb3JtYXRpb24gYWJvdXQgaG93XG4gICAqIGFuIEFSSUEgcm9sZSBpbmRpY2F0ZXMgd2hhdCBhbiBpdGVtIHJlcHJlc2VudHMgb24gYSB3ZWIgcGFnZSwgc2VlIHRoZVxuICAgKiBbV0FJLUFSSUEgcm9sZXMgbW9kZWxdKGh0dHBzOi8vd3d3LnczLm9yZy9XQUkvUEYvYXJpYS9yb2xlcykuXG4gICAqIEBkZWZhdWx0IFwidGFibGlzdFwiXG4gICAqL1xuICBASW5wdXQoKVxuICBwdWJsaWMgZ2V0IGFyaWFSb2xlKCk6IHN0cmluZyB7XG4gICAgaWYgKHRoaXMuaXNNb2JpbGUpIHtcbiAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgfVxuICAgIHJldHVybiB0aGlzLl9hcmlhUm9sZSB8fCAndGFibGlzdCc7XG4gIH1cbiAgcHVibGljIHNldCBhcmlhUm9sZSh2YWx1ZTogc3RyaW5nKSB7XG4gICAgdGhpcy5fYXJpYVJvbGUgPSB2YWx1ZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBJbmRpY2F0ZXMgd2hldGhlciB0aGUgdmVydGljYWwgdGFic2V0IGxvYWRzIHRhYiBjb250ZW50IGR1cmluZyBpbml0aWFsaXphdGlvbiBzbyB0aGF0IGl0XG4gICAqIGRpc3BsYXlzIGNvbnRlbnQgd2l0aG91dCBtb3ZpbmcgYXJvdW5kIGVsZW1lbnRzIGluIHRoZSBjb250ZW50IGNvbnRhaW5lci5cbiAgICogQGRlZmF1bHQgJ2ZhbHNlJ1xuICAgKi9cbiAgQElucHV0KClcbiAgcHVibGljIG1haW50YWluVGFiQ29udGVudDogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIC8qKlxuICAgKiBGaXJlcyB3aGVuIHRoZSBhY3RpdmUgdGFiIGNoYW5nZXMuIEVtaXRzIHRoZSBpbmRleCBvZiB0aGUgYWN0aXZlIHRhYi4gVGhlXG4gICAqIGluZGV4IGlzIGJhc2VkIG9uIHRoZSB0YWIncyBwb3NpdGlvbiB3aGVuIGl0IGxvYWRzLlxuICAgKi9cbiAgQE91dHB1dCgpXG4gIHB1YmxpYyBhY3RpdmVDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPG51bWJlcj4oKTtcblxuICBAVmlld0NoaWxkKCdncm91cENvbnRhaW5lcldyYXBwZXInKVxuICBwdWJsaWMgdGFiR3JvdXBzOiBFbGVtZW50UmVmO1xuXG4gIEBWaWV3Q2hpbGQoJ3NreVNpZGVDb250ZW50JylcbiAgcHVibGljIGNvbnRlbnQ6IEVsZW1lbnRSZWY7XG5cbiAgQFZpZXdDaGlsZCgnY29udGVudENvbnRhaW5lcldyYXBwZXInKVxuICBwcml2YXRlIGNvbnRlbnRXcmFwcGVyOiBFbGVtZW50UmVmO1xuXG4gIHByaXZhdGUgaXNNb2JpbGUgPSBmYWxzZTtcbiAgcHJpdmF0ZSBfbmdVbnN1YnNjcmliZSA9IG5ldyBTdWJqZWN0KCk7XG4gIHByaXZhdGUgX2FyaWFSb2xlOiBzdHJpbmc7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHVibGljIGFkYXB0ZXJTZXJ2aWNlOiBTa3lWZXJ0aWNhbFRhYnNldEFkYXB0ZXJTZXJ2aWNlLFxuICAgIHB1YmxpYyB0YWJTZXJ2aWNlOiBTa3lWZXJ0aWNhbFRhYnNldFNlcnZpY2UsXG4gICAgcHJpdmF0ZSByZXNvdXJjZXM6IFNreUxpYlJlc291cmNlc1NlcnZpY2UsXG4gICAgcHJpdmF0ZSBjaGFuZ2VSZWY6IENoYW5nZURldGVjdG9yUmVmKSB7fVxuXG4gIHB1YmxpYyBuZ09uSW5pdCgpIHtcbiAgICB0aGlzLnRhYlNlcnZpY2UubWFpbnRhaW5UYWJDb250ZW50ID0gdGhpcy5tYWludGFpblRhYkNvbnRlbnQ7XG5cbiAgICB0aGlzLnRhYlNlcnZpY2UuaW5kZXhDaGFuZ2VkXG4gICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5fbmdVbnN1YnNjcmliZSkpXG4gICAgICAuc3Vic2NyaWJlKChpbmRleDogYW55KSA9PiB7XG4gICAgICAgIHRoaXMuYWN0aXZlQ2hhbmdlLmVtaXQoaW5kZXgpO1xuICAgICAgICBpZiAodGhpcy5jb250ZW50V3JhcHBlcikge1xuICAgICAgICAgIHRoaXMuYWRhcHRlclNlcnZpY2Uuc2Nyb2xsVG9Db250ZW50VG9wKHRoaXMuY29udGVudFdyYXBwZXIpO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuY2hhbmdlUmVmLm1hcmtGb3JDaGVjaygpO1xuICAgICAgfSk7XG5cbiAgICB0aGlzLnRhYlNlcnZpY2Uuc3dpdGNoaW5nTW9iaWxlXG4gICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5fbmdVbnN1YnNjcmliZSkpXG4gICAgICAuc3Vic2NyaWJlKChtb2JpbGU6IGJvb2xlYW4pID0+IHtcbiAgICAgICAgdGhpcy5pc01vYmlsZSA9IG1vYmlsZTtcbiAgICAgICAgdGhpcy5jaGFuZ2VSZWYubWFya0ZvckNoZWNrKCk7XG4gICAgICB9KTtcblxuICAgIGlmICh0aGlzLnRhYlNlcnZpY2UuaXNNb2JpbGUoKSkge1xuICAgICAgdGhpcy5pc01vYmlsZSA9IHRydWU7XG4gICAgICB0aGlzLnRhYlNlcnZpY2UuYW5pbWF0aW9uQ29udGVudFZpc2libGVTdGF0ZSA9IFZJU0lCTEVfU1RBVEU7XG4gICAgICB0aGlzLmNoYW5nZVJlZi5tYXJrRm9yQ2hlY2soKTtcbiAgICB9XG4gICAgaWYgKCF0aGlzLnNob3dUYWJzVGV4dCkge1xuICAgICAgdGhpcy5yZXNvdXJjZXMuZ2V0U3RyaW5nKCdza3l1eF92ZXJ0aWNhbF90YWJzX3Nob3dfdGFic190ZXh0JylcbiAgICAgICAgLnBpcGUodGFrZSgxKSlcbiAgICAgICAgLnN1YnNjcmliZShyZXNvdXJjZSA9PiB7XG4gICAgICAgICAgLyogc2FuaXR5IGNoZWNrICovXG4gICAgICAgICAgaWYgKCF0aGlzLnNob3dUYWJzVGV4dCkge1xuICAgICAgICAgICAgdGhpcy5zaG93VGFic1RleHQgPSByZXNvdXJjZTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBuZ0FmdGVyVmlld0NoZWNrZWQoKSB7XG4gICAgdGhpcy50YWJTZXJ2aWNlLmNvbnRlbnQgPSB0aGlzLmNvbnRlbnQ7XG4gICAgdGhpcy50YWJTZXJ2aWNlLnVwZGF0ZUNvbnRlbnQoKTtcbiAgfVxuXG4gIHB1YmxpYyBuZ09uRGVzdHJveSgpIHtcbiAgICB0aGlzLl9uZ1Vuc3Vic2NyaWJlLm5leHQoKTtcbiAgICB0aGlzLl9uZ1Vuc3Vic2NyaWJlLmNvbXBsZXRlKCk7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
import { __decorate } from "tslib";
|
|
2
|
+
import { NgModule } from '@angular/core';
|
|
3
|
+
import { CommonModule } from '@angular/common';
|
|
4
|
+
import { BrowserAnimationsModule } from '@angular/platform-browser/animations';
|
|
5
|
+
import { SkyMediaQueryModule } from '@skyux/core';
|
|
6
|
+
import { SkyChevronModule, SkyIconModule, SkyStatusIndicatorModule } from '@skyux/indicators';
|
|
7
|
+
import { SkyThemeModule } from '@skyux/theme';
|
|
8
|
+
import { SkyTabsResourcesModule } from '../shared/tabs-resources.module';
|
|
9
|
+
import { SkyVerticalTabsetComponent } from './vertical-tabset.component';
|
|
10
|
+
import { SkyVerticalTabComponent } from './vertical-tab.component';
|
|
11
|
+
import { SkyVerticalTabsetAdapterService } from './vertical-tabset-adapter.service';
|
|
12
|
+
import { SkyVerticalTabsetGroupComponent } from './vertical-tabset-group.component';
|
|
13
|
+
let SkyVerticalTabsetModule = class SkyVerticalTabsetModule {
|
|
14
|
+
};
|
|
15
|
+
SkyVerticalTabsetModule = __decorate([
|
|
16
|
+
NgModule({
|
|
17
|
+
declarations: [
|
|
18
|
+
SkyVerticalTabsetComponent,
|
|
19
|
+
SkyVerticalTabsetGroupComponent,
|
|
20
|
+
SkyVerticalTabComponent
|
|
21
|
+
],
|
|
22
|
+
imports: [
|
|
23
|
+
CommonModule,
|
|
24
|
+
BrowserAnimationsModule,
|
|
25
|
+
SkyChevronModule,
|
|
26
|
+
SkyIconModule,
|
|
27
|
+
SkyMediaQueryModule,
|
|
28
|
+
SkyStatusIndicatorModule,
|
|
29
|
+
SkyTabsResourcesModule,
|
|
30
|
+
SkyThemeModule
|
|
31
|
+
],
|
|
32
|
+
providers: [
|
|
33
|
+
SkyVerticalTabsetAdapterService
|
|
34
|
+
],
|
|
35
|
+
exports: [
|
|
36
|
+
SkyVerticalTabsetComponent,
|
|
37
|
+
SkyVerticalTabsetGroupComponent,
|
|
38
|
+
SkyVerticalTabComponent
|
|
39
|
+
]
|
|
40
|
+
})
|
|
41
|
+
], SkyVerticalTabsetModule);
|
|
42
|
+
export { SkyVerticalTabsetModule };
|
|
43
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmVydGljYWwtdGFic2V0Lm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0Bza3l1eC90YWJzLyIsInNvdXJjZXMiOlsibW9kdWxlcy92ZXJ0aWNhbC10YWJzZXQvdmVydGljYWwtdGFic2V0Lm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUNMLFFBQVEsRUFDVCxNQUFNLGVBQWUsQ0FBQztBQUV2QixPQUFPLEVBQ0wsWUFBWSxFQUNiLE1BQU0saUJBQWlCLENBQUM7QUFFekIsT0FBTyxFQUNMLHVCQUF1QixFQUN4QixNQUFNLHNDQUFzQyxDQUFDO0FBRTlDLE9BQU8sRUFDTCxtQkFBbUIsRUFDcEIsTUFBTSxhQUFhLENBQUM7QUFFckIsT0FBTyxFQUNMLGdCQUFnQixFQUNoQixhQUFhLEVBQ2Isd0JBQXdCLEVBQ3pCLE1BQU0sbUJBQW1CLENBQUM7QUFFM0IsT0FBTyxFQUNMLGNBQWMsRUFDZixNQUFNLGNBQWMsQ0FBQztBQUV0QixPQUFPLEVBQ0wsc0JBQXNCLEVBQ3ZCLE1BQU0saUNBQWlDLENBQUM7QUFFekMsT0FBTyxFQUNMLDBCQUEwQixFQUMzQixNQUFNLDZCQUE2QixDQUFDO0FBRXJDLE9BQU8sRUFDTCx1QkFBdUIsRUFDeEIsTUFBTSwwQkFBMEIsQ0FBQztBQUVsQyxPQUFPLEVBQ0wsK0JBQStCLEVBQ2hDLE1BQU0sbUNBQW1DLENBQUM7QUFFM0MsT0FBTyxFQUNMLCtCQUErQixFQUNoQyxNQUFNLG1DQUFtQyxDQUFDO0FBMkIzQyxJQUFhLHVCQUF1QixHQUFwQyxNQUFhLHVCQUF1QjtDQUFJLENBQUE7QUFBM0IsdUJBQXVCO0lBekJuQyxRQUFRLENBQUM7UUFDUixZQUFZLEVBQUU7WUFDWiwwQkFBMEI7WUFDMUIsK0JBQStCO1lBQy9CLHVCQUF1QjtTQUN4QjtRQUNELE9BQU8sRUFBRTtZQUNQLFlBQVk7WUFDWix1QkFBdUI7WUFDdkIsZ0JBQWdCO1lBQ2hCLGFBQWE7WUFDYixtQkFBbUI7WUFDbkIsd0JBQXdCO1lBQ3hCLHNCQUFzQjtZQUN0QixjQUFjO1NBQ2Y7UUFDRCxTQUFTLEVBQUU7WUFDVCwrQkFBK0I7U0FDaEM7UUFDRCxPQUFPLEVBQUU7WUFDUCwwQkFBMEI7WUFDMUIsK0JBQStCO1lBQy9CLHVCQUF1QjtTQUN4QjtLQUNGLENBQUM7R0FDVyx1QkFBdUIsQ0FBSTtTQUEzQix1QkFBdUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBOZ01vZHVsZVxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHtcbiAgQ29tbW9uTW9kdWxlXG59IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5cbmltcG9ydCB7XG4gIEJyb3dzZXJBbmltYXRpb25zTW9kdWxlXG59IGZyb20gJ0Bhbmd1bGFyL3BsYXRmb3JtLWJyb3dzZXIvYW5pbWF0aW9ucyc7XG5cbmltcG9ydCB7XG4gIFNreU1lZGlhUXVlcnlNb2R1bGVcbn0gZnJvbSAnQHNreXV4L2NvcmUnO1xuXG5pbXBvcnQge1xuICBTa3lDaGV2cm9uTW9kdWxlLFxuICBTa3lJY29uTW9kdWxlLFxuICBTa3lTdGF0dXNJbmRpY2F0b3JNb2R1bGVcbn0gZnJvbSAnQHNreXV4L2luZGljYXRvcnMnO1xuXG5pbXBvcnQge1xuICBTa3lUaGVtZU1vZHVsZVxufSBmcm9tICdAc2t5dXgvdGhlbWUnO1xuXG5pbXBvcnQge1xuICBTa3lUYWJzUmVzb3VyY2VzTW9kdWxlXG59IGZyb20gJy4uL3NoYXJlZC90YWJzLXJlc291cmNlcy5tb2R1bGUnO1xuXG5pbXBvcnQge1xuICBTa3lWZXJ0aWNhbFRhYnNldENvbXBvbmVudFxufSBmcm9tICcuL3ZlcnRpY2FsLXRhYnNldC5jb21wb25lbnQnO1xuXG5pbXBvcnQge1xuICBTa3lWZXJ0aWNhbFRhYkNvbXBvbmVudFxufSBmcm9tICcuL3ZlcnRpY2FsLXRhYi5jb21wb25lbnQnO1xuXG5pbXBvcnQge1xuICBTa3lWZXJ0aWNhbFRhYnNldEFkYXB0ZXJTZXJ2aWNlXG59IGZyb20gJy4vdmVydGljYWwtdGFic2V0LWFkYXB0ZXIuc2VydmljZSc7XG5cbmltcG9ydCB7XG4gIFNreVZlcnRpY2FsVGFic2V0R3JvdXBDb21wb25lbnRcbn0gZnJvbSAnLi92ZXJ0aWNhbC10YWJzZXQtZ3JvdXAuY29tcG9uZW50JztcblxuQE5nTW9kdWxlKHtcbiAgZGVjbGFyYXRpb25zOiBbXG4gICAgU2t5VmVydGljYWxUYWJzZXRDb21wb25lbnQsXG4gICAgU2t5VmVydGljYWxUYWJzZXRHcm91cENvbXBvbmVudCxcbiAgICBTa3lWZXJ0aWNhbFRhYkNvbXBvbmVudFxuICBdLFxuICBpbXBvcnRzOiBbXG4gICAgQ29tbW9uTW9kdWxlLFxuICAgIEJyb3dzZXJBbmltYXRpb25zTW9kdWxlLFxuICAgIFNreUNoZXZyb25Nb2R1bGUsXG4gICAgU2t5SWNvbk1vZHVsZSxcbiAgICBTa3lNZWRpYVF1ZXJ5TW9kdWxlLFxuICAgIFNreVN0YXR1c0luZGljYXRvck1vZHVsZSxcbiAgICBTa3lUYWJzUmVzb3VyY2VzTW9kdWxlLFxuICAgIFNreVRoZW1lTW9kdWxlXG4gIF0sXG4gIHByb3ZpZGVyczogW1xuICAgIFNreVZlcnRpY2FsVGFic2V0QWRhcHRlclNlcnZpY2VcbiAgXSxcbiAgZXhwb3J0czogW1xuICAgIFNreVZlcnRpY2FsVGFic2V0Q29tcG9uZW50LFxuICAgIFNreVZlcnRpY2FsVGFic2V0R3JvdXBDb21wb25lbnQsXG4gICAgU2t5VmVydGljYWxUYWJDb21wb25lbnRcbiAgXVxufSlcbmV4cG9ydCBjbGFzcyBTa3lWZXJ0aWNhbFRhYnNldE1vZHVsZSB7IH1cbiJdfQ==
|
|
@@ -0,0 +1,167 @@
|
|
|
1
|
+
import { __decorate } from "tslib";
|
|
2
|
+
import { Injectable } from '@angular/core';
|
|
3
|
+
import { SkyMediaBreakpoints, SkyMediaQueryService } from '@skyux/core';
|
|
4
|
+
import { BehaviorSubject, Subject } from 'rxjs';
|
|
5
|
+
export const VISIBLE_STATE = 'shown';
|
|
6
|
+
export const HIDDEN_STATE = 'void';
|
|
7
|
+
/**
|
|
8
|
+
* @internal
|
|
9
|
+
*/
|
|
10
|
+
let SkyVerticalTabsetService = class SkyVerticalTabsetService {
|
|
11
|
+
constructor(mediaQueryService) {
|
|
12
|
+
this.mediaQueryService = mediaQueryService;
|
|
13
|
+
this.activeIndex = undefined;
|
|
14
|
+
this.hidingTabs = new BehaviorSubject(false);
|
|
15
|
+
this.indexChanged = new BehaviorSubject(undefined);
|
|
16
|
+
this.maintainTabContent = false;
|
|
17
|
+
this.showingTabs = new BehaviorSubject(false);
|
|
18
|
+
this.switchingMobile = new Subject();
|
|
19
|
+
this.tabs = [];
|
|
20
|
+
this.tabAdded = new Subject();
|
|
21
|
+
this.tabClicked = new BehaviorSubject(undefined);
|
|
22
|
+
this._contentAdded = false;
|
|
23
|
+
this._tabsVisible = false;
|
|
24
|
+
this._isMobile = false;
|
|
25
|
+
this.mediaQueryService.subscribe(breakpoint => {
|
|
26
|
+
const nowMobile = breakpoint === SkyMediaBreakpoints.xs;
|
|
27
|
+
if (nowMobile && !this._isMobile) {
|
|
28
|
+
// switching to mobile
|
|
29
|
+
this.switchingMobile.next(true);
|
|
30
|
+
if (!this._tabsVisible) {
|
|
31
|
+
this.hidingTabs.next(true);
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
else if (!nowMobile && this._isMobile) {
|
|
35
|
+
// switching to widescreen
|
|
36
|
+
this.switchingMobile.next(false);
|
|
37
|
+
if (!this._tabsVisible) {
|
|
38
|
+
this.showingTabs.next(true);
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
this._isMobile = nowMobile;
|
|
42
|
+
});
|
|
43
|
+
}
|
|
44
|
+
set content(value) {
|
|
45
|
+
this._content = value;
|
|
46
|
+
}
|
|
47
|
+
addTab(tab) {
|
|
48
|
+
const index = this.tabs.length;
|
|
49
|
+
tab.index = index;
|
|
50
|
+
this.tabs.push(tab);
|
|
51
|
+
if (tab.active) {
|
|
52
|
+
this.activateTab(tab);
|
|
53
|
+
}
|
|
54
|
+
this.tabAdded.next(tab);
|
|
55
|
+
}
|
|
56
|
+
destroyTab(tab) {
|
|
57
|
+
let tabIndex = this.tabs.indexOf(tab);
|
|
58
|
+
if (tabIndex === -1) {
|
|
59
|
+
return;
|
|
60
|
+
}
|
|
61
|
+
if (this.maintainTabContent && tab.contentRendered && this._content) {
|
|
62
|
+
if (this._content.nativeElement.contains(tab.tabContent.nativeElement)) {
|
|
63
|
+
this._content.nativeElement.removeChild(tab.tabContent.nativeElement);
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
this.tabs.splice(tabIndex, 1);
|
|
67
|
+
// update tab indices
|
|
68
|
+
this.tabs.forEach((tabItem, index) => tabItem.index = index);
|
|
69
|
+
if (tab.active) {
|
|
70
|
+
if (!this.maintainTabContent) {
|
|
71
|
+
this.destroyContent();
|
|
72
|
+
}
|
|
73
|
+
// Try selecting the next tab first, and if there's no next tab then
|
|
74
|
+
// try selecting the previous one.
|
|
75
|
+
let newActiveTab = this.tabs[tabIndex] || this.tabs[tabIndex - 1];
|
|
76
|
+
/*istanbul ignore else */
|
|
77
|
+
if (newActiveTab) {
|
|
78
|
+
newActiveTab.activateTab();
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
activateTab(tab) {
|
|
83
|
+
// unactivate active tab
|
|
84
|
+
let activeTab = this.tabs.find(t => t.index === this.activeIndex);
|
|
85
|
+
if (activeTab && activeTab.index !== tab.index) {
|
|
86
|
+
activeTab.active = false;
|
|
87
|
+
activeTab.tabDeactivated();
|
|
88
|
+
}
|
|
89
|
+
this.activeIndex = tab.index;
|
|
90
|
+
this.tabClicked.next(true);
|
|
91
|
+
this.updateTabClicked();
|
|
92
|
+
}
|
|
93
|
+
activeTab() {
|
|
94
|
+
return this.tabs.find(t => t.index === this.activeIndex);
|
|
95
|
+
}
|
|
96
|
+
isMobile() {
|
|
97
|
+
return this._isMobile;
|
|
98
|
+
}
|
|
99
|
+
updateContent() {
|
|
100
|
+
if (!this.maintainTabContent) {
|
|
101
|
+
if (!this._contentAdded && this.contentVisible()) {
|
|
102
|
+
// content needs to be moved
|
|
103
|
+
this.moveContent();
|
|
104
|
+
}
|
|
105
|
+
else if (this._contentAdded && !this.contentVisible()) {
|
|
106
|
+
// content hidden
|
|
107
|
+
this._contentAdded = false;
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
else {
|
|
111
|
+
this.tabs.forEach((tab) => {
|
|
112
|
+
if (!tab.contentRendered) {
|
|
113
|
+
this._content.nativeElement.appendChild(tab.tabContent.nativeElement);
|
|
114
|
+
tab.contentRendered = true;
|
|
115
|
+
}
|
|
116
|
+
});
|
|
117
|
+
}
|
|
118
|
+
}
|
|
119
|
+
tabsVisible() {
|
|
120
|
+
return !this.isMobile() || this._tabsVisible;
|
|
121
|
+
}
|
|
122
|
+
contentVisible() {
|
|
123
|
+
return !this.isMobile() || !this._tabsVisible;
|
|
124
|
+
}
|
|
125
|
+
showTabs() {
|
|
126
|
+
this._tabsVisible = true;
|
|
127
|
+
this._contentAdded = false;
|
|
128
|
+
this.animationTabsVisibleState = VISIBLE_STATE;
|
|
129
|
+
this.animationContentVisibleState = HIDDEN_STATE;
|
|
130
|
+
this.showingTabs.next(true);
|
|
131
|
+
}
|
|
132
|
+
destroyContent() {
|
|
133
|
+
if (this._content) {
|
|
134
|
+
this._content.nativeElement.innerHTML = '';
|
|
135
|
+
}
|
|
136
|
+
this.content = undefined;
|
|
137
|
+
}
|
|
138
|
+
moveContent() {
|
|
139
|
+
if (this._content && !this._contentAdded) {
|
|
140
|
+
let activeTab = this.activeTab();
|
|
141
|
+
let activeContent = activeTab ? activeTab.tabContent : undefined;
|
|
142
|
+
if (activeContent && activeContent.nativeElement) {
|
|
143
|
+
this._content.nativeElement.appendChild(activeContent.nativeElement);
|
|
144
|
+
activeTab.contentRendered = true;
|
|
145
|
+
this._contentAdded = true;
|
|
146
|
+
}
|
|
147
|
+
}
|
|
148
|
+
}
|
|
149
|
+
updateTabClicked() {
|
|
150
|
+
this._contentAdded = false;
|
|
151
|
+
if (this.isMobile()) {
|
|
152
|
+
this._tabsVisible = false;
|
|
153
|
+
this.animationContentVisibleState = VISIBLE_STATE;
|
|
154
|
+
this.animationTabsVisibleState = HIDDEN_STATE;
|
|
155
|
+
this.hidingTabs.next(true);
|
|
156
|
+
}
|
|
157
|
+
this.indexChanged.next(this.activeIndex);
|
|
158
|
+
}
|
|
159
|
+
};
|
|
160
|
+
SkyVerticalTabsetService.ctorParameters = () => [
|
|
161
|
+
{ type: SkyMediaQueryService }
|
|
162
|
+
];
|
|
163
|
+
SkyVerticalTabsetService = __decorate([
|
|
164
|
+
Injectable()
|
|
165
|
+
], SkyVerticalTabsetService);
|
|
166
|
+
export { SkyVerticalTabsetService };
|
|
167
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmVydGljYWwtdGFic2V0LnNlcnZpY2UuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9Ac2t5dXgvdGFicy8iLCJzb3VyY2VzIjpbIm1vZHVsZXMvdmVydGljYWwtdGFic2V0L3ZlcnRpY2FsLXRhYnNldC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBRUwsVUFBVSxFQUNYLE1BQU0sZUFBZSxDQUFDO0FBRXZCLE9BQU8sRUFDTCxtQkFBbUIsRUFDbkIsb0JBQW9CLEVBQ3JCLE1BQU0sYUFBYSxDQUFDO0FBRXJCLE9BQU8sRUFDTCxlQUFlLEVBQ2YsT0FBTyxFQUNSLE1BQU0sTUFBTSxDQUFDO0FBTWQsTUFBTSxDQUFDLE1BQU0sYUFBYSxHQUFHLE9BQU8sQ0FBQztBQUNyQyxNQUFNLENBQUMsTUFBTSxZQUFZLEdBQUcsTUFBTSxDQUFDO0FBRW5DOztHQUVHO0FBRUgsSUFBYSx3QkFBd0IsR0FBckMsTUFBYSx3QkFBd0I7SUFvQ25DLFlBQTJCLGlCQUF1QztRQUF2QyxzQkFBaUIsR0FBakIsaUJBQWlCLENBQXNCO1FBbEMzRCxnQkFBVyxHQUFXLFNBQVMsQ0FBQztRQVVoQyxlQUFVLEdBQUcsSUFBSSxlQUFlLENBQUMsS0FBSyxDQUFDLENBQUM7UUFFeEMsaUJBQVksR0FBNEIsSUFBSSxlQUFlLENBQUMsU0FBUyxDQUFDLENBQUM7UUFFdkUsdUJBQWtCLEdBQVksS0FBSyxDQUFDO1FBRXBDLGdCQUFXLEdBQUcsSUFBSSxlQUFlLENBQUMsS0FBSyxDQUFDLENBQUM7UUFFekMsb0JBQWUsR0FBcUIsSUFBSSxPQUFPLEVBQUUsQ0FBQztRQUVsRCxTQUFJLEdBQW1DLEVBQUUsQ0FBQztRQUUxQyxhQUFRLEdBQXFDLElBQUksT0FBTyxFQUFFLENBQUM7UUFFM0QsZUFBVSxHQUE2QixJQUFJLGVBQWUsQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUlyRSxrQkFBYSxHQUFZLEtBQUssQ0FBQztRQUUvQixpQkFBWSxHQUFZLEtBQUssQ0FBQztR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QUFJLENBQUMsSUFBSSxDQUFDLGFBQWEsRUFBRTtZQUN4QyxJQUFJLFNBQVMsR0FBRyxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7WUFDakMsSUFBSSxhQUFhLEdBQUcsU0FBUyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUM7WUFFakUsSUFBSSxhQUFhLElBQUksYUFBYSxDQUFDLGFBQWEsRUFBRTtnQkFDaEQsSUFBSSxDQUFDLFFBQVEsQ0FBQyxhQUFhLENBQUMsV0FBVyxDQUFDLGFBQWEsQ0FBQyxhQUFhLENBQUMsQ0FBQztnQkFDckUsU0FBUyxDQUFDLGVBQWUsR0FBRyxJQUFJLENBQUM7Z0JBQ2pDLElBQUksQ0FBQyxhQUFhLEdBQUcsSUFBSSxDQUFDO2FBQzNCO1NBQ0Y7SUFDSCxDQUFDO0lBRU8sZ0JBQWdCO1FBQ3RCLElBQUksQ0FBQyxhQUFhLEdBQUcsS0FBSyxDQUFDO1FBRTNCLElBQUksSUFBSSxDQUFDLFFBQVEsRUFBRSxFQUFFO1lBQ25CLElBQUksQ0FBQyxZQUFZLEdBQUcsS0FBSyxDQUFDO1lBQzFCLElBQUksQ0FBQyw0QkFBNEIsR0FBRyxhQUFhLENBQUM7WUFDbEQsSUFBSSxDQUFDLHlCQUF5QixHQUFHLFlBQVksQ0FBQztZQUM5QyxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztTQUM1QjtRQUVELElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUMzQyxDQUFDO0NBQ0YsQ0FBQTs7WUE3SitDLG9CQUFvQjs7QUFwQ3ZELHdCQUF3QjtJQURwQyxVQUFVLEVBQUU7R0FDQSx3QkFBd0IsQ0FpTXBDO1NBak1ZLHdCQUF3QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIEVsZW1lbnRSZWYsXG4gIEluamVjdGFibGVcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7XG4gIFNreU1lZGlhQnJlYWtwb2ludHMsXG4gIFNreU1lZGlhUXVlcnlTZXJ2aWNlXG59IGZyb20gJ0Bza3l1eC9jb3JlJztcblxuaW1wb3J0IHtcbiAgQmVoYXZpb3JTdWJqZWN0LFxuICBTdWJqZWN0XG59IGZyb20gJ3J4anMnO1xuXG5pbXBvcnQge1xuICBTa3lWZXJ0aWNhbFRhYkNvbXBvbmVudFxufSBmcm9tICcuL3ZlcnRpY2FsLXRhYi5jb21wb25lbnQnO1xuXG5leHBvcnQgY29uc3QgVklTSUJMRV9TVEFURSA9ICdzaG93bic7XG5leHBvcnQgY29uc3QgSElEREVOX1NUQVRFID0gJ3ZvaWQnO1xuXG4vKipcbiAqIEBpbnRlcm5hbFxuICovXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgU2t5VmVydGljYWxUYWJzZXRTZXJ2aWNlIHtcblxuICBwdWJsaWMgYWN0aXZlSW5kZXg6IG51bWJlciA9IHVuZGVmaW5lZDtcblxuICBwdWJsaWMgYW5pbWF0aW9uQ29udGVudFZpc2libGVTdGF0ZTogc3RyaW5nO1xuXG4gIHB1YmxpYyBhbmltYXRpb25UYWJzVmlzaWJsZVN0YXRlOiBzdHJpbmc7XG5cbiAgcHVibGljIHNldCBjb250ZW50KHZhbHVlOiBFbGVtZW50UmVmKSB7XG4gICAgdGhpcy5fY29udGVudCA9IHZhbHVlO1xuICB9XG5cbiAgcHVibGljIGhpZGluZ1RhYnMgPSBuZXcgQmVoYXZpb3JTdWJqZWN0KGZhbHNlKTtcblxuICBwdWJsaWMgaW5kZXhDaGFuZ2VkOiBCZWhhdmlvclN1YmplY3Q8bnVtYmVyPiA9IG5ldyBCZWhhdmlvclN1YmplY3QodW5kZWZpbmVkKTtcblxuICBwdWJsaWMgbWFpbnRhaW5UYWJDb250ZW50OiBib29sZWFuID0gZmFsc2U7XG5cbiAgcHVibGljIHNob3dpbmdUYWJzID0gbmV3IEJlaGF2aW9yU3ViamVjdChmYWxzZSk7XG5cbiAgcHVibGljIHN3aXRjaGluZ01vYmlsZTogU3ViamVjdDxib29sZWFuPiA9IG5ldyBTdWJqZWN0KCk7XG5cbiAgcHVibGljIHRhYnM6IEFycmF5PFNreVZlcnRpY2FsVGFiQ29tcG9uZW50PiA9IFtdO1xuXG4gIHB1YmxpYyB0YWJBZGRlZDogU3ViamVjdDxTa3lWZXJ0aWNhbFRhYkNvbXBvbmVudD4gPSBuZXcgU3ViamVjdCgpO1xuXG4gIHB1YmxpYyB0YWJDbGlja2VkOiBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4gPSBuZXcgQmVoYXZpb3JTdWJqZWN0KHVuZGVmaW5lZCk7XG5cbiAgcHJpdmF0ZSBfY29udGVudDogRWxlbWVudFJlZjtcblxuICBwcml2YXRlIF9jb250ZW50QWRkZWQ6IGJvb2xlYW4gPSBmYWxzZTtcblxuICBwcml2YXRlIF90YWJzVmlzaWJsZTogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIHByaXZhdGUgX2lzTW9iaWxlOiBib29sZWFuID0gZmFsc2U7XG5cbiAgcHVibGljIGNvbnN0cnVjdG9yKHByaXZhdGUgbWVkaWFRdWVyeVNlcnZpY2U6IFNreU1lZGlhUXVlcnlTZXJ2aWNlKSB7XG4gICAgdGhpcy5tZWRpYVF1ZXJ5U2VydmljZS5zdWJzY3JpYmUoYnJlYWtwb2ludCA9PiB7XG4gICAgICBjb25zdCBub3dNb2JpbGUgPSBicmVha3BvaW50ID09PSBTa3lNZWRpYUJyZWFrcG9pbnRzLnhzO1xuXG4gICAgICBpZiAobm93TW9iaWxlICYmICF0aGlzLl9pc01vYmlsZSkge1xuICAgICAgICAvLyBzd2l0Y2hpbmcgdG8gbW9iaWxlXG4gICAgICAgIHRoaXMuc3dpdGNoaW5nTW9iaWxlLm5leHQodHJ1ZSk7XG5cbiAgICAgICAgaWYgKCF0aGlzLl90YWJzVmlzaWJsZSkge1xuICAgICAgICAgIHRoaXMuaGlkaW5nVGFicy5uZXh0KHRydWUpO1xuICAgICAgICB9XG5cbiAgICAgIH0gZWxzZSBpZiAoIW5vd01vYmlsZSAmJiB0aGlzLl9pc01vYmlsZSkge1xuICAgICAgICAvLyBzd2l0Y2hpbmcgdG8gd2lkZXNjcmVlblxuICAgICAgICB0aGlzLnN3aXRjaGluZ01vYmlsZS5uZXh0KGZhbHNlKTtcblxuICAgICAgICBpZiAoIXRoaXMuX3RhYnNWaXNpYmxlKSB7XG4gICAgICAgICAgdGhpcy5zaG93aW5nVGFicy5uZXh0KHRydWUpO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIHRoaXMuX2lzTW9iaWxlID0gbm93TW9iaWxlO1xuICAgIH0pO1xuICB9XG5cbiAgcHVibGljIGFkZFRhYih0YWI6IFNreVZlcnRpY2FsVGFiQ29tcG9uZW50KSB7XG4gICAgY29uc3QgaW5kZXggPSB0aGlzLnRhYnMubGVuZ3RoO1xuICAgIHRhYi5pbmRleCA9IGluZGV4O1xuXG4gICAgdGhpcy50YWJzLnB1c2godGFiKTtcblxuICAgIGlmICh0YWIuYWN0aXZlKSB7XG4gICAgICB0aGlzLmFjdGl2YXRlVGFiKHRhYik7XG4gICAgfVxuXG4gICAgdGhpcy50YWJBZGRlZC5uZXh0KHRhYik7XG4gIH1cblxuICBwdWJsaWMgZGVzdHJveVRhYih0YWI6IFNreVZlcnRpY2FsVGFiQ29tcG9uZW50KTogdm9pZCB7XG4gICAgbGV0IHRhYkluZGV4ID0gdGhpcy50YWJzLmluZGV4T2YodGFiKTtcbiAgICBpZiAodGFiSW5kZXggPT09IC0xKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgaWYgKHRoaXMubWFpbnRhaW5UYWJDb250ZW50ICYmIHRhYi5jb250ZW50UmVuZGVyZWQgJiYgdGhpcy5fY29udGVudCkge1xuICAgICAgaWYgKHRoaXMuX2NvbnRlbnQubmF0aXZlRWxlbWVudC5jb250YWlucyh0YWIudGFiQ29udGVudC5uYXRpdmVFbGVtZW50KSkge1xuICAgICAgICB0aGlzLl9jb250ZW50Lm5hdGl2ZUVsZW1lbnQucmVtb3ZlQ2hpbGQodGFiLnRhYkNvbnRlbnQubmF0aXZlRWxlbWVudCk7XG4gICAgICB9XG4gICAgfVxuICAgIHRoaXMudGFicy5zcGxpY2UodGFiSW5kZXgsIDEpO1xuICAgIC8vIHVwZGF0ZSB0YWIgaW5kaWNlc1xuICAgIHRoaXMudGFicy5mb3JFYWNoKCh0YWJJdGVtLCBpbmRleCkgPT4gdGFiSXRlbS5pbmRleCA9IGluZGV4KTtcblxuICAgIGlmICh0YWIuYWN0aXZlKSB7XG4gICAgICBpZiAoIXRoaXMubWFpbnRhaW5UYWJDb250ZW50KSB7XG4gICAgICAgIHRoaXMuZGVzdHJveUNvbnRlbnQoKTtcbiAgICAgIH1cbiAgICAgIC8vIFRyeSBzZWxlY3RpbmcgdGhlIG5leHQgdGFiIGZpcnN0LCBhbmQgaWYgdGhlcmUncyBubyBuZXh0IHRhYiB0aGVuXG4gICAgICAvLyB0cnkgc2VsZWN0aW5nIHRoZSBwcmV2aW91cyBvbmUuXG4gICAgICBsZXQgbmV3QWN0aXZlVGFiID0gdGhpcy50YWJzW3RhYkluZGV4XSB8fCB0aGlzLnRhYnNbdGFiSW5kZXggLSAxXTtcbiAgICAgIC8qaXN0YW5idWwgaWdub3JlIGVsc2UgKi9cbiAgICAgIGlmIChuZXdBY3RpdmVUYWIpIHtcbiAgICAgICAgbmV3QWN0aXZlVGFiLmFjdGl2YXRlVGFiKCk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGFjdGl2YXRlVGFiKHRhYjogU2t5VmVydGljYWxUYWJDb21wb25lbnQpIHtcblxuICAgIC8vIHVuYWN0aXZhdGUgYWN0aXZlIHRhYlxuICAgIGxldCBhY3RpdmVUYWIgPSB0aGlzLnRhYnMuZmluZCh0ID0+IHQuaW5kZXggPT09IHRoaXMuYWN0aXZlSW5kZXgpO1xuICAgIGlmIChhY3RpdmVUYWIgJiYgYWN0aXZlVGFiLmluZGV4ICE9PSB0YWIuaW5kZXgpIHtcbiAgICAgIGFjdGl2ZVRhYi5hY3RpdmUgPSBmYWxzZTtcbiAgICAgIGFjdGl2ZVRhYi50YWJEZWFjdGl2YXRlZCgpO1xuICAgIH1cblxuICAgIHRoaXMuYWN0aXZlSW5kZXggPSB0YWIuaW5kZXg7XG4gICAgdGhpcy50YWJDbGlja2VkLm5leHQodHJ1ZSk7XG4gICAgdGhpcy51cGRhdGVUYWJDbGlja2VkKCk7XG4gIH1cblxuICBwdWJsaWMgYWN0aXZlVGFiKCk6IFNreVZlcnRpY2FsVGFiQ29tcG9uZW50IHtcbiAgICByZXR1cm4gdGhpcy50YWJzLmZpbmQodCA9PiB0LmluZGV4ID09PSB0aGlzLmFjdGl2ZUluZGV4KTtcbiAgfVxuXG4gIHB1YmxpYyBpc01vYmlsZSgpIHtcbiAgICByZXR1cm4gdGhpcy5faXNNb2JpbGU7XG4gIH1cblxuICBwdWJsaWMgdXBkYXRlQ29udGVudCgpIHtcbiAgICBpZiAoIXRoaXMubWFpbnRhaW5UYWJDb250ZW50KSB7XG4gICAgICBpZiAoIXRoaXMuX2NvbnRlbnRBZGRlZCAmJiB0aGlzLmNvbnRlbnRWaXNpYmxlKCkpIHtcbiAgICAgICAgLy8gY29udGVudCBuZWVkcyB0byBiZSBtb3ZlZFxuICAgICAgICB0aGlzLm1vdmVDb250ZW50KCk7XG5cbiAgICAgIH0gZWxzZSBpZiAodGhpcy5fY29udGVudEFkZGVkICYmICF0aGlzLmNvbnRlbnRWaXNpYmxlKCkpIHtcbiAgICAgICAgLy8gY29udGVudCBoaWRkZW5cbiAgICAgICAgdGhpcy5fY29udGVudEFkZGVkID0gZmFsc2U7XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMudGFicy5mb3JFYWNoKCh0YWIpID0+IHtcbiAgICAgICAgaWYgKCF0YWIuY29udGVudFJlbmRlcmVkKSB7XG4gICAgICAgICAgdGhpcy5fY29udGVudC5uYXRpdmVFbGVtZW50LmFwcGVuZENoaWxkKHRhYi50YWJDb250ZW50Lm5hdGl2ZUVsZW1lbnQpO1xuICAgICAgICAgIHRhYi5jb250ZW50UmVuZGVyZWQgPSB0cnVlO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgdGFic1Zpc2libGUoKSB7XG4gICAgcmV0dXJuICF0aGlzLmlzTW9iaWxlKCkgfHwgdGhpcy5fdGFic1Zpc2libGU7XG4gIH1cblxuICBwdWJsaWMgY29udGVudFZpc2libGUoKSB7XG4gICAgcmV0dXJuICF0aGlzLmlzTW9iaWxlKCkgfHwgIXRoaXMuX3RhYnNWaXNpYmxlO1xuICB9XG5cbiAgcHVibGljIHNob3dUYWJzKCkge1xuICAgIHRoaXMuX3RhYnNWaXNpYmxlID0gdHJ1ZTtcbiAgICB0aGlzLl9jb250ZW50QWRkZWQgPSBmYWxzZTtcbiAgICB0aGlzLmFuaW1hdGlvblRhYnNWaXNpYmxlU3RhdGUgPSBWSVNJQkxFX1NUQVRFO1xuICAgIHRoaXMuYW5pbWF0aW9uQ29udGVudFZpc2libGVTdGF0ZSA9IEhJRERFTl9TVEFURTtcbiAgICB0aGlzLnNob3dpbmdUYWJzLm5leHQodHJ1ZSk7XG4gIH1cblxuICBwcml2YXRlIGRlc3Ryb3lDb250ZW50KCk6IHZvaWQge1xuICAgIGlmICh0aGlzLl9jb250ZW50KSB7XG4gICAgICB0aGlzLl9jb250ZW50Lm5hdGl2ZUVsZW1lbnQuaW5uZXJIVE1MID0gJyc7XG4gICAgfVxuICAgIHRoaXMuY29udGVudCA9IHVuZGVmaW5lZDtcbiAgfVxuXG4gIHByaXZhdGUgbW92ZUNvbnRlbnQoKSB7XG4gICAgaWYgKHRoaXMuX2NvbnRlbnQgJiYgIXRoaXMuX2NvbnRlbnRBZGRlZCkge1xuICAgICAgbGV0IGFjdGl2ZVRhYiA9IHRoaXMuYWN0aXZlVGFiKCk7XG4gICAgICBsZXQgYWN0aXZlQ29udGVudCA9IGFjdGl2ZVRhYiA/IGFjdGl2ZVRhYi50YWJDb250ZW50IDogdW5kZWZpbmVkO1xuXG4gICAgICBpZiAoYWN0aXZlQ29udGVudCAmJiBhY3RpdmVDb250ZW50Lm5hdGl2ZUVsZW1lbnQpIHtcbiAgICAgICAgdGhpcy5fY29udGVudC5uYXRpdmVFbGVtZW50LmFwcGVuZENoaWxkKGFjdGl2ZUNvbnRlbnQubmF0aXZlRWxlbWVudCk7XG4gICAgICAgIGFjdGl2ZVRhYi5jb250ZW50UmVuZGVyZWQgPSB0cnVlO1xuICAgICAgICB0aGlzLl9jb250ZW50QWRkZWQgPSB0cnVlO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgdXBkYXRlVGFiQ2xpY2tlZCgpIHtcbiAgICB0aGlzLl9jb250ZW50QWRkZWQgPSBmYWxzZTtcblxuICAgIGlmICh0aGlzLmlzTW9iaWxlKCkpIHtcbiAgICAgIHRoaXMuX3RhYnNWaXNpYmxlID0gZmFsc2U7XG4gICAgICB0aGlzLmFuaW1hdGlvbkNvbnRlbnRWaXNpYmxlU3RhdGUgPSBWSVNJQkxFX1NUQVRFO1xuICAgICAgdGhpcy5hbmltYXRpb25UYWJzVmlzaWJsZVN0YXRlID0gSElEREVOX1NUQVRFO1xuICAgICAgdGhpcy5oaWRpbmdUYWJzLm5leHQodHJ1ZSk7XG4gICAgfVxuXG4gICAgdGhpcy5pbmRleENoYW5nZWQubmV4dCh0aGlzLmFjdGl2ZUluZGV4KTtcbiAgfVxufVxuIl19
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { __decorate } from "tslib";
|
|
2
|
+
import { Injectable } from '@angular/core';
|
|
3
|
+
import { getStringForLocale } from '@skyux/i18n';
|
|
4
|
+
let SkyTabsResourcesProvider = class SkyTabsResourcesProvider {
|
|
5
|
+
constructor() {
|
|
6
|
+
this.resources = { "EN-US": { "skyux_tab_add": "Add tab", "skyux_tab_close": "Close {0} tab", "skyux_tabs_navigator_next": "Next", "skyux_tabs_navigator_previous": "Previous", "skyux_tab_open": "Open tab", "skyux_vertical_tabs_show_tabs_text": "Tab list" } };
|
|
7
|
+
}
|
|
8
|
+
getString(localeInfo, name) {
|
|
9
|
+
return getStringForLocale(this.resources, localeInfo.locale, name);
|
|
10
|
+
}
|
|
11
|
+
};
|
|
12
|
+
SkyTabsResourcesProvider = __decorate([
|
|
13
|
+
Injectable()
|
|
14
|
+
], SkyTabsResourcesProvider);
|
|
15
|
+
export { SkyTabsResourcesProvider };
|
|
16
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFicy1yZXNvdXJjZXMtcHJvdmlkZXIuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9Ac2t5dXgvdGFicy8iLCJzb3VyY2VzIjpbInBsdWdpbi1yZXNvdXJjZXMvdGFicy1yZXNvdXJjZXMtcHJvdmlkZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUNBLE9BQU8sRUFDTCxVQUFVLEVBQ1gsTUFBTSxlQUFlLENBQUM7QUFFdkIsT0FBTyxFQUNMLGtCQUFrQixFQUduQixNQUFNLGFBQWEsQ0FBQztBQUdyQixJQUFhLHdCQUF3QixHQUFyQyxNQUFhLHdCQUF3QjtJQUFyQztRQUNVLGNBQVMsR0FBUSxFQUFDLE9BQU8sRUFBQyxFQUFDLGVBQWUsRUFBQyxTQUFTLEVBQUMsaUJBQWlCLEVBQUMsZUFBZSxFQUFDLDJCQUEyQixFQUFDLE1BQU0sRUFBQywrQkFBK0IsRUFBQyxVQUFVLEVBQUMsZ0JBQWdCLEVBQUMsVUFBVSxFQUFDLG9DQUFvQyxFQUFDLFVBQVUsRUFBQyxFQUFDLENBQUM7SUFLN1AsQ0FBQztJQUhRLFNBQVMsQ0FBQyxVQUE0QixFQUFFLElBQVk7UUFDekQsT0FBTyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFLFVBQVUsQ0FBQyxNQUFNLEVBQUUsSUFBSSxDQUFDLENBQUM7SUFDckUsQ0FBQztDQUNGLENBQUE7QUFOWSx3QkFBd0I7SUFEcEMsVUFBVSxFQUFFO0dBQ0Esd0JBQXdCLENBTXBDO1NBTlksd0JBQXdCIiwic291cmNlc0NvbnRlbnQiOlsiXG5pbXBvcnQge1xuICBJbmplY3RhYmxlXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQge1xuICBnZXRTdHJpbmdGb3JMb2NhbGUsXG4gIFNreUFwcExvY2FsZUluZm8sXG4gIFNreUxpYlJlc291cmNlc1Byb3ZpZGVyXG59IGZyb20gJ0Bza3l1eC9pMThuJztcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIFNreVRhYnNSZXNvdXJjZXNQcm92aWRlciBpbXBsZW1lbnRzIFNreUxpYlJlc291cmNlc1Byb3ZpZGVyIHtcbiAgcHJpdmF0ZSByZXNvdXJjZXM6IGFueSA9IHtcIkVOLVVTXCI6e1wic2t5dXhfdGFiX2FkZFwiOlwiQWRkIHRhYlwiLFwic2t5dXhfdGFiX2Nsb3NlXCI6XCJDbG9zZSB7MH0gdGFiXCIsXCJza3l1eF90YWJzX25hdmlnYXRvcl9uZXh0XCI6XCJOZXh0XCIsXCJza3l1eF90YWJzX25hdmlnYXRvcl9wcmV2aW91c1wiOlwiUHJldmlvdXNcIixcInNreXV4X3RhYl9vcGVuXCI6XCJPcGVuIHRhYlwiLFwic2t5dXhfdmVydGljYWxfdGFic19zaG93X3RhYnNfdGV4dFwiOlwiVGFiIGxpc3RcIn19O1xuXG4gIHB1YmxpYyBnZXRTdHJpbmcobG9jYWxlSW5mbzogU2t5QXBwTG9jYWxlSW5mbywgbmFtZTogc3RyaW5nKTogc3RyaW5nIHtcbiAgICByZXR1cm4gZ2V0U3RyaW5nRm9yTG9jYWxlKHRoaXMucmVzb3VyY2VzLCBsb2NhbGVJbmZvLmxvY2FsZSwgbmFtZSk7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
export * from './modules/sectioned-form/sectioned-form.module';
|
|
2
|
+
export * from './modules/sectioned-form/sectioned-form.service';
|
|
3
|
+
export * from './modules/tabs/tabs.module';
|
|
4
|
+
export * from './modules/vertical-tabset/vertical-tabset.module';
|
|
5
|
+
// The following export is needed because our docs use it as a prescribed pattern.
|
|
6
|
+
// Ideally, this functionality would live in a standard `Input` or `Output`.
|
|
7
|
+
// https://developer.blackbaud.com/skyux/components/sectioned-form#code
|
|
8
|
+
// TODO: Try to remove in a major release.
|
|
9
|
+
export * from './modules/sectioned-form/sectioned-form.component';
|
|
10
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljX2FwaS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0Bza3l1eC90YWJzLyIsInNvdXJjZXMiOlsicHVibGljX2FwaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLGdEQUFnRCxDQUFDO0FBQy9ELGNBQWMsaURBQWlELENBQUM7QUFNaEUsY0FBYyw0QkFBNEIsQ0FBQztBQUUzQyxjQUFjLGtEQUFrRCxDQUFDO0FBRWpFLGtGQUFrRjtBQUNsRiw0RUFBNEU7QUFDNUUsdUVBQXVFO0FBQ3ZFLDBDQUEwQztBQUMxQyxjQUFjLG1EQUFtRCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9tb2R1bGVzL3NlY3Rpb25lZC1mb3JtL3NlY3Rpb25lZC1mb3JtLm1vZHVsZSc7XG5leHBvcnQgKiBmcm9tICcuL21vZHVsZXMvc2VjdGlvbmVkLWZvcm0vc2VjdGlvbmVkLWZvcm0uc2VydmljZSc7XG5cbmV4cG9ydCAqIGZyb20gJy4vbW9kdWxlcy90YWJzL3RhYi1pbmRleCc7XG5leHBvcnQgKiBmcm9tICcuL21vZHVsZXMvdGFicy90YWJzZXQtYnV0dG9ucy1kaXNwbGF5LW1vZGUnO1xuZXhwb3J0ICogZnJvbSAnLi9tb2R1bGVzL3RhYnMvdGFic2V0LXN0eWxlJztcbmV4cG9ydCAqIGZyb20gJy4vbW9kdWxlcy90YWJzL3RhYnNldC10YWItaW5kZXhlcy1jaGFuZ2UnO1xuZXhwb3J0ICogZnJvbSAnLi9tb2R1bGVzL3RhYnMvdGFicy5tb2R1bGUnO1xuXG5leHBvcnQgKiBmcm9tICcuL21vZHVsZXMvdmVydGljYWwtdGFic2V0L3ZlcnRpY2FsLXRhYnNldC5tb2R1bGUnO1xuXG4vLyBUaGUgZm9sbG93aW5nIGV4cG9ydCBpcyBuZWVkZWQgYmVjYXVzZSBvdXIgZG9jcyB1c2UgaXQgYXMgYSBwcmVzY3JpYmVkIHBhdHRlcm4uXG4vLyBJZGVhbGx5LCB0aGlzIGZ1bmN0aW9uYWxpdHkgd291bGQgbGl2ZSBpbiBhIHN0YW5kYXJkIGBJbnB1dGAgb3IgYE91dHB1dGAuXG4vLyBodHRwczovL2RldmVsb3Blci5ibGFja2JhdWQuY29tL3NreXV4L2NvbXBvbmVudHMvc2VjdGlvbmVkLWZvcm0jY29kZVxuLy8gVE9ETzogVHJ5IHRvIHJlbW92ZSBpbiBhIG1ham9yIHJlbGVhc2UuXG5leHBvcnQgKiBmcm9tICcuL21vZHVsZXMvc2VjdGlvbmVkLWZvcm0vc2VjdGlvbmVkLWZvcm0uY29tcG9uZW50JztcbiJdfQ==
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Generated bundle index. Do not edit.
|
|
3
|
+
*/
|
|
4
|
+
export * from './public_api';
|
|
5
|
+
export { SkySectionedFormSectionComponent as ɵd } from './modules/sectioned-form/sectioned-form-section.component';
|
|
6
|
+
export { SkyTabsResourcesModule as ɵj } from './modules/shared/tabs-resources.module';
|
|
7
|
+
export { SkyTabButtonComponent as ɵl } from './modules/tabs/tab-button.component';
|
|
8
|
+
export { SkyTabComponent as ɵm } from './modules/tabs/tab.component';
|
|
9
|
+
export { SkyTabsetAdapterService as ɵq } from './modules/tabs/tabset-adapter.service';
|
|
10
|
+
export { SkyTabsetNavButtonComponent as ɵr } from './modules/tabs/tabset-nav-button.component';
|
|
11
|
+
export { SkyTabsetPermalinkService as ɵn } from './modules/tabs/tabset-permalink.service';
|
|
12
|
+
export { SkyTabsetComponent as ɵp } from './modules/tabs/tabset.component';
|
|
13
|
+
export { SkyTabsetService as ɵo } from './modules/tabs/tabset.service';
|
|
14
|
+
export { SkyVerticalTabMediaQueryService as ɵf } from './modules/vertical-tabset/vertical-tab-media-query.service';
|
|
15
|
+
export { SkyVerticalTabComponent as ɵe } from './modules/vertical-tabset/vertical-tab.component';
|
|
16
|
+
export { SkyVerticalTabsetAdapterService as ɵg } from './modules/vertical-tabset/vertical-tabset-adapter.service';
|
|
17
|
+
export { SkyVerticalTabsetGroupComponent as ɵi } from './modules/vertical-tabset/vertical-tabset-group.component';
|
|
18
|
+
export { SkyVerticalTabsetComponent as ɵh } from './modules/vertical-tabset/vertical-tabset.component';
|
|
19
|
+
export { HIDDEN_STATE as ɵb, SkyVerticalTabsetService as ɵc, VISIBLE_STATE as ɵa } from './modules/vertical-tabset/vertical-tabset.service';
|
|
20
|
+
export { SkyTabsResourcesProvider as ɵk } from './plugin-resources/tabs-resources-provider';
|
|
21
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2t5dXgtdGFicy5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0Bza3l1eC90YWJzLyIsInNvdXJjZXMiOlsic2t5dXgtdGFicy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILGNBQWMsY0FBYyxDQUFDO0FBRTdCLE9BQU8sRUFBQyxnQ0FBZ0MsSUFBSSxFQUFFLEVBQUMsTUFBTSwyREFBMkQsQ0FBQztBQUNqSCxPQUFPLEVBQUMsc0JBQXNCLElBQUksRUFBRSxFQUFDLE1BQU0sd0NBQXdDLENBQUM7QUFDcEYsT0FBTyxFQUFDLHFCQUFxQixJQUFJLEVBQUUsRUFBQyxNQUFNLHFDQUFxQyxDQUFDO0FBQ2hGLE9BQU8sRUFBQyxlQUFlLElBQUksRUFBRSxFQUFDLE1BQU0sOEJBQThCLENBQUM7QUFDbkUsT0FBTyxFQUFDLHVCQUF1QixJQUFJLEVBQUUsRUFBQyxNQUFNLHVDQUF1QyxDQUFDO0FBQ3BGLE9BQU8sRUFBQywyQkFBMkIsSUFBSSxFQUFFLEVBQUMsTUFBTSw0Q0FBNEMsQ0FBQztBQUM3RixPQUFPLEVBQUMseUJBQXlCLElBQUksRUFBRSxFQUFDLE1BQU0seUNBQXlDLENBQUM7QUFDeEYsT0FBTyxFQUFDLGtCQUFrQixJQUFJLEVBQUUsRUFBQyxNQUFNLGlDQUFpQyxDQUFDO0FBQ3pFLE9BQU8sRUFBQyxnQkFBZ0IsSUFBSSxFQUFFLEVBQUMsTUFBTSwrQkFBK0IsQ0FBQztBQUNyRSxPQUFPLEVBQUMsK0JBQStCLElBQUksRUFBRSxFQUFDLE1BQU0sNERBQTRELENBQUM7QUFDakgsT0FBTyxFQUFDLHVCQUF1QixJQUFJLEVBQUUsRUFBQyxNQUFNLGtEQUFrRCxDQUFDO0FBQy9GLE9BQU8sRUFBQywrQkFBK0IsSUFBSSxFQUFFLEVBQUMsTUFBTSwyREFBMkQsQ0FBQztBQUNoSCxPQUFPLEVBQUMsK0JBQStCLElBQUksRUFBRSxFQUFDLE1BQU0sMkRBQTJELENBQUM7QUFDaEgsT0FBTyxFQUFDLDBCQUEwQixJQUFJLEVBQUUsRUFBQyxNQUFNLHFEQUFxRCxDQUFDO0FBQ3JHLE9BQU8sRUFBQyxZQUFZLElBQUksRUFBRSxFQUFDLHdCQUF3QixJQUFJLEVBQUUsRUFBQyxhQUFhLElBQUksRUFBRSxFQUFDLE1BQU0sbURBQW1ELENBQUM7QUFDeEksT0FBTyxFQUFDLHdCQUF3QixJQUFJLEVBQUUsRUFBQyxNQUFNLDRDQUE0QyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBHZW5lcmF0ZWQgYnVuZGxlIGluZGV4LiBEbyBub3QgZWRpdC5cbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL3B1YmxpY19hcGknO1xuXG5leHBvcnQge1NreVNlY3Rpb25lZEZvcm1TZWN0aW9uQ29tcG9uZW50IGFzIMm1ZH0gZnJvbSAnLi9tb2R1bGVzL3NlY3Rpb25lZC1mb3JtL3NlY3Rpb25lZC1mb3JtLXNlY3Rpb24uY29tcG9uZW50JztcbmV4cG9ydCB7U2t5VGFic1Jlc291cmNlc01vZHVsZSBhcyDJtWp9IGZyb20gJy4vbW9kdWxlcy9zaGFyZWQvdGFicy1yZXNvdXJjZXMubW9kdWxlJztcbmV4cG9ydCB7U2t5VGFiQnV0dG9uQ29tcG9uZW50IGFzIMm1bH0gZnJvbSAnLi9tb2R1bGVzL3RhYnMvdGFiLWJ1dHRvbi5jb21wb25lbnQnO1xuZXhwb3J0IHtTa3lUYWJDb21wb25lbnQgYXMgybVtfSBmcm9tICcuL21vZHVsZXMvdGFicy90YWIuY29tcG9uZW50JztcbmV4cG9ydCB7U2t5VGFic2V0QWRhcHRlclNlcnZpY2UgYXMgybVxfSBmcm9tICcuL21vZHVsZXMvdGFicy90YWJzZXQtYWRhcHRlci5zZXJ2aWNlJztcbmV4cG9ydCB7U2t5VGFic2V0TmF2QnV0dG9uQ29tcG9uZW50IGFzIMm1cn0gZnJvbSAnLi9tb2R1bGVzL3RhYnMvdGFic2V0LW5hdi1idXR0b24uY29tcG9uZW50JztcbmV4cG9ydCB7U2t5VGFic2V0UGVybWFsaW5rU2VydmljZSBhcyDJtW59IGZyb20gJy4vbW9kdWxlcy90YWJzL3RhYnNldC1wZXJtYWxpbmsuc2VydmljZSc7XG5leHBvcnQge1NreVRhYnNldENvbXBvbmVudCBhcyDJtXB9IGZyb20gJy4vbW9kdWxlcy90YWJzL3RhYnNldC5jb21wb25lbnQnO1xuZXhwb3J0IHtTa3lUYWJzZXRTZXJ2aWNlIGFzIMm1b30gZnJvbSAnLi9tb2R1bGVzL3RhYnMvdGFic2V0LnNlcnZpY2UnO1xuZXhwb3J0IHtTa3lWZXJ0aWNhbFRhYk1lZGlhUXVlcnlTZXJ2aWNlIGFzIMm1Zn0gZnJvbSAnLi9tb2R1bGVzL3ZlcnRpY2FsLXRhYnNldC92ZXJ0aWNhbC10YWItbWVkaWEtcXVlcnkuc2VydmljZSc7XG5leHBvcnQge1NreVZlcnRpY2FsVGFiQ29tcG9uZW50IGFzIMm1ZX0gZnJvbSAnLi9tb2R1bGVzL3ZlcnRpY2FsLXRhYnNldC92ZXJ0aWNhbC10YWIuY29tcG9uZW50JztcbmV4cG9ydCB7U2t5VmVydGljYWxUYWJzZXRBZGFwdGVyU2VydmljZSBhcyDJtWd9IGZyb20gJy4vbW9kdWxlcy92ZXJ0aWNhbC10YWJzZXQvdmVydGljYWwtdGFic2V0LWFkYXB0ZXIuc2VydmljZSc7XG5leHBvcnQge1NreVZlcnRpY2FsVGFic2V0R3JvdXBDb21wb25lbnQgYXMgybVpfSBmcm9tICcuL21vZHVsZXMvdmVydGljYWwtdGFic2V0L3ZlcnRpY2FsLXRhYnNldC1ncm91cC5jb21wb25lbnQnO1xuZXhwb3J0IHtTa3lWZXJ0aWNhbFRhYnNldENvbXBvbmVudCBhcyDJtWh9IGZyb20gJy4vbW9kdWxlcy92ZXJ0aWNhbC10YWJzZXQvdmVydGljYWwtdGFic2V0LmNvbXBvbmVudCc7XG5leHBvcnQge0hJRERFTl9TVEFURSBhcyDJtWIsU2t5VmVydGljYWxUYWJzZXRTZXJ2aWNlIGFzIMm1YyxWSVNJQkxFX1NUQVRFIGFzIMm1YX0gZnJvbSAnLi9tb2R1bGVzL3ZlcnRpY2FsLXRhYnNldC92ZXJ0aWNhbC10YWJzZXQuc2VydmljZSc7XG5leHBvcnQge1NreVRhYnNSZXNvdXJjZXNQcm92aWRlciBhcyDJtWt9IGZyb20gJy4vcGx1Z2luLXJlc291cmNlcy90YWJzLXJlc291cmNlcy1wcm92aWRlcic7Il19
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export * from './tabs/tabset-fixture';
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljX2FwaS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0Bza3l1eC90YWJzL3Rlc3RpbmcvIiwic291cmNlcyI6WyJwdWJsaWNfYXBpLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLGNBQWMsdUJBQXVCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL3RhYnMvdGFiLWZpeHR1cmUtdGFiJztcbmV4cG9ydCAqIGZyb20gJy4vdGFicy90YWJzZXQtZml4dHVyZSc7XG4iXX0=
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Generated bundle index. Do not edit.
|
|
3
|
+
*/
|
|
4
|
+
export * from './public_api';
|
|
5
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2t5dXgtdGFicy10ZXN0aW5nLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQHNreXV4L3RhYnMvdGVzdGluZy8iLCJzb3VyY2VzIjpbInNreXV4LXRhYnMtdGVzdGluZy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILGNBQWMsY0FBYyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBHZW5lcmF0ZWQgYnVuZGxlIGluZGV4LiBEbyBub3QgZWRpdC5cbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL3B1YmxpY19hcGknO1xuIl19
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFiLWZpeHR1cmUtdGFiLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQHNreXV4L3RhYnMvdGVzdGluZy8iLCJzb3VyY2VzIjpbInRhYnMvdGFiLWZpeHR1cmUtdGFiLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIFByb3BlcnRpZXMgb2YgYSBTS1kgVVggdGFiLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFNreVRhYnNldEZpeHR1cmVUYWIge1xuXG4gIC8qKlxuICAgKiBJbmRpY2F0ZXMgd2hldGhlciB0aGUgdGFiIGlzIHRoZSBjdXJyZW50bHkgc2VsZWN0ZWQgdGFiLlxuICAgKi9cbiAgYWN0aXZlOiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBJbmRpY2F0ZXMgd2hldGhlciB0aGUgdGFiIGlzIGRpc2FibGVkLlxuICAgKi9cbiAgZGlzYWJsZWQ6IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIFRoZSBwZXJtYWxpbmsgdmFsdWUgc3BlY2lmaWVkIGZvciB0aGUgdGFiLlxuICAgKi9cbiAgcGVybWFsaW5rVmFsdWU6IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIGNvdW50IGRpc3BsYXllZCBpbiB0aGUgdGFiIGhlYWRlci5cbiAgICovXG4gIHRhYkhlYWRlckNvdW50OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSB0ZXh0IGRpc3BsYXllZCBpbiB0aGUgdGFiIGhlYWRlci5cbiAgICovXG4gIHRhYkhlYWRpbmc6IHN0cmluZztcblxufVxuIl19
|
|
@@ -0,0 +1,141 @@
|
|
|
1
|
+
import { __awaiter } from "tslib";
|
|
2
|
+
import { By } from '@angular/platform-browser';
|
|
3
|
+
import { SkyAppTestUtility } from '@skyux-sdk/testing';
|
|
4
|
+
/**
|
|
5
|
+
* Allows interaction with a SKY UX tabset component.
|
|
6
|
+
*/
|
|
7
|
+
export class SkyTabsetFixture {
|
|
8
|
+
constructor(fixture, skyTestId) {
|
|
9
|
+
this.fixture = fixture;
|
|
10
|
+
this.debugEl = SkyAppTestUtility.getDebugElementByTestId(fixture, skyTestId, 'sky-tabset');
|
|
11
|
+
}
|
|
12
|
+
/**
|
|
13
|
+
* The tabset component's ARIA label.
|
|
14
|
+
*/
|
|
15
|
+
get ariaLabel() {
|
|
16
|
+
const tabsetEl = this.getTabsetEl();
|
|
17
|
+
return tabsetEl.getAttribute('aria-label') || undefined;
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* The tabset component's ARIA labelled by attribute.
|
|
21
|
+
*/
|
|
22
|
+
get ariaLabelledBy() {
|
|
23
|
+
const tabsetEl = this.getTabsetEl();
|
|
24
|
+
return tabsetEl.getAttribute('aria-labelledby') || undefined;
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* The index of the currently selected tab.
|
|
28
|
+
*/
|
|
29
|
+
get activeTabIndex() {
|
|
30
|
+
const tabLinkEls = this.getTabLinkEls();
|
|
31
|
+
for (let i = 0, n = tabLinkEls.length; i < n; i++) {
|
|
32
|
+
if (tabLinkEls.item(i).classList.contains('sky-btn-tab-selected')) {
|
|
33
|
+
return i;
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
return -1;
|
|
37
|
+
}
|
|
38
|
+
/**
|
|
39
|
+
* Retrieves information about the tab at the specified index.
|
|
40
|
+
* @param tabIndex The index of the tab.
|
|
41
|
+
*/
|
|
42
|
+
getTab(tabIndex) {
|
|
43
|
+
const tabLinkEl = this.getTabLinkEl(tabIndex);
|
|
44
|
+
const active = this.activeTabIndex === tabIndex;
|
|
45
|
+
const disabled = tabLinkEl.classList.contains('sky-btn-tab-disabled');
|
|
46
|
+
const tabHeading = this.getTextContent(tabLinkEl.querySelector('.sky-tab-heading').childNodes[0]);
|
|
47
|
+
const tabHeaderCount = this.getTextContent(tabLinkEl.querySelector('.sky-tab-header-count'));
|
|
48
|
+
let permalinkValue;
|
|
49
|
+
if (tabLinkEl.href) {
|
|
50
|
+
const permalink = tabLinkEl.href.split('?')[1];
|
|
51
|
+
if (permalink) {
|
|
52
|
+
const permalinkParts = permalink.split('=');
|
|
53
|
+
permalinkValue = decodeURIComponent(permalinkParts[1]);
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
return {
|
|
57
|
+
active,
|
|
58
|
+
disabled,
|
|
59
|
+
permalinkValue,
|
|
60
|
+
tabHeaderCount,
|
|
61
|
+
tabHeading
|
|
62
|
+
};
|
|
63
|
+
}
|
|
64
|
+
/**
|
|
65
|
+
* Clicks the tabset's "new" button.
|
|
66
|
+
*/
|
|
67
|
+
clickNewButton() {
|
|
68
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
69
|
+
return this.clickButton('sky-tabset-btn-new');
|
|
70
|
+
});
|
|
71
|
+
}
|
|
72
|
+
/**
|
|
73
|
+
* Clicks the tabset's "open" button.
|
|
74
|
+
*/
|
|
75
|
+
clickOpenButton() {
|
|
76
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
77
|
+
return this.clickButton('sky-tabset-btn-open');
|
|
78
|
+
});
|
|
79
|
+
}
|
|
80
|
+
/**
|
|
81
|
+
* Clicks the tab button at the specified index.
|
|
82
|
+
* @param tabIndex The index of the tab.
|
|
83
|
+
*/
|
|
84
|
+
clickTab(tabIndex) {
|
|
85
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
86
|
+
const tabLinkEl = this.getTabLinkEl(tabIndex);
|
|
87
|
+
if (!tabLinkEl) {
|
|
88
|
+
throw new Error(`There is no tab at index ${tabIndex}.`);
|
|
89
|
+
}
|
|
90
|
+
tabLinkEl.click();
|
|
91
|
+
this.fixture.detectChanges();
|
|
92
|
+
return this.fixture.whenStable();
|
|
93
|
+
});
|
|
94
|
+
}
|
|
95
|
+
/**
|
|
96
|
+
* Click's the tab's close button at the specified index.
|
|
97
|
+
* @param tabIndex The index of the tab.
|
|
98
|
+
*/
|
|
99
|
+
clickTabClose(tabIndex) {
|
|
100
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
101
|
+
const tabWrapperEl = this.getTabsetEl().querySelectorAll(`.sky-tabset-tabs .sky-btn-tab-wrapper`)[tabIndex];
|
|
102
|
+
if (!tabWrapperEl) {
|
|
103
|
+
throw new Error(`There is no tab at index ${tabIndex}.`);
|
|
104
|
+
}
|
|
105
|
+
const closeBtnEl = tabWrapperEl.querySelector('.sky-btn-tab-close');
|
|
106
|
+
if (!closeBtnEl) {
|
|
107
|
+
throw new Error('The specified tab does not have a close button.');
|
|
108
|
+
}
|
|
109
|
+
closeBtnEl.click();
|
|
110
|
+
this.fixture.detectChanges();
|
|
111
|
+
return this.fixture.whenStable();
|
|
112
|
+
});
|
|
113
|
+
}
|
|
114
|
+
clickButton(buttonCls) {
|
|
115
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
116
|
+
const tabsetEl = this.getTabsetEl();
|
|
117
|
+
const newButtonEl = tabsetEl.querySelector(`.sky-tabset-btns .${buttonCls}`);
|
|
118
|
+
newButtonEl.click();
|
|
119
|
+
this.fixture.detectChanges();
|
|
120
|
+
return this.fixture.whenStable();
|
|
121
|
+
});
|
|
122
|
+
}
|
|
123
|
+
getTabsetEl() {
|
|
124
|
+
const tabsetEl = this.debugEl.query(By.css('.sky-tabset')).nativeElement;
|
|
125
|
+
return tabsetEl;
|
|
126
|
+
}
|
|
127
|
+
getTabLinkEls() {
|
|
128
|
+
return this.getTabsetEl().querySelectorAll(`.sky-tabset-tabs .sky-btn-tab`);
|
|
129
|
+
}
|
|
130
|
+
getTabLinkEl(tabIndex) {
|
|
131
|
+
const tabLinkEl = this.getTabLinkEls().item(tabIndex);
|
|
132
|
+
if (!tabLinkEl) {
|
|
133
|
+
throw new Error(`There is no tab at index ${tabIndex}.`);
|
|
134
|
+
}
|
|
135
|
+
return tabLinkEl;
|
|
136
|
+
}
|
|
137
|
+
getTextContent(el) {
|
|
138
|
+
return (el && el.textContent.trim()) || undefined;
|
|
139
|
+
}
|
|
140
|
+
}
|
|
141
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFic2V0LWZpeHR1cmUuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9Ac2t5dXgvdGFicy90ZXN0aW5nLyIsInNvdXJjZXMiOlsidGFicy90YWJzZXQtZml4dHVyZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBUUEsT0FBTyxFQUNMLEVBQUUsRUFDSCxNQUFNLDJCQUEyQixDQUFDO0FBRW5DLE9BQU8sRUFDTCxpQkFBaUIsRUFDbEIsTUFBTSxvQkFBb0IsQ0FBQztBQU01Qjs7R0FFRztBQUNILE1BQU0sT0FBTyxnQkFBZ0I7SUFtQzNCLFlBQ1UsT0FBOEIsRUFDdEMsU0FBaUI7UUFEVCxZQUFPLEdBQVAsT0FBTyxDQUF1QjtRQUd0QyxJQUFJLENBQUMsT0FBTyxHQUFHLGlCQUFpQixDQUFDLHVCQUF1QixDQUFDLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxDQUFDLENBQUM7SUFDN0YsQ0FBQztJQXRDRDs7T0FFRztJQUNILElBQVcsU0FBUztRQUNsQixNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7UUFDcEMsT0FBTyxRQUFRLENBQUMsWUFBWSxDQUFDLFlBQVksQ0FBQyxJQUFJLFNBQVMsQ0FBQztJQUMxRCxDQUFDO0lBRUQ7O09BRUc7SUFDSCxJQUFXLGNBQWM7UUFDdkIsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO1FBQ3BDLE9BQU8sUUFBUSxDQUFDLFlBQVksQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLFNBQVMsQ0FBQztJQUMvRCxDQUFDO0lBRUQ7O09BRUc7SUFDSCxJQUFXLGNBQWM7UUFDdkIsTUFBTSxVQUFVLEdBQUcsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO1FBRXhDLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxVQUFVLENBQUMsTUFBTSxFQUFFLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUU7WUFDakQsSUFBSSxVQUFVLENBQUMsSUFBSSxDQUFD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Rml4dHVyZVxufSBmcm9tICdAYW5ndWxhci9jb3JlL3Rlc3RpbmcnO1xuXG5pbXBvcnQge1xuICBEZWJ1Z0VsZW1lbnRcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7XG4gIEJ5XG59IGZyb20gJ0Bhbmd1bGFyL3BsYXRmb3JtLWJyb3dzZXInO1xuXG5pbXBvcnQge1xuICBTa3lBcHBUZXN0VXRpbGl0eVxufSBmcm9tICdAc2t5dXgtc2RrL3Rlc3RpbmcnO1xuXG5pbXBvcnQge1xuICBTa3lUYWJzZXRGaXh0dXJlVGFiXG59IGZyb20gJy4vdGFiLWZpeHR1cmUtdGFiJztcblxuLyoqXG4gKiBBbGxvd3MgaW50ZXJhY3Rpb24gd2l0aCBhIFNLWSBVWCB0YWJzZXQgY29tcG9uZW50LlxuICovXG5leHBvcnQgY2xhc3MgU2t5VGFic2V0Rml4dHVyZSB7XG5cbiAgLyoqXG4gICAqIFRoZSB0YWJzZXQgY29tcG9uZW50J3MgQVJJQSBsYWJlbC5cbiAgICovXG4gIHB1YmxpYyBnZXQgYXJpYUxhYmVsKCk6IHN0cmluZyB7XG4gICAgY29uc3QgdGFic2V0RWwgPSB0aGlzLmdldFRhYnNldEVsKCk7XG4gICAgcmV0dXJuIHRhYnNldEVsLmdldEF0dHJpYnV0ZSgnYXJpYS1sYWJlbCcpIHx8IHVuZGVmaW5lZDtcbiAgfVxuXG4gIC8qKlxuICAgKiBUaGUgdGFic2V0IGNvbXBvbmVudCdzIEFSSUEgbGFiZWxsZWQgYnkgYXR0cmlidXRlLlxuICAgKi9cbiAgcHVibGljIGdldCBhcmlhTGFiZWxsZWRCeSgpOiBzdHJpbmcge1xuICAgIGNvbnN0IHRhYnNldEVsID0gdGhpcy5nZXRUYWJzZXRFbCgpO1xuICAgIHJldHVybiB0YWJzZXRFbC5nZXRBdHRyaWJ1dGUoJ2FyaWEtbGFiZWxsZWRieScpIHx8IHVuZGVmaW5lZDtcbiAgfVxuXG4gIC8qKlxuICAgKiBUaGUgaW5kZXggb2YgdGhlIGN1cnJlbnRseSBzZWxlY3RlZCB0YWIuXG4gICAqL1xuICBwdWJsaWMgZ2V0IGFjdGl2ZVRhYkluZGV4KCk6IG51bWJlciB7XG4gICAgY29uc3QgdGFiTGlua0VscyA9IHRoaXMuZ2V0VGFiTGlua0VscygpO1xuXG4gICAgZm9yIChsZXQgaSA9IDAsIG4gPSB0YWJMaW5rRWxzLmxlbmd0aDsgaSA8IG47IGkrKykge1xuICAgICAgaWYgKHRhYkxpbmtFbHMuaXRlbShpKS5jbGFzc0xpc3QuY29udGFpbnMoJ3NreS1idG4tdGFiLXNlbGVjdGVkJykpIHtcbiAgICAgICAgcmV0dXJuIGk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIC0xO1xuICB9XG5cbiAgcHJpdmF0ZSBkZWJ1Z0VsOiBEZWJ1Z0VsZW1lbnQ7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBmaXh0dXJlOiBDb21wb25lbnRGaXh0dXJlPGFueT4sXG4gICAgc2t5VGVzdElkOiBzdHJpbmdcbiAgKSB7XG4gICAgdGhpcy5kZWJ1Z0VsID0gU2t5QXBwVGVzdFV0aWxpdHkuZ2V0RGVidWdFbGVtZW50QnlUZXN0SWQoZml4dHVyZSwgc2t5VGVzdElkLCAnc2t5LXRhYnNldCcpO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHJpZXZlcyBpbmZvcm1hdGlvbiBhYm91dCB0aGUgdGFiIGF0IHRoZSBzcGVjaWZpZWQgaW5kZXguXG4gICAqIEBwYXJhbSB0YWJJbmRleCBUaGUgaW5kZXggb2YgdGhlIHRhYi5cbiAgICovXG4gIHB1YmxpYyBnZXRUYWIodGFiSW5kZXg6IG51bWJlcik6IFNreVRhYnNldEZpeHR1cmVUYWIge1xuICAgIGNvbnN0IHRhYkxpbmtFbCA9IHRoaXMuZ2V0VGFiTGlua0VsKHRhYkluZGV4KTtcblxuICAgIGNvbnN0IGFjdGl2ZSA9IHRoaXMuYWN0aXZlVGFiSW5kZXggPT09IHRhYkluZGV4O1xuICAgIGNvbnN0IGRpc2FibGVkID0gdGFiTGlua0VsLmNsYXNzTGlzdC5jb250YWlucygnc2t5LWJ0bi10YWItZGlzYWJsZWQnKTtcbiAgICBjb25zdCB0YWJIZWFkaW5nID0gdGhpcy5nZXRUZXh0Q29udGVudChcbiAgICAgIHRhYkxpbmtFbC5xdWVyeVNlbGVjdG9yKCcuc2t5LXRhYi1oZWFkaW5nJykuY2hpbGROb2Rlc1swXVxuICAgICk7XG4gICAgY29uc3QgdGFiSGVhZGVyQ291bnQgPSB0aGlzLmdldFRleHRDb250ZW50KHRhYkxpbmtFbC5xdWVyeVNlbGVjdG9yKCcuc2t5LXRhYi1oZWFkZXItY291bnQnKSk7XG5cbiAgICBsZXQgcGVybWFsaW5rVmFsdWU6IHN0cmluZztcblxuICAgIGlmICh0YWJMaW5rRWwuaHJlZikge1xuICAgICAgY29uc3QgcGVybWFsaW5rID0gdGFiTGlua0VsLmhyZWYuc3BsaXQoJz8nKVsxXTtcbiAgICAgIGlmIChwZXJtYWxpbmspIHtcbiAgICAgICAgY29uc3QgcGVybWFsaW5rUGFydHMgPSBwZXJtYWxpbmsuc3BsaXQoJz0nKTtcblxuICAgICAgICBwZXJtYWxpbmtWYWx1ZSA9IGRlY29kZVVSSUNvbXBvbmVudChwZXJtYWxpbmtQYXJ0c1sxXSk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIHtcbiAgICAgIGFjdGl2ZSxcbiAgICAgIGRpc2FibGVkLFxuICAgICAgcGVybWFsaW5rVmFsdWUsXG4gICAgICB0YWJIZWFkZXJDb3VudCxcbiAgICAgIHRhYkhlYWRpbmdcbiAgICB9O1xuICB9XG5cbiAgLyoqXG4gICAqIENsaWNrcyB0aGUgdGFic2V0J3MgXCJuZXdcIiBidXR0b24uXG4gICAqL1xuICBwdWJsaWMgYXN5bmMgY2xpY2tOZXdCdXR0b24oKTogUHJvbWlzZTxhbnk+IHtcbiAgICByZXR1cm4gdGhpcy5jbGlja0J1dHRvbignc2t5LXRhYnNldC1idG4tbmV3Jyk7XG4gIH1cblxuICAvKipcbiAgICogQ2xpY2tzIHRoZSB0YWJzZXQncyBcIm9wZW5cIiBidXR0b24uXG4gICAqL1xuICBwdWJsaWMgYXN5bmMgY2xpY2tPcGVuQnV0dG9uKCk6IFByb21pc2U8YW55PiB7XG4gICAgcmV0dXJuIHRoaXMuY2xpY2tCdXR0b24oJ3NreS10YWJzZXQtYnRuLW9wZW4nKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDbGlja3MgdGhlIHRhYiBidXR0b24gYXQgdGhlIHNwZWNpZmllZCBpbmRleC5cbiAgICogQHBhcmFtIHRhYkluZGV4IFRoZSBpbmRleCBvZiB0aGUgdGFiLlxuICAgKi9cbiAgcHVibGljIGFzeW5jIGNsaWNrVGFiKHRhYkluZGV4OiBudW1iZXIpOiBQcm9taXNlPGFueT4ge1xuICAgIGNvbnN0IHRhYkxpbmtFbCA9IHRoaXMuZ2V0VGFiTGlua0VsKHRhYkluZGV4KTtcblxuICAgIGlmICghdGFiTGlua0VsKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYFRoZXJlIGlzIG5vIHRhYiBhdCBpbmRleCAke3RhYkluZGV4fS5gKTtcbiAgICB9XG5cbiAgICB0YWJMaW5rRWwuY2xpY2soKTtcblxuICAgIHRoaXMuZml4dHVyZS5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgcmV0dXJuIHRoaXMuZml4dHVyZS53aGVuU3RhYmxlKCk7XG4gIH1cblxuICAvKipcbiAgICogQ2xpY2sncyB0aGUgdGFiJ3MgY2xvc2UgYnV0dG9uIGF0IHRoZSBzcGVjaWZpZWQgaW5kZXguXG4gICAqIEBwYXJhbSB0YWJJbmRleCBUaGUgaW5kZXggb2YgdGhlIHRhYi5cbiAgICovXG4gIHB1YmxpYyBhc3luYyBjbGlja1RhYkNsb3NlKHRhYkluZGV4OiBudW1iZXIpOiBQcm9taXNlPGFueT4ge1xuICAgIGNvbnN0IHRhYldyYXBwZXJFbCA9IHRoaXMuZ2V0VGFic2V0RWwoKS5xdWVyeVNlbGVjdG9yQWxsKFxuICAgICAgYC5za3ktdGFic2V0LXRhYnMgLnNreS1idG4tdGFiLXdyYXBwZXJgXG4gICAgKVt0YWJJbmRleF07XG5cbiAgICBpZiAoIXRhYldyYXBwZXJFbCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBUaGVyZSBpcyBubyB0YWIgYXQgaW5kZXggJHt0YWJJbmRleH0uYCk7XG4gICAgfVxuXG4gICAgY29uc3QgY2xvc2VCdG5FbCA9IHRhYldyYXBwZXJFbC5xdWVyeVNlbGVjdG9yKCcuc2t5LWJ0bi10YWItY2xvc2UnKSBhcyBIVE1MQnV0dG9uRWxlbWVudDtcblxuICAgIGlmICghY2xvc2VCdG5FbCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdUaGUgc3BlY2lmaWVkIHRhYiBkb2VzIG5vdCBoYXZlIGEgY2xvc2UgYnV0dG9uLicpO1xuICAgIH1cblxuICAgIGNsb3NlQnRuRWwuY2xpY2soKTtcblxuICAgIHRoaXMuZml4dHVyZS5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgcmV0dXJuIHRoaXMuZml4dHVyZS53aGVuU3RhYmxlKCk7XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIGNsaWNrQnV0dG9uKGJ1dHRvbkNsczogc3RyaW5nKTogUHJvbWlzZTxhbnk+IHtcbiAgICBjb25zdCB0YWJzZXRFbCA9IHRoaXMuZ2V0VGFic2V0RWwoKTtcblxuICAgIGNvbnN0IG5ld0J1dHRvbkVsID1cbiAgICAgIHRhYnNldEVsLnF1ZXJ5U2VsZWN0b3IoYC5za3ktdGFic2V0LWJ0bnMgLiR7YnV0dG9uQ2xzfWApIGFzIEhUTUxCdXR0b25FbGVtZW50O1xuXG4gICAgbmV3QnV0dG9uRWwuY2xpY2soKTtcblxuICAgIHRoaXMuZml4dHVyZS5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgcmV0dXJuIHRoaXMuZml4dHVyZS53aGVuU3RhYmxlKCk7XG4gIH1cblxuICBwcml2YXRlIGdldFRhYnNldEVsKCk6IEhUTUxEaXZFbGVtZW50IHtcbiAgICBjb25zdCB0YWJzZXRFbCA9IHRoaXMuZGVidWdFbC5xdWVyeShCeS5jc3MoJy5za3ktdGFic2V0JykpLm5hdGl2ZUVsZW1lbnQ7XG5cbiAgICByZXR1cm4gdGFic2V0RWw7XG4gIH1cblxuICBwcml2YXRlIGdldFRhYkxpbmtFbHMoKTogTm9kZUxpc3RPZjxIVE1MQW5jaG9yRWxlbWVudD4ge1xuICAgIHJldHVybiB0aGlzLmdldFRhYnNldEVsKCkucXVlcnlTZWxlY3RvckFsbChcbiAgICAgIGAuc2t5LXRhYnNldC10YWJzIC5za3ktYnRuLXRhYmBcbiAgICApO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRUYWJMaW5rRWwodGFiSW5kZXg6IG51bWJlcik6IEhUTUxBbmNob3JFbGVtZW50IHtcbiAgICBjb25zdCB0YWJMaW5rRWwgPSB0aGlzLmdldFRhYkxpbmtFbHMoKS5pdGVtKHRhYkluZGV4KTtcblxuICAgIGlmICghdGFiTGlua0VsKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYFRoZXJlIGlzIG5vIHRhYiBhdCBpbmRleCAke3RhYkluZGV4fS5gKTtcbiAgICB9XG5cbiAgICByZXR1cm4gdGFiTGlua0VsO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRUZXh0Q29udGVudChlbDogRWxlbWVudCB8IE5vZGUpOiBzdHJpbmcge1xuICAgIHJldHVybiAoZWwgJiYgZWwudGV4dENvbnRlbnQudHJpbSgpKSB8fCB1bmRlZmluZWQ7XG4gIH1cblxufVxuIl19
|