@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.
Files changed (152) hide show
  1. package/CHANGELOG.md +218 -0
  2. package/README.md +5 -0
  3. package/bundles/skyux-tabs-testing.umd.js +395 -0
  4. package/bundles/skyux-tabs-testing.umd.js.map +1 -0
  5. package/bundles/skyux-tabs-testing.umd.min.js +16 -0
  6. package/bundles/skyux-tabs-testing.umd.min.js.map +1 -0
  7. package/bundles/skyux-tabs.umd.js +2414 -0
  8. package/bundles/skyux-tabs.umd.js.map +1 -0
  9. package/bundles/skyux-tabs.umd.min.js +16 -0
  10. package/bundles/skyux-tabs.umd.min.js.map +1 -0
  11. package/esm2015/modules/sectioned-form/sectioned-form-section.component.js +74 -0
  12. package/esm2015/modules/sectioned-form/sectioned-form.component.js +105 -0
  13. package/esm2015/modules/sectioned-form/sectioned-form.module.js +28 -0
  14. package/esm2015/modules/sectioned-form/sectioned-form.service.js +34 -0
  15. package/esm2015/modules/shared/tabs-resources.module.js +17 -0
  16. package/esm2015/modules/tabs/tab-button.component.js +71 -0
  17. package/esm2015/modules/tabs/tab-index.js +1 -0
  18. package/esm2015/modules/tabs/tab.component.js +144 -0
  19. package/esm2015/modules/tabs/tabs.module.js +41 -0
  20. package/esm2015/modules/tabs/tabset-active-tab-unregistered-args.js +1 -0
  21. package/esm2015/modules/tabs/tabset-adapter.service.js +53 -0
  22. package/esm2015/modules/tabs/tabset-buttons-display-mode.js +1 -0
  23. package/esm2015/modules/tabs/tabset-nav-button.component.js +122 -0
  24. package/esm2015/modules/tabs/tabset-permalink.service.js +123 -0
  25. package/esm2015/modules/tabs/tabset-style.js +1 -0
  26. package/esm2015/modules/tabs/tabset-tab-indexes-change.js +1 -0
  27. package/esm2015/modules/tabs/tabset.component.js +403 -0
  28. package/esm2015/modules/tabs/tabset.service.js +109 -0
  29. package/esm2015/modules/vertical-tabset/vertical-tab-media-query.service.js +71 -0
  30. package/esm2015/modules/vertical-tabset/vertical-tab.component.js +195 -0
  31. package/esm2015/modules/vertical-tabset/vertical-tabset-adapter.service.js +50 -0
  32. package/esm2015/modules/vertical-tabset/vertical-tabset-group.component.js +113 -0
  33. package/esm2015/modules/vertical-tabset/vertical-tabset.component.js +139 -0
  34. package/esm2015/modules/vertical-tabset/vertical-tabset.module.js +43 -0
  35. package/esm2015/modules/vertical-tabset/vertical-tabset.service.js +167 -0
  36. package/esm2015/plugin-resources/tabs-resources-provider.js +16 -0
  37. package/esm2015/public_api.js +10 -0
  38. package/esm2015/skyux-tabs.js +21 -0
  39. package/esm2015/testing/public_api.js +2 -0
  40. package/esm2015/testing/skyux-tabs-testing.js +5 -0
  41. package/esm2015/testing/tabs/tab-fixture-tab.js +1 -0
  42. package/esm2015/testing/tabs/tabset-fixture.js +141 -0
  43. package/esm5/modules/sectioned-form/sectioned-form-section.component.js +84 -0
  44. package/esm5/modules/sectioned-form/sectioned-form.component.js +111 -0
  45. package/esm5/modules/sectioned-form/sectioned-form.module.js +31 -0
  46. package/esm5/modules/sectioned-form/sectioned-form.service.js +35 -0
  47. package/esm5/modules/shared/tabs-resources.module.js +20 -0
  48. package/esm5/modules/tabs/tab-button.component.js +72 -0
  49. package/esm5/modules/tabs/tab-index.js +1 -0
  50. package/esm5/modules/tabs/tab.component.js +173 -0
  51. package/esm5/modules/tabs/tabs.module.js +44 -0
  52. package/esm5/modules/tabs/tabset-active-tab-unregistered-args.js +1 -0
  53. package/esm5/modules/tabs/tabset-adapter.service.js +58 -0
  54. package/esm5/modules/tabs/tabset-buttons-display-mode.js +1 -0
  55. package/esm5/modules/tabs/tabset-nav-button.component.js +145 -0
  56. package/esm5/modules/tabs/tabset-permalink.service.js +129 -0
  57. package/esm5/modules/tabs/tabset-style.js +1 -0
  58. package/esm5/modules/tabs/tabset-tab-indexes-change.js +1 -0
  59. package/esm5/modules/tabs/tabset.component.js +434 -0
  60. package/esm5/modules/tabs/tabset.service.js +122 -0
  61. package/esm5/modules/vertical-tabset/vertical-tab-media-query.service.js +76 -0
  62. package/esm5/modules/vertical-tabset/vertical-tab.component.js +214 -0
  63. package/esm5/modules/vertical-tabset/vertical-tabset-adapter.service.js +51 -0
  64. package/esm5/modules/vertical-tabset/vertical-tabset-group.component.js +119 -0
  65. package/esm5/modules/vertical-tabset/vertical-tabset.component.js +145 -0
  66. package/esm5/modules/vertical-tabset/vertical-tabset.module.js +46 -0
  67. package/esm5/modules/vertical-tabset/vertical-tabset.service.js +176 -0
  68. package/esm5/plugin-resources/tabs-resources-provider.js +17 -0
  69. package/esm5/public_api.js +10 -0
  70. package/esm5/skyux-tabs.js +21 -0
  71. package/esm5/testing/public_api.js +2 -0
  72. package/esm5/testing/skyux-tabs-testing.js +5 -0
  73. package/esm5/testing/tabs/tab-fixture-tab.js +1 -0
  74. package/esm5/testing/tabs/tabset-fixture.js +168 -0
  75. package/fesm2015/skyux-tabs-testing.js +148 -0
  76. package/fesm2015/skyux-tabs-testing.js.map +1 -0
  77. package/fesm2015/skyux-tabs.js +1998 -0
  78. package/fesm2015/skyux-tabs.js.map +1 -0
  79. package/fesm5/skyux-tabs-testing.js +174 -0
  80. package/fesm5/skyux-tabs-testing.js.map +1 -0
  81. package/fesm5/skyux-tabs.js +2182 -0
  82. package/fesm5/skyux-tabs.js.map +1 -0
  83. package/modules/sectioned-form/sectioned-form-section.component.d.ts +39 -0
  84. package/modules/sectioned-form/sectioned-form.component.d.ts +30 -0
  85. package/modules/sectioned-form/sectioned-form.module.d.ts +2 -0
  86. package/modules/sectioned-form/sectioned-form.service.d.ts +21 -0
  87. package/modules/shared/tabs-resources.module.d.ts +2 -0
  88. package/modules/tabs/tab-button.component.d.ts +21 -0
  89. package/modules/tabs/tab-index.d.ts +1 -0
  90. package/modules/tabs/tab.component.d.ts +77 -0
  91. package/modules/tabs/tabs.module.d.ts +2 -0
  92. package/modules/tabs/tabset-active-tab-unregistered-args.d.ts +10 -0
  93. package/modules/tabs/tabset-adapter.service.d.ts +21 -0
  94. package/modules/tabs/tabset-buttons-display-mode.d.ts +1 -0
  95. package/modules/tabs/tabset-nav-button.component.d.ts +24 -0
  96. package/modules/tabs/tabset-permalink.service.d.ts +43 -0
  97. package/modules/tabs/tabset-style.d.ts +1 -0
  98. package/modules/tabs/tabset-tab-indexes-change.d.ts +7 -0
  99. package/modules/tabs/tabset.component.d.ts +142 -0
  100. package/modules/tabs/tabset.service.d.ts +51 -0
  101. package/modules/vertical-tabset/vertical-tab-media-query.service.d.ts +15 -0
  102. package/modules/vertical-tabset/vertical-tab.component.d.ts +86 -0
  103. package/modules/vertical-tabset/vertical-tabset-adapter.service.d.ts +10 -0
  104. package/modules/vertical-tabset/vertical-tabset-group.component.d.ts +33 -0
  105. package/modules/vertical-tabset/vertical-tabset.component.d.ts +45 -0
  106. package/modules/vertical-tabset/vertical-tabset.module.d.ts +2 -0
  107. package/modules/vertical-tabset/vertical-tabset.service.d.ts +41 -0
  108. package/package.json +41 -0
  109. package/plugin-resources/tabs-resources-provider.d.ts +5 -0
  110. package/public_api.d.ts +9 -0
  111. package/skyux-tabs.d.ts +20 -0
  112. package/skyux-tabs.metadata.json +1 -0
  113. package/src/assets/img/guidelines/tabs/tabs-anatomy.png +0 -0
  114. package/src/assets/img/guidelines/tabs/tabs-behavior-1.png +0 -0
  115. package/src/assets/img/guidelines/tabs/tabs-layout-1.png +0 -0
  116. package/src/assets/img/guidelines/tabs/tabs-layout-2.png +0 -0
  117. package/src/assets/img/guidelines/tabs/tabs-layout-3.png +0 -0
  118. package/src/assets/img/guidelines/tabs/tabs-layout-4.png +0 -0
  119. package/src/assets/img/guidelines/tabs/tabs-options-1.png +0 -0
  120. package/src/assets/img/guidelines/tabs/tabs-options-2.png +0 -0
  121. package/src/assets/img/guidelines/tabs/tabs-state-collapsed-closed.png +0 -0
  122. package/src/assets/img/guidelines/tabs/tabs-state-collapsed-open.png +0 -0
  123. package/src/assets/img/guidelines/tabs/tabs-state-hover.png +0 -0
  124. package/src/assets/img/guidelines/tabs/tabs-state-selected.png +0 -0
  125. package/src/assets/img/guidelines/tabs/tabs-state-unselected.png +0 -0
  126. package/src/assets/img/guidelines/tabs/tabs-usage-1.png +0 -0
  127. package/src/assets/img/guidelines/tabs/tabs-usage-2.png +0 -0
  128. package/src/assets/img/guidelines/tabs/tabs-usage-3.png +0 -0
  129. package/src/assets/img/guidelines/tabs/tabs-usage-4.png +0 -0
  130. package/src/assets/img/guidelines/tabs/tabs-usage-5.png +0 -0
  131. package/src/assets/img/guidelines/vertical-tabs/vertical-tabs-anatomy-1.png +0 -0
  132. package/src/assets/img/guidelines/vertical-tabs/vertical-tabs-anatomy-2.png +0 -0
  133. package/src/assets/img/guidelines/vertical-tabs/vertical-tabs-layout-1.png +0 -0
  134. package/src/assets/img/guidelines/vertical-tabs/vertical-tabs-state-hover.png +0 -0
  135. package/src/assets/img/guidelines/vertical-tabs/vertical-tabs-state-selected-group.png +0 -0
  136. package/src/assets/img/guidelines/vertical-tabs/vertical-tabs-state-selected.png +0 -0
  137. package/src/assets/img/guidelines/vertical-tabs/vertical-tabs-state-unselected-group.png +0 -0
  138. package/src/assets/img/guidelines/vertical-tabs/vertical-tabs-state-unselected.png +0 -0
  139. package/src/assets/img/guidelines/vertical-tabs/vertical-tabs-usage-1.png +0 -0
  140. package/src/assets/img/guidelines/vertical-tabs/vertical-tabs-usage-2.png +0 -0
  141. package/src/assets/img/guidelines/vertical-tabs/vertical-tabs-usage-3.png +0 -0
  142. package/src/assets/img/guidelines/vertical-tabs/vertical-tabs-usage-4.png +0 -0
  143. package/src/assets/img/guidelines/vertical-tabs/vertical-tabs-usage-5.png +0 -0
  144. package/src/assets/img/guidelines/vertical-tabs/vertical-tabs-usage-6.png +0 -0
  145. package/src/assets/img/guidelines/vertical-tabs/vertical-tabs-usage-7.png +0 -0
  146. package/src/assets/locales/resources_en_US.json +26 -0
  147. package/testing/package.json +13 -0
  148. package/testing/public_api.d.ts +2 -0
  149. package/testing/skyux-tabs-testing.d.ts +4 -0
  150. package/testing/skyux-tabs-testing.metadata.json +1 -0
  151. package/testing/tabs/tab-fixture-tab.d.ts +25 -0
  152. package/testing/tabs/tabset-fixture.d.ts +50 -0
@@ -0,0 +1,119 @@
1
+ import { __decorate } from "tslib";
2
+ import { ChangeDetectionStrategy, ChangeDetectorRef, Component, ContentChildren, Input, OnDestroy, OnInit, QueryList } from '@angular/core';
3
+ import { animate, style, transition, trigger } from '@angular/animations';
4
+ import { Subject } from 'rxjs';
5
+ import { takeUntil } from 'rxjs/operators';
6
+ import { SkyVerticalTabComponent } from './vertical-tab.component';
7
+ import { SkyVerticalTabsetService } from './vertical-tabset.service';
8
+ var SkyVerticalTabsetGroupComponent = /** @class */ (function () {
9
+ function SkyVerticalTabsetGroupComponent(tabService, changeRef) {
10
+ var _this = this;
11
+ this.tabService = tabService;
12
+ this.changeRef = changeRef;
13
+ this.ngUnsubscribe = new Subject();
14
+ this.openBeforeTabsHidden = false;
15
+ this._open = false;
16
+ this.tabClicked = function () {
17
+ _this.changeRef.markForCheck();
18
+ };
19
+ this.tabsHidden = function () {
20
+ // this fixes an animation bug with ngIf when the parent component goes from visible to hidden
21
+ _this.openBeforeTabsHidden = _this.open;
22
+ _this.open = false;
23
+ _this.changeRef.markForCheck();
24
+ };
25
+ this.tabsShown = function () {
26
+ _this.open = _this.openBeforeTabsHidden;
27
+ _this.changeRef.markForCheck();
28
+ };
29
+ }
30
+ Object.defineProperty(SkyVerticalTabsetGroupComponent.prototype, "open", {
31
+ get: function () {
32
+ return !this.disabled && this._open;
33
+ },
34
+ /**
35
+ * Indicates whether the collapsible group is expanded.
36
+ * @default "false"
37
+ */
38
+ set: function (value) {
39
+ this._open = value;
40
+ },
41
+ enumerable: true,
42
+ configurable: true
43
+ });
44
+ SkyVerticalTabsetGroupComponent.prototype.ngOnInit = function () {
45
+ this.tabService.hidingTabs
46
+ .pipe(takeUntil(this.ngUnsubscribe))
47
+ .subscribe(this.tabsHidden);
48
+ this.tabService.showingTabs
49
+ .pipe(takeUntil(this.ngUnsubscribe))
50
+ .subscribe(this.tabsShown);
51
+ this.tabService.tabClicked
52
+ .pipe(takeUntil(this.ngUnsubscribe))
53
+ .subscribe(this.tabClicked);
54
+ };
55
+ SkyVerticalTabsetGroupComponent.prototype.ngOnDestroy = function () {
56
+ this.ngUnsubscribe.next();
57
+ this.ngUnsubscribe.complete();
58
+ };
59
+ SkyVerticalTabsetGroupComponent.prototype.toggleMenuOpen = function () {
60
+ if (!this.disabled) {
61
+ this.open = !this.open;
62
+ }
63
+ this.changeRef.markForCheck();
64
+ };
65
+ SkyVerticalTabsetGroupComponent.prototype.subMenuOpen = function () {
66
+ return this.tabs && (this.tabs.find(function (t) { return t.active; }) !== undefined);
67
+ };
68
+ SkyVerticalTabsetGroupComponent.ctorParameters = function () { return [
69
+ { type: SkyVerticalTabsetService },
70
+ { type: ChangeDetectorRef }
71
+ ]; };
72
+ __decorate([
73
+ Input()
74
+ ], SkyVerticalTabsetGroupComponent.prototype, "disabled", void 0);
75
+ __decorate([
76
+ Input()
77
+ ], SkyVerticalTabsetGroupComponent.prototype, "groupHeading", void 0);
78
+ __decorate([
79
+ Input()
80
+ ], SkyVerticalTabsetGroupComponent.prototype, "open", null);
81
+ __decorate([
82
+ ContentChildren(SkyVerticalTabComponent)
83
+ ], SkyVerticalTabsetGroupComponent.prototype, "tabs", void 0);
84
+ SkyVerticalTabsetGroupComponent = __decorate([
85
+ Component({
86
+ selector: 'sky-vertical-tabset-group',
87
+ template: "<div class=\"sky-vertical-tabset-group\">\n <div\n class=\"sky-vertical-tabset-group-header sky-padding-even-default\"\n [ngClass]=\"{\n 'sky-vertical-tabset-group-header-sub-open sky-emphasized': subMenuOpen(),\n 'sky-deemphasized': disabled,\n 'sky-vertical-tabset-disabled': disabled\n }\"\n (click)=\"toggleMenuOpen()\"\n (keyup.enter)=\"toggleMenuOpen()\"\n [tabIndex]=\"-1\"\n >\n {{ groupHeading }}\n <sky-chevron *skyThemeIf=\"'default'\"\n class=\"sky-vertical-tabset-group-header-chevron\"\n [direction]=\"open ? 'up' : 'down'\"\n [disabled]=\"disabled\"\n (directionChange)=\"toggleMenuOpen()\"\n (keyup.enter)=\"$event.stopPropagation()\"\n >\n </sky-chevron>\n <ng-container *skyThemeIf=\"'modern'\">\n <button *ngIf=\"!open\"\n class=\"sky-btn sky-btn-icon-borderless sky-vertical-tabset-group-header-chevron\"\n type=\"button\"\n >\n <sky-icon\n icon=\"chevron-right\"\n iconType=\"skyux\"\n >\n </sky-icon>\n </button>\n <button *ngIf=\"open\"\n class=\"sky-btn sky-btn-icon-borderless sky-vertical-tabset-group-header-chevron\"\n type=\"button\"\n >\n <sky-icon\n icon=\"chevron-down\"\n iconType=\"skyux\"\n >\n </sky-icon>\n </button>\n </ng-container>\n </div>\n <div\n class=\"sky-vertical-tabset-group-content\"\n *ngIf=\"open\"\n [@tabSlide]\n >\n <ng-content></ng-content>\n </div>\n</div>\n",
88
+ changeDetection: ChangeDetectionStrategy.OnPush,
89
+ animations: [
90
+ trigger('tabSlide', [
91
+ transition(':enter', [
92
+ style({
93
+ height: '0',
94
+ visibility: 'hidden'
95
+ }),
96
+ animate('150ms ease-in', style({
97
+ height: '*',
98
+ visibility: 'visible'
99
+ }))
100
+ ]),
101
+ transition(':leave', [
102
+ style({
103
+ height: '*',
104
+ visibility: 'visible'
105
+ }),
106
+ animate('150ms ease-in', style({
107
+ height: '0',
108
+ visibility: 'hidden'
109
+ }))
110
+ ])
111
+ ])
112
+ ],
113
+ styles: [".sky-vertical-tabset-group{border-bottom:1px solid #e2e3e4;margin:5px 0 5px 5px}.sky-vertical-tabset-group-header{cursor:pointer;display:flex;justify-content:space-between}.sky-vertical-tabset-group-header:focus{outline:dotted thin;outline:-webkit-focus-ring-color auto 5px}.sky-vertical-tabset-group-content{overflow:hidden;border-top:1px solid #e2e3e4}:host ::ng-deep .sky-vertical-tabset-group-header-chevron>button{font-size:14px!important}.sky-vertical-tabset-disabled{cursor:not-allowed;pointer-events:none;font-style:normal}.sky-theme-modern .sky-vertical-tabset-group,:host-context(.sky-theme-modern) .sky-vertical-tabset-group{border:none}.sky-theme-modern .sky-vertical-tabset-group-content,:host-context(.sky-theme-modern) .sky-vertical-tabset-group-content{border:none;padding-left:25px}.sky-theme-modern .sky-vertical-tabset-group-header,:host-context(.sky-theme-modern) .sky-vertical-tabset-group-header{position:relative}.sky-theme-modern .sky-vertical-tabset-group-header-chevron,:host-context(.sky-theme-modern) .sky-vertical-tabset-group-header-chevron{position:absolute;top:6px;right:5px}"]
114
+ })
115
+ ], SkyVerticalTabsetGroupComponent);
116
+ return SkyVerticalTabsetGroupComponent;
117
+ }());
118
+ export { SkyVerticalTabsetGroupComponent };
119
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmVydGljYWwtdGFic2V0LWdyb3VwLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0Bza3l1eC90YWJzLyIsInNvdXJjZXMiOlsibW9kdWxlcy92ZXJ0aWNhbC10YWJzZXQvdmVydGljYWwtdGFic2V0LWdyb3VwLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUNMLHVCQUF1QixFQUN2QixpQkFBaUIsRUFDakIsU0FBUyxFQUNULGVBQWUsRUFDZixLQUFLLEVBQ0wsU0FBUyxFQUNULE1BQU0sRUFDTixTQUFTLEVBQ1YsTUFBTSxlQUFlLENBQUM7QUFFdkIsT0FBTyxFQUNMLE9BQU8sRUFDUCxLQUFLLEVBQ0wsVUFBVSxFQUNWLE9BQU8sRUFDUixNQUFNLHFCQUFxQixDQUFDO0FBRTdCLE9BQU8sRUFDTCxPQUFPLEVBQ1IsTUFBTSxNQUFNLENBQUM7QUFFZCxPQUFPLEVBQ0wsU0FBUyxFQUNWLE1BQU0sZ0JBQWdCLENBQUM7QUFFeEIsT0FBTyxFQUNMLHVCQUF1QixFQUN4QixNQUFNLDBCQUEwQixDQUFDO0FBRWxDLE9BQU8sRUFDTCx3QkFBd0IsRUFDekIsTUFBTSwyQkFBMkIsQ0FBQztBQWlDbkM7SUFxQ0UseUNBQ1UsVUFBb0MsRUFDcEMsU0FBNEI7UUFGdEMsaUJBR0k7UUFGTSxlQUFVLEdBQVYsVUFBVSxDQUEwQjtRQUNwQyxjQUFTLEdBQVQsU0FBUyxDQUFtQjtRQVI5QixrQkFBYSxHQUFHLElBQUksT0FBTyxFQUFFLENBQUM7UUFFOUIseUJBQW9CLEdBQVksS0FBSyxDQUFDO1FBRXRDLFVBQUssR0FBWSxLQUFLLENBQUM7UUFzQ3hCLGVBQVUsR0FBRztZQUNsQixLQUFJLENBQUMsU0FBUyxDQUFDLFlBQVksRUFBRSxDQUFDO1FBQ2hDLENBQUMsQ0FBQTtRQUVNLGVBQVUsR0FBRztZQUNsQiw4RkFBOEY7WUFDOUYsS0FBSSxDQUFDLG9CQUFvQixHQUFHLEtBQUksQ0FBQyxJQUFJLENBQUM7WUFDdEMsS0FBSSxDQUFDLElBQUksR0FBRyxLQUFLLENBQUM7WUFDbEIsS0FBSSxDQUFDLFNBQVMsQ0FBQyxZQUFZLEVBQUUsQ0FBQztRQUNoQyxDQUFDLENBQUE7UUFFTSxjQUFTLEdBQUc7WUFDakIsS0FBSSxDQUFDLElBQUksR0FBRyxLQUFJLENBQUMsb0JBQW9CLENBQUM7WUFDdEMsS0FBSSxDQUFDLFNBQVMsQ0FBQyxZQUFZLEVBQUUsQ0FBQztRQUNoQyxDQUFDLENBQUE7SUEvQ0UsQ0FBQztJQXBCSixzQkFBVyxpREFBSTthQUlmO1lBQ0UsT0FBTyxDQUFDLElBQUksQ0FBQyxRQUFRLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQztRQUN0QyxDQUFDO1FBWEQ7OztXQUdHO2FBRUgsVUFBZ0IsS0FBYztZQUM1QixJQUFJLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQztRQUNyQixDQUFDOzs7T0FBQTtJQW9CTSxrREFBUSxHQUFmO1FBQ0UsSUFBSSxDQUFDLFVBQVUsQ0FBQyxVQUFVO2FBQ3ZCLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDO2FBQ25DLFNBQVMsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7UUFFOUIsSUFBSSxDQUFDLFVBQVUsQ0FBQyxXQUFXO2FBQ3hCLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDO2FBQ25DLFNBQVMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7UUFFN0IsSUFBSSxDQUFDLFVBQVUsQ0FBQyxVQUFVO2FBQ3ZCLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDO2FBQ25DLFNBQVMsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7SUFDaEMsQ0FBQztJQUVNLHFEQUFXLEdBQWxCO1FBQ0UsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUMxQixJQUFJLENBQUMsYUFBYSxDQUFDLFFBQVEsRUFBRSxDQUFDO0lBQ2hDLENBQUM7SUFFTSx3REFBYyxHQUFyQjtRQUNFLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFO1lBQ2xCLElBQUksQ0FBQyxJQUFJLEdBQUcsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDO1NBQ3hCO1FBRUQsSUFBSSxDQUFDLFNBQVMsQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUNoQyxDQUFDO0lBRU0scURBQVcsR0FBbEI7UUFDRSxPQUFPLElBQUksQ0FBQyxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFBLENBQUMsSUFBSSxPQUFBLENBQUMsQ0FBQyxNQUFNLEVBQVIsQ0FBUSxDQUFDLEtBQUssU0FBUyxDQUFDLENBQUM7SUFDcEUsQ0FBQzs7Z0JBakNxQix3QkFBd0I7Z0JBQ3pCLGlCQUFpQjs7SUFoQ3RDO1FBREMsS0FBSyxFQUFFO3FFQUNpQjtJQU16QjtRQURDLEtBQUssRUFBRTt5RUFDb0I7SUFPNUI7UUFEQyxLQUFLLEVBQUU7K0RBR1A7SUFPRDtRQURDLGVBQWUsQ0FBQyx1QkFBdUIsQ0FBQztpRUFDUTtJQTdCdEMsK0JBQStCO1FBL0IzQyxTQUFTLENBQUM7WUFDVCxRQUFRLEVBQUUsMkJBQTJCO1lBQ3JDLDYrQ0FBcUQ7WUFFckQsZUFBZSxFQUFFLHVCQUF1QixDQUFDLE1BQU07WUFDL0MsVUFBVSxFQUFFO2dCQUNWLE9BQU8sQ0FDTCxVQUFVLEVBQUU7b0JBQ1YsVUFBVSxDQUFDLFFBQVEsRUFBRTt3QkFDbkIsS0FBSyxDQUFDOzRCQUNKLE1BQU0sRUFBRSxHQUFHOzRCQUNYLFVBQVUsRUFBRSxRQUFRO3lCQUNyQixDQUFDO3dCQUNGLE9BQU8sQ0FBQyxlQUFlLEVBQUUsS0FBSyxDQUFDOzRCQUM3QixNQUFNLEVBQUUsR0FBRzs0QkFDWCxVQUFVLEVBQUUsU0FBUzt5QkFDdEIsQ0FBQyxDQUFDO3FCQUNKLENBQUM7b0JBQ0YsVUFBVSxDQUFDLFFBQVEsRUFBRTt3QkFDbkIsS0FBSyxDQUFDOzRCQUNKLE1BQU0sRUFBRSxHQUFHOzRCQUNYLFVBQVUsRUFBRSxTQUFTO3lCQUN0QixDQUFDO3dCQUNGLE9BQU8sQ0FBQyxlQUFlLEVBQUUsS0FBSyxDQUFDOzRCQUM3QixNQUFNLEVBQUUsR0FBRzs0QkFDWCxVQUFVLEVBQUUsUUFBUTt5QkFDckIsQ0FBQyxDQUFDO3FCQUNKLENBQUM7aUJBQ0gsQ0FBQzthQUNIOztTQUNKLENBQUM7T0FDVywrQkFBK0IsQ0F3RjNDO0lBQUQsc0NBQUM7Q0FBQSxBQXhGRCxJQXdGQztTQXhGWSwrQkFBK0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gIENvbXBvbmVudCxcbiAgQ29udGVudENoaWxkcmVuLFxuICBJbnB1dCxcbiAgT25EZXN0cm95LFxuICBPbkluaXQsXG4gIFF1ZXJ5TGlzdFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHtcbiAgYW5pbWF0ZSxcbiAgc3R5bGUsXG4gIHRyYW5zaXRpb24sXG4gIHRyaWdnZXJcbn0gZnJvbSAnQGFuZ3VsYXIvYW5pbWF0aW9ucyc7XG5cbmltcG9ydCB7XG4gIFN1YmplY3Rcbn0gZnJvbSAncnhqcyc7XG5cbmltcG9ydCB7XG4gIHRha2VVbnRpbFxufSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbmltcG9ydCB7XG4gIFNreVZlcnRpY2FsVGFiQ29tcG9uZW50XG59IGZyb20gJy4vdmVydGljYWwtdGFiLmNvbXBvbmVudCc7XG5cbmltcG9ydCB7XG4gIFNreVZlcnRpY2FsVGFic2V0U2VydmljZVxufSBmcm9tICcuL3ZlcnRpY2FsLXRhYnNldC5zZXJ2aWNlJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc2t5LXZlcnRpY2FsLXRhYnNldC1ncm91cCcsXG4gIHRlbXBsYXRlVXJsOiAnLi92ZXJ0aWNhbC10YWJzZXQtZ3JvdXAuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi92ZXJ0aWNhbC10YWJzZXQtZ3JvdXAuY29tcG9uZW50LnNjc3MnXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIGFuaW1hdGlvbnM6IFtcbiAgICB0cmlnZ2VyKFxuICAgICAgJ3RhYlNsaWRlJywgW1xuICAgICAgICB0cmFuc2l0aW9uKCc6ZW50ZXInLCBbXG4gICAgICAgICAgc3R5bGUoe1xuICAgICAgICAgICAgaGVpZ2h0OiAnMCcsXG4gICAgICAgICAgICB2aXNpYmlsaXR5OiAnaGlkZGVuJ1xuICAgICAgICAgIH0pLFxuICAgICAgICAgIGFuaW1hdGUoJzE1MG1zIGVhc2UtaW4nLCBzdHlsZSh7XG4gICAgICAgICAgICBoZWlnaHQ6ICcqJyxcbiAgICAgICAgICAgIHZpc2liaWxpdHk6ICd2aXNpYmxlJ1xuICAgICAgICAgIH0pKVxuICAgICAgICBdKSxcbiAgICAgICAgdHJhbnNpdGlvbignOmxlYXZlJywgW1xuICAgICAgICAgIHN0eWxlKHtcbiAgICAgICAgICAgIGhlaWdodDogJyonLFxuICAgICAgICAgICAgdmlzaWJpbGl0eTogJ3Zpc2libGUnXG4gICAgICAgICAgfSksXG4gICAgICAgICAgYW5pbWF0ZSgnMTUwbXMgZWFzZS1pbicsIHN0eWxlKHtcbiAgICAgICAgICAgIGhlaWdodDogJzAnLFxuICAgICAgICAgICAgdmlzaWJpbGl0eTogJ2hpZGRlbidcbiAgICAgICAgICB9KSlcbiAgICAgICAgXSlcbiAgICAgIF0pXG4gICAgXVxufSlcbmV4cG9ydCBjbGFzcyBTa3lWZXJ0aWNhbFRhYnNldEdyb3VwQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xuXG4gIC8qKlxuICAgKiBJbmRpY2F0ZXMgd2hldGhlciB0byBkaXNhYmxlIHRoZSBhYmlsaXR5IHRvIGV4cGFuZCBhbmQgY29sbGFwc2UgdGhlIGdyb3VwLlxuICAgKiBAZGVmYXVsdCBcImZhbHNlXCJcbiAgICovXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBkaXNhYmxlZDogYm9vbGVhbjtcblxuICAvKipcbiAgICogU3BlY2lmaWVzIHRoZSBoZWFkZXIgZm9yIHRoZSBjb2xsYXBzaWJsZSBncm91cCBvZiB0YWJzLlxuICAgKi9cbiAgQElucHV0KClcbiAgcHVibGljIGdyb3VwSGVhZGluZzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBJbmRpY2F0ZXMgd2hldGhlciB0aGUgY29sbGFwc2libGUgZ3JvdXAgaXMgZXhwYW5kZWQuXG4gICAqIEBkZWZhdWx0IFwiZmFsc2VcIlxuICAgKi9cbiAgQElucHV0KClcbiAgcHVibGljIHNldCBvcGVuKHZhbHVlOiBib29sZWFuKSB7XG4gICAgdGhpcy5fb3BlbiA9IHZhbHVlO1xuICB9XG5cbiAgcHVibGljIGdldCBvcGVuKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiAhdGhpcy5kaXNhYmxlZCAmJiB0aGlzLl9vcGVuO1xuICB9XG5cbiAgQENvbnRlbnRDaGlsZHJlbihTa3lWZXJ0aWNhbFRhYkNvbXBvbmVudClcbiAgcHJpdmF0ZSB0YWJzOiBRdWVyeUxpc3Q8U2t5VmVydGljYWxUYWJDb21wb25lbnQ+O1xuXG4gIHByaXZhdGUgbmdVbnN1YnNjcmliZSA9IG5ldyBTdWJqZWN0KCk7XG5cbiAgcHJpdmF0ZSBvcGVuQmVmb3JlVGFic0hpZGRlbjogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIHByaXZhdGUgX29wZW46IGJvb2xlYW4gPSBmYWxzZTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHRhYlNlcnZpY2U6IFNreVZlcnRpY2FsVGFic2V0U2VydmljZSxcbiAgICBwcml2YXRlIGNoYW5nZVJlZjogQ2hhbmdlRGV0ZWN0b3JSZWZcbiAgKSB7fVxuXG4gIHB1YmxpYyBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLnRhYlNlcnZpY2UuaGlkaW5nVGFic1xuICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMubmdVbnN1YnNjcmliZSkpXG4gICAgICAuc3Vic2NyaWJlKHRoaXMudGFic0hpZGRlbik7XG5cbiAgICB0aGlzLnRhYlNlcnZpY2Uuc2hvd2luZ1RhYnNcbiAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLm5nVW5zdWJzY3JpYmUpKVxuICAgICAgLnN1YnNjcmliZSh0aGlzLnRhYnNTaG93bik7XG5cbiAgICB0aGlzLnRhYlNlcnZpY2UudGFiQ2xpY2tlZFxuICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMubmdVbnN1YnNjcmliZSkpXG4gICAgICAuc3Vic2NyaWJlKHRoaXMudGFiQ2xpY2tlZCk7XG4gIH1cblxuICBwdWJsaWMgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy5uZ1Vuc3Vic2NyaWJlLm5leHQoKTtcbiAgICB0aGlzLm5nVW5zdWJzY3JpYmUuY29tcGxldGUoKTtcbiAgfVxuXG4gIHB1YmxpYyB0b2dnbGVNZW51T3BlbigpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMuZGlzYWJsZWQpIHtcbiAgICAgIHRoaXMub3BlbiA9ICF0aGlzLm9wZW47XG4gICAgfVxuXG4gICAgdGhpcy5jaGFuZ2VSZWYubWFya0ZvckNoZWNrKCk7XG4gIH1cblxuICBwdWJsaWMgc3ViTWVudU9wZW4oKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMudGFicyAmJiAodGhpcy50YWJzLmZpbmQodCA9PiB0LmFjdGl2ZSkgIT09IHVuZGVmaW5lZCk7XG4gIH1cblxuICBwdWJsaWMgdGFiQ2xpY2tlZCA9ICgpID0+IHtcbiAgICB0aGlzLmNoYW5nZVJlZi5tYXJrRm9yQ2hlY2soKTtcbiAgfVxuXG4gIHB1YmxpYyB0YWJzSGlkZGVuID0gKCkgPT4ge1xuICAgIC8vIHRoaXMgZml4ZXMgYW4gYW5pbWF0aW9uIGJ1ZyB3aXRoIG5nSWYgd2hlbiB0aGUgcGFyZW50IGNvbXBvbmVudCBnb2VzIGZyb20gdmlzaWJsZSB0byBoaWRkZW5cbiAgICB0aGlzLm9wZW5CZWZvcmVUYWJzSGlkZGVuID0gdGhpcy5vcGVuO1xuICAgIHRoaXMub3BlbiA9IGZhbHNlO1xuICAgIHRoaXMuY2hhbmdlUmVmLm1hcmtGb3JDaGVjaygpO1xuICB9XG5cbiAgcHVibGljIHRhYnNTaG93biA9ICgpID0+IHtcbiAgICB0aGlzLm9wZW4gPSB0aGlzLm9wZW5CZWZvcmVUYWJzSGlkZGVuO1xuICAgIHRoaXMuY2hhbmdlUmVmLm1hcmtGb3JDaGVjaygpO1xuICB9XG59XG4iXX0=
@@ -0,0 +1,145 @@
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
+ var SkyVerticalTabsetComponent = /** @class */ (function () {
10
+ function SkyVerticalTabsetComponent(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
+ Object.defineProperty(SkyVerticalTabsetComponent.prototype, "ariaRole", {
30
+ /**
31
+ * Specifies an ARIA role for the vertical tabset
32
+ * [to support accessibility](https://developer.blackbaud.com/skyux/learn/accessibility)
33
+ * by indicating how the tabset functions and what it controls. For information about how
34
+ * an ARIA role indicates what an item represents on a web page, see the
35
+ * [WAI-ARIA roles model](https://www.w3.org/WAI/PF/aria/roles).
36
+ * @default "tablist"
37
+ */
38
+ get: function () {
39
+ if (this.isMobile) {
40
+ return undefined;
41
+ }
42
+ return this._ariaRole || 'tablist';
43
+ },
44
+ set: function (value) {
45
+ this._ariaRole = value;
46
+ },
47
+ enumerable: true,
48
+ configurable: true
49
+ });
50
+ SkyVerticalTabsetComponent.prototype.ngOnInit = function () {
51
+ var _this = this;
52
+ this.tabService.maintainTabContent = this.maintainTabContent;
53
+ this.tabService.indexChanged
54
+ .pipe(takeUntil(this._ngUnsubscribe))
55
+ .subscribe(function (index) {
56
+ _this.activeChange.emit(index);
57
+ if (_this.contentWrapper) {
58
+ _this.adapterService.scrollToContentTop(_this.contentWrapper);
59
+ }
60
+ _this.changeRef.markForCheck();
61
+ });
62
+ this.tabService.switchingMobile
63
+ .pipe(takeUntil(this._ngUnsubscribe))
64
+ .subscribe(function (mobile) {
65
+ _this.isMobile = mobile;
66
+ _this.changeRef.markForCheck();
67
+ });
68
+ if (this.tabService.isMobile()) {
69
+ this.isMobile = true;
70
+ this.tabService.animationContentVisibleState = VISIBLE_STATE;
71
+ this.changeRef.markForCheck();
72
+ }
73
+ if (!this.showTabsText) {
74
+ this.resources.getString('skyux_vertical_tabs_show_tabs_text')
75
+ .pipe(take(1))
76
+ .subscribe(function (resource) {
77
+ /* sanity check */
78
+ if (!_this.showTabsText) {
79
+ _this.showTabsText = resource;
80
+ }
81
+ });
82
+ }
83
+ };
84
+ SkyVerticalTabsetComponent.prototype.ngAfterViewChecked = function () {
85
+ this.tabService.content = this.content;
86
+ this.tabService.updateContent();
87
+ };
88
+ SkyVerticalTabsetComponent.prototype.ngOnDestroy = function () {
89
+ this._ngUnsubscribe.next();
90
+ this._ngUnsubscribe.complete();
91
+ };
92
+ SkyVerticalTabsetComponent.ctorParameters = function () { return [
93
+ { type: SkyVerticalTabsetAdapterService },
94
+ { type: SkyVerticalTabsetService },
95
+ { type: SkyLibResourcesService },
96
+ { type: ChangeDetectorRef }
97
+ ]; };
98
+ __decorate([
99
+ Input()
100
+ ], SkyVerticalTabsetComponent.prototype, "showTabsText", void 0);
101
+ __decorate([
102
+ Input()
103
+ ], SkyVerticalTabsetComponent.prototype, "ariaRole", null);
104
+ __decorate([
105
+ Input()
106
+ ], SkyVerticalTabsetComponent.prototype, "maintainTabContent", void 0);
107
+ __decorate([
108
+ Output()
109
+ ], SkyVerticalTabsetComponent.prototype, "activeChange", void 0);
110
+ __decorate([
111
+ ViewChild('groupContainerWrapper')
112
+ ], SkyVerticalTabsetComponent.prototype, "tabGroups", void 0);
113
+ __decorate([
114
+ ViewChild('skySideContent')
115
+ ], SkyVerticalTabsetComponent.prototype, "content", void 0);
116
+ __decorate([
117
+ ViewChild('contentContainerWrapper')
118
+ ], SkyVerticalTabsetComponent.prototype, "contentWrapper", void 0);
119
+ SkyVerticalTabsetComponent = __decorate([
120
+ Component({
121
+ selector: 'sky-vertical-tabset',
122
+ 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",
123
+ providers: [SkyVerticalTabsetService],
124
+ changeDetection: ChangeDetectionStrategy.OnPush,
125
+ animations: [
126
+ trigger('tabGroupEnter', [
127
+ transition(HIDDEN_STATE + " => " + VISIBLE_STATE, [
128
+ style({ transform: 'translate(-100%)' }),
129
+ animate('150ms ease-in')
130
+ ])
131
+ ]),
132
+ trigger('contentEnter', [
133
+ transition(HIDDEN_STATE + " => " + VISIBLE_STATE, [
134
+ style({ transform: 'translate(100%)' }),
135
+ animate('150ms ease-in')
136
+ ])
137
+ ])
138
+ ],
139
+ 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}"]
140
+ })
141
+ ], SkyVerticalTabsetComponent);
142
+ return SkyVerticalTabsetComponent;
143
+ }());
144
+ export { SkyVerticalTabsetComponent };
145
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmVydGljYWwtdGFic2V0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0Bza3l1eC90YWJzLyIsInNvdXJjZXMiOlsibW9kdWxlcy92ZXJ0aWNhbC10YWJzZXQvdmVydGljYWwtdGFic2V0LmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUNMLFNBQVMsRUFDVCxVQUFVLEVBQ1YsU0FBUyxFQUNULEtBQUssRUFDTCxNQUFNLEVBQ04sdUJBQXVCLEVBQ3ZCLE1BQU0sRUFDTixZQUFZLEVBQ1osZ0JBQWdCLEVBQ2hCLGlCQUFpQixFQUNqQixTQUFTLEVBQ1YsTUFBTSxlQUFlLENBQUM7QUFFdkIsT0FBTyxFQUNMLEtBQUssRUFDTCxPQUFPLEVBQ1AsVUFBVSxFQUNWLE9BQU8sRUFDUixNQUFNLHFCQUFxQixDQUFDO0FBRTdCLE9BQU8sRUFDTCxzQkFBc0IsRUFDdkIsTUFBTSxhQUFhLENBQUM7QUFFckIsT0FBTyxFQUNMLE9BQU8sRUFDUixNQUFNLE1BQU0sQ0FBQztBQUVkLE9BQU8sRUFDTCxJQUFJLEVBQ0osU0FBUyxFQUNWLE1BQU0sZ0JBQWdCLENBQUM7QUFFeEIsT0FBTyxFQUNMLCtCQUErQixFQUNoQyxNQUFNLG1DQUFtQyxDQUFDO0FBRTNDLE9BQU8sRUFDTCx3QkFBd0IsRUFDeEIsWUFBWSxFQUNaLGFBQWEsRUFDZCxNQUFNLDJCQUEyQixDQUFDO0FBMkJuQztJQXVERSxvQ0FDUyxjQUErQyxFQUMvQyxVQUFvQyxFQUNuQyxTQUFpQyxFQUNqQyxTQUE0QjtRQUg3QixtQkFBYyxHQUFkLGNBQWMsQ0FBaUM7UUFDL0MsZUFBVSxHQUFWLFVBQVUsQ0FBMEI7UUFDbkMsY0FBUyxHQUFULFNBQVMsQ0FBd0I7UUFDakMsY0FBUyxHQUFULFNBQVMsQ0FBbUI7UUFoQ3RDOzs7O1dBSUc7UUFFSSx1QkFBa0IsR0FBWSxLQUFLLENBQUM7UUFFM0M7OztXQUdHO1FBRUksaUJBQVksR0FBRyxJQUFJLFlBQVksRUFB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QXVCLENBQUM7aUVBQ047SUFHN0I7UUFEQyxTQUFTLENBQUMsZ0JBQWdCLENBQUM7K0RBQ0Q7SUFHM0I7UUFEQyxTQUFTLENBQUMseUJBQXlCLENBQUM7c0VBQ0Y7SUFqRHhCLDBCQUEwQjtRQXpCdEMsU0FBUyxDQUFDO1lBQ1QsUUFBUSxFQUFFLHFCQUFxQjtZQUMvQixna0NBQStDO1lBRS9DLFNBQVMsRUFBRSxDQUFDLHdCQUF3QixDQUFDO1lBQ3JDLGVBQWUsRUFBRSx1QkFBdUIsQ0FBQyxNQUFNO1lBQy9DLFVBQVUsRUFBRTtnQkFDVixPQUFPLENBQ0wsZUFBZSxFQUFFO29CQUNmLFVBQVUsQ0FBSSxZQUFZLFlBQU8sYUFBZSxFQUFFO3dCQUNoRCxLQUFLLENBQUMsRUFBQyxTQUFTLEVBQUUsa0JBQWtCLEVBQUMsQ0FBQzt3QkFDdEMsT0FBTyxDQUFDLGVBQWUsQ0FBQztxQkFDekIsQ0FBQztpQkFDSCxDQUNGO2dCQUNELE9BQU8sQ0FDTCxjQUFjLEVBQUU7b0JBQ2QsVUFBVSxDQUFJLFlBQVksWUFBTyxhQUFlLEVBQUU7d0JBQ2hELEtBQUssQ0FBQyxFQUFDLFNBQVMsRUFBRSxpQkFBaUIsRUFBQyxDQUFDO3dCQUNyQyxPQUFPLENBQUMsZUFBZSxDQUFDO3FCQUN6QixDQUFDO2lCQUNILENBQ0Y7YUFDRjs7U0FDRixDQUFDO09BQ1csMEJBQTBCLENBMkd0QztJQUFELGlDQUFDO0NBQUEsQUEzR0QsSUEyR0M7U0EzR1ksMEJBQTBCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ29tcG9uZW50LFxuICBFbGVtZW50UmVmLFxuICBWaWV3Q2hpbGQsXG4gIElucHV0LFxuICBPbkluaXQsXG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBPdXRwdXQsXG4gIEV2ZW50RW1pdHRlcixcbiAgQWZ0ZXJWaWV3Q2hlY2tlZCxcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gIE9uRGVzdHJveVxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHtcbiAgc3R5bGUsXG4gIHRyaWdnZXIsXG4gIHRyYW5zaXRpb24sXG4gIGFuaW1hdGVcbn0gZnJvbSAnQGFuZ3VsYXIvYW5pbWF0aW9ucyc7XG5cbmltcG9ydCB7XG4gIFNreUxpYlJlc291cmNlc1NlcnZpY2Vcbn0gZnJvbSAnQHNreXV4L2kxOG4nO1xuXG5pbXBvcnQge1xuICBTdWJqZWN0XG59IGZyb20gJ3J4anMnO1xuXG5pbXBvcnQge1xuICB0YWtlLFxuICB0YWtlVW50aWxcbn0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5pbXBvcnQge1xuICBTa3lWZXJ0aWNhbFRhYnNldEFkYXB0ZXJTZXJ2aWNlXG59IGZyb20gJy4vdmVydGljYWwtdGFic2V0LWFkYXB0ZXIuc2VydmljZSc7XG5cbmltcG9ydCB7XG4gIFNreVZlcnRpY2FsVGFic2V0U2VydmljZSxcbiAgSElEREVOX1NUQVRFLFxuICBWSVNJQkxFX1NUQVRFXG59IGZyb20gJy4vdmVydGljYWwtdGFic2V0LnNlcnZpY2UnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdza3ktdmVydGljYWwtdGFic2V0JyxcbiAgdGVtcGxhdGVVcmw6ICcuL3ZlcnRpY2FsLXRhYnNldC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3ZlcnRpY2FsLXRhYnNldC5jb21wb25lbnQuc2NzcyddLFxuICBwcm92aWRlcnM6IFtTa3lWZXJ0aWNhbFRhYnNldFNlcnZpY2VdLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgYW5pbWF0aW9uczogW1xuICAgIHRyaWdnZXIoXG4gICAgICAndGFiR3JvdXBFbnRlcicsIFtcbiAgICAgICAgdHJhbnNpdGlvbihgJHtISURERU5fU1RBVEV9ID0+ICR7VklTSUJMRV9TVEFURX1gLCBbXG4gICAgICAgICAgc3R5bGUoe3RyYW5zZm9ybTogJ3RyYW5zbGF0ZSgtMTAwJSknfSksXG4gICAgICAgICAgYW5pbWF0ZSgnMTUwbXMgZWFzZS1pbicpXG4gICAgICAgIF0pXG4gICAgICBdXG4gICAgKSxcbiAgICB0cmlnZ2VyKFxuICAgICAgJ2NvbnRlbnRFbnRlcicsIFtcbiAgICAgICAgdHJhbnNpdGlvbihgJHtISURERU5fU1RBVEV9ID0+ICR7VklTSUJMRV9TVEFURX1gLCBbXG4gICAgICAgICAgc3R5bGUoe3RyYW5zZm9ybTogJ3RyYW5zbGF0ZSgxMDAlKSd9KSxcbiAgICAgICAgICBhbmltYXRlKCcxNTBtcyBlYXNlLWluJylcbiAgICAgICAgXSlcbiAgICAgIF1cbiAgICApXG4gIF1cbn0pXG5leHBvcnQgY2xhc3MgU2t5VmVydGljYWxUYWJzZXRDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIEFmdGVyVmlld0NoZWNrZWQsIE9uRGVzdHJveSB7XG5cbiAgLyoqXG4gICAqIFNwZWNpZmllcyB0aGUgdGV4dCB0byBkaXNwbGF5IG9uIHRoZSBzaG93IHRhYnMgYnV0dG9uIG9uIG1vYmlsZSBkZXZpY2VzLlxuICAgKi9cbiAgQElucHV0KClcbiAgcHVibGljIHNob3dUYWJzVGV4dDogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBTcGVjaWZpZXMgYW4gQVJJQSByb2xlIGZvciB0aGUgdmVydGljYWwgdGFic2V0XG4gICAqIFt0byBzdXBwb3J0IGFjY2Vzc2liaWxpdHldKGh0dHBzOi8vZGV2ZWxvcGVyLmJsYWNrYmF1ZC5jb20vc2t5dXgvbGVhcm4vYWNjZXNzaWJpbGl0eSlcbiAgICogYnkgaW5kaWNhdGluZyBob3cgdGhlIHRhYnNldCBmdW5jdGlvbnMgYW5kIHdoYXQgaXQgY29udHJvbHMuIEZvciBpbmZvcm1hdGlvbiBhYm91dCBob3dcbiAgICogYW4gQVJJQSByb2xlIGluZGljYXRlcyB3aGF0IGFuIGl0ZW0gcmVwcmVzZW50cyBvbiBhIHdlYiBwYWdlLCBzZWUgdGhlXG4gICAqIFtXQUktQVJJQSByb2xlcyBtb2RlbF0oaHR0cHM6Ly93d3cudzMub3JnL1dBSS9QRi9hcmlhL3JvbGVzKS5cbiAgICogQGRlZmF1bHQgXCJ0YWJsaXN0XCJcbiAgICovXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBnZXQgYXJpYVJvbGUoKTogc3RyaW5nIHtcbiAgICBpZiAodGhpcy5pc01vYmlsZSkge1xuICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMuX2FyaWFSb2xlIHx8ICd0YWJsaXN0JztcbiAgfVxuICBwdWJsaWMgc2V0IGFyaWFSb2xlKHZhbHVlOiBzdHJpbmcpIHtcbiAgICB0aGlzLl9hcmlhUm9sZSA9IHZhbHVlO1xuICB9XG5cbiAgLyoqXG4gICAqIEluZGljYXRlcyB3aGV0aGVyIHRoZSB2ZXJ0aWNhbCB0YWJzZXQgbG9hZHMgdGFiIGNvbnRlbnQgZHVyaW5nIGluaXRpYWxpemF0aW9uIHNvIHRoYXQgaXRcbiAgICogZGlzcGxheXMgY29udGVudCB3aXRob3V0IG1vdmluZyBhcm91bmQgZWxlbWVudHMgaW4gdGhlIGNvbnRlbnQgY29udGFpbmVyLlxuICAgKiBAZGVmYXVsdCAnZmFsc2UnXG4gICAqL1xuICBASW5wdXQoKVxuICBwdWJsaWMgbWFpbnRhaW5UYWJDb250ZW50OiBib29sZWFuID0gZmFsc2U7XG5cbiAgLyoqXG4gICAqIEZpcmVzIHdoZW4gdGhlIGFjdGl2ZSB0YWIgY2hhbmdlcy4gRW1pdHMgdGhlIGluZGV4IG9mIHRoZSBhY3RpdmUgdGFiLiBUaGVcbiAgICogaW5kZXggaXMgYmFzZWQgb24gdGhlIHRhYidzIHBvc2l0aW9uIHdoZW4gaXQgbG9hZHMuXG4gICAqL1xuICBAT3V0cHV0KClcbiAgcHVibGljIGFjdGl2ZUNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8bnVtYmVyPigpO1xuXG4gIEBWaWV3Q2hpbGQoJ2dyb3VwQ29udGFpbmVyV3JhcHBlcicpXG4gIHB1YmxpYyB0YWJHcm91cHM6IEVsZW1lbnRSZWY7XG5cbiAgQFZpZXdDaGlsZCgnc2t5U2lkZUNvbnRlbnQnKVxuICBwdWJsaWMgY29udGVudDogRWxlbWVudFJlZjtcblxuICBAVmlld0NoaWxkKCdjb250ZW50Q29udGFpbmVyV3JhcHBlcicpXG4gIHByaXZhdGUgY29udGVudFdyYXBwZXI6IEVsZW1lbnRSZWY7XG5cbiAgcHJpdmF0ZSBpc01vYmlsZSA9IGZhbHNlO1xuICBwcml2YXRlIF9uZ1Vuc3Vic2NyaWJlID0gbmV3IFN1YmplY3QoKTtcbiAgcHJpdmF0ZSBfYXJpYVJvbGU6IHN0cmluZztcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwdWJsaWMgYWRhcHRlclNlcnZpY2U6IFNreVZlcnRpY2FsVGFic2V0QWRhcHRlclNlcnZpY2UsXG4gICAgcHVibGljIHRhYlNlcnZpY2U6IFNreVZlcnRpY2FsVGFic2V0U2VydmljZSxcbiAgICBwcml2YXRlIHJlc291cmNlczogU2t5TGliUmVzb3VyY2VzU2VydmljZSxcbiAgICBwcml2YXRlIGNoYW5nZVJlZjogQ2hhbmdlRGV0ZWN0b3JSZWYpIHt9XG5cbiAgcHVibGljIG5nT25Jbml0KCkge1xuICAgIHRoaXMudGFiU2VydmljZS5tYWludGFpblRhYkNvbnRlbnQgPSB0aGlzLm1haW50YWluVGFiQ29udGVudDtcblxuICAgIHRoaXMudGFiU2VydmljZS5pbmRleENoYW5nZWRcbiAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLl9uZ1Vuc3Vic2NyaWJlKSlcbiAgICAgIC5zdWJzY3JpYmUoKGluZGV4OiBhbnkpID0+IHtcbiAgICAgICAgdGhpcy5hY3RpdmVDaGFuZ2UuZW1pdChpbmRleCk7XG4gICAgICAgIGlmICh0aGlzLmNvbnRlbnRXcmFwcGVyKSB7XG4gICAgICAgICAgdGhpcy5hZGFwdGVyU2VydmljZS5zY3JvbGxUb0NvbnRlbnRUb3AodGhpcy5jb250ZW50V3JhcHBlcik7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5jaGFuZ2VSZWYubWFya0ZvckNoZWNrKCk7XG4gICAgICB9KTtcblxuICAgIHRoaXMudGFiU2VydmljZS5zd2l0Y2hpbmdNb2JpbGVcbiAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLl9uZ1Vuc3Vic2NyaWJlKSlcbiAgICAgIC5zdWJzY3JpYmUoKG1vYmlsZTogYm9vbGVhbikgPT4ge1xuICAgICAgICB0aGlzLmlzTW9iaWxlID0gbW9iaWxlO1xuICAgICAgICB0aGlzLmNoYW5nZVJlZi5tYXJrRm9yQ2hlY2soKTtcbiAgICAgIH0pO1xuXG4gICAgaWYgKHRoaXMudGFiU2VydmljZS5pc01vYmlsZSgpKSB7XG4gICAgICB0aGlzLmlzTW9iaWxlID0gdHJ1ZTtcbiAgICAgIHRoaXMudGFiU2VydmljZS5hbmltYXRpb25Db250ZW50VmlzaWJsZVN0YXRlID0gVklTSUJMRV9TVEFURTtcbiAgICAgIHRoaXMuY2hhbmdlUmVmLm1hcmtGb3JDaGVjaygpO1xuICAgIH1cbiAgICBpZiAoIXRoaXMuc2hvd1RhYnNUZXh0KSB7XG4gICAgICB0aGlzLnJlc291cmNlcy5nZXRTdHJpbmcoJ3NreXV4X3ZlcnRpY2FsX3RhYnNfc2hvd190YWJzX3RleHQnKVxuICAgICAgICAucGlwZSh0YWtlKDEpKVxuICAgICAgICAuc3Vic2NyaWJlKHJlc291cmNlID0+IHtcbiAgICAgICAgICAvKiBzYW5pdHkgY2hlY2sgKi9cbiAgICAgICAgICBpZiAoIXRoaXMuc2hvd1RhYnNUZXh0KSB7XG4gICAgICAgICAgICB0aGlzLnNob3dUYWJzVGV4dCA9IHJlc291cmNlO1xuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIG5nQWZ0ZXJWaWV3Q2hlY2tlZCgpIHtcbiAgICB0aGlzLnRhYlNlcnZpY2UuY29udGVudCA9IHRoaXMuY29udGVudDtcbiAgICB0aGlzLnRhYlNlcnZpY2UudXBkYXRlQ29udGVudCgpO1xuICB9XG5cbiAgcHVibGljIG5nT25EZXN0cm95KCkge1xuICAgIHRoaXMuX25nVW5zdWJzY3JpYmUubmV4dCgpO1xuICAgIHRoaXMuX25nVW5zdWJzY3JpYmUuY29tcGxldGUoKTtcbiAgfVxufVxuIl19
@@ -0,0 +1,46 @@
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
+ var SkyVerticalTabsetModule = /** @class */ (function () {
14
+ function SkyVerticalTabsetModule() {
15
+ }
16
+ SkyVerticalTabsetModule = __decorate([
17
+ NgModule({
18
+ declarations: [
19
+ SkyVerticalTabsetComponent,
20
+ SkyVerticalTabsetGroupComponent,
21
+ SkyVerticalTabComponent
22
+ ],
23
+ imports: [
24
+ CommonModule,
25
+ BrowserAnimationsModule,
26
+ SkyChevronModule,
27
+ SkyIconModule,
28
+ SkyMediaQueryModule,
29
+ SkyStatusIndicatorModule,
30
+ SkyTabsResourcesModule,
31
+ SkyThemeModule
32
+ ],
33
+ providers: [
34
+ SkyVerticalTabsetAdapterService
35
+ ],
36
+ exports: [
37
+ SkyVerticalTabsetComponent,
38
+ SkyVerticalTabsetGroupComponent,
39
+ SkyVerticalTabComponent
40
+ ]
41
+ })
42
+ ], SkyVerticalTabsetModule);
43
+ return SkyVerticalTabsetModule;
44
+ }());
45
+ export { SkyVerticalTabsetModule };
46
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmVydGljYWwtdGFic2V0Lm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0Bza3l1eC90YWJzLyIsInNvdXJjZXMiOlsibW9kdWxlcy92ZXJ0aWNhbC10YWJzZXQvdmVydGljYWwtdGFic2V0Lm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUNMLFFBQVEsRUFDVCxNQUFNLGVBQWUsQ0FBQztBQUV2QixPQUFPLEVBQ0wsWUFBWSxFQUNiLE1BQU0saUJBQWlCLENBQUM7QUFFekIsT0FBTyxFQUNMLHVCQUF1QixFQUN4QixNQUFNLHNDQUFzQyxDQUFDO0FBRTlDLE9BQU8sRUFDTCxtQkFBbUIsRUFDcEIsTUFBTSxhQUFhLENBQUM7QUFFckIsT0FBTyxFQUNMLGdCQUFnQixFQUNoQixhQUFhLEVBQ2Isd0JBQXdCLEVBQ3pCLE1BQU0sbUJBQW1CLENBQUM7QUFFM0IsT0FBTyxFQUNMLGNBQWMsRUFDZixNQUFNLGNBQWMsQ0FBQztBQUV0QixPQUFPLEVBQ0wsc0JBQXNCLEVBQ3ZCLE1BQU0saUNBQWlDLENBQUM7QUFFekMsT0FBTyxFQUNMLDBCQUEwQixFQUMzQixNQUFNLDZCQUE2QixDQUFDO0FBRXJDLE9BQU8sRUFDTCx1QkFBdUIsRUFDeEIsTUFBTSwwQkFBMEIsQ0FBQztBQUVsQyxPQUFPLEVBQ0wsK0JBQStCLEVBQ2hDLE1BQU0sbUNBQW1DLENBQUM7QUFFM0MsT0FBTyxFQUNMLCtCQUErQixFQUNoQyxNQUFNLG1DQUFtQyxDQUFDO0FBMkIzQztJQUFBO0lBQXVDLENBQUM7SUFBM0IsdUJBQXVCO1FBekJuQyxRQUFRLENBQUM7WUFDUixZQUFZLEVBQUU7Z0JBQ1osMEJBQTBCO2dCQUMxQiwrQkFBK0I7Z0JBQy9CLHVCQUF1QjthQUN4QjtZQUNELE9BQU8sRUFBRTtnQkFDUCxZQUFZO2dCQUNaLHVCQUF1QjtnQkFDdkIsZ0JBQWdCO2dCQUNoQixhQUFhO2dCQUNiLG1CQUFtQjtnQkFDbkIsd0JBQXdCO2dCQUN4QixzQkFBc0I7Z0JBQ3RCLGNBQWM7YUFDZjtZQUNELFNBQVMsRUFBRTtnQkFDVCwrQkFBK0I7YUFDaEM7WUFDRCxPQUFPLEVBQUU7Z0JBQ1AsMEJBQTBCO2dCQUMxQiwrQkFBK0I7Z0JBQy9CLHVCQUF1QjthQUN4QjtTQUNGLENBQUM7T0FDVyx1QkFBdUIsQ0FBSTtJQUFELDhCQUFDO0NBQUEsQUFBeEMsSUFBd0M7U0FBM0IsdUJBQXVCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgTmdNb2R1bGVcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7XG4gIENvbW1vbk1vZHVsZVxufSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuXG5pbXBvcnQge1xuICBCcm93c2VyQW5pbWF0aW9uc01vZHVsZVxufSBmcm9tICdAYW5ndWxhci9wbGF0Zm9ybS1icm93c2VyL2FuaW1hdGlvbnMnO1xuXG5pbXBvcnQge1xuICBTa3lNZWRpYVF1ZXJ5TW9kdWxlXG59IGZyb20gJ0Bza3l1eC9jb3JlJztcblxuaW1wb3J0IHtcbiAgU2t5Q2hldnJvbk1vZHVsZSxcbiAgU2t5SWNvbk1vZHVsZSxcbiAgU2t5U3RhdHVzSW5kaWNhdG9yTW9kdWxlXG59IGZyb20gJ0Bza3l1eC9pbmRpY2F0b3JzJztcblxuaW1wb3J0IHtcbiAgU2t5VGhlbWVNb2R1bGVcbn0gZnJvbSAnQHNreXV4L3RoZW1lJztcblxuaW1wb3J0IHtcbiAgU2t5VGFic1Jlc291cmNlc01vZHVsZVxufSBmcm9tICcuLi9zaGFyZWQvdGFicy1yZXNvdXJjZXMubW9kdWxlJztcblxuaW1wb3J0IHtcbiAgU2t5VmVydGljYWxUYWJzZXRDb21wb25lbnRcbn0gZnJvbSAnLi92ZXJ0aWNhbC10YWJzZXQuY29tcG9uZW50JztcblxuaW1wb3J0IHtcbiAgU2t5VmVydGljYWxUYWJDb21wb25lbnRcbn0gZnJvbSAnLi92ZXJ0aWNhbC10YWIuY29tcG9uZW50JztcblxuaW1wb3J0IHtcbiAgU2t5VmVydGljYWxUYWJzZXRBZGFwdGVyU2VydmljZVxufSBmcm9tICcuL3ZlcnRpY2FsLXRhYnNldC1hZGFwdGVyLnNlcnZpY2UnO1xuXG5pbXBvcnQge1xuICBTa3lWZXJ0aWNhbFRhYnNldEdyb3VwQ29tcG9uZW50XG59IGZyb20gJy4vdmVydGljYWwtdGFic2V0LWdyb3VwLmNvbXBvbmVudCc7XG5cbkBOZ01vZHVsZSh7XG4gIGRlY2xhcmF0aW9uczogW1xuICAgIFNreVZlcnRpY2FsVGFic2V0Q29tcG9uZW50LFxuICAgIFNreVZlcnRpY2FsVGFic2V0R3JvdXBDb21wb25lbnQsXG4gICAgU2t5VmVydGljYWxUYWJDb21wb25lbnRcbiAgXSxcbiAgaW1wb3J0czogW1xuICAgIENvbW1vbk1vZHVsZSxcbiAgICBCcm93c2VyQW5pbWF0aW9uc01vZHVsZSxcbiAgICBTa3lDaGV2cm9uTW9kdWxlLFxuICAgIFNreUljb25Nb2R1bGUsXG4gICAgU2t5TWVkaWFRdWVyeU1vZHVsZSxcbiAgICBTa3lTdGF0dXNJbmRpY2F0b3JNb2R1bGUsXG4gICAgU2t5VGFic1Jlc291cmNlc01vZHVsZSxcbiAgICBTa3lUaGVtZU1vZHVsZVxuICBdLFxuICBwcm92aWRlcnM6IFtcbiAgICBTa3lWZXJ0aWNhbFRhYnNldEFkYXB0ZXJTZXJ2aWNlXG4gIF0sXG4gIGV4cG9ydHM6IFtcbiAgICBTa3lWZXJ0aWNhbFRhYnNldENvbXBvbmVudCxcbiAgICBTa3lWZXJ0aWNhbFRhYnNldEdyb3VwQ29tcG9uZW50LFxuICAgIFNreVZlcnRpY2FsVGFiQ29tcG9uZW50XG4gIF1cbn0pXG5leHBvcnQgY2xhc3MgU2t5VmVydGljYWxUYWJzZXRNb2R1bGUgeyB9XG4iXX0=
@@ -0,0 +1,176 @@
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 var VISIBLE_STATE = 'shown';
6
+ export var HIDDEN_STATE = 'void';
7
+ /**
8
+ * @internal
9
+ */
10
+ var SkyVerticalTabsetService = /** @class */ (function () {
11
+ function SkyVerticalTabsetService(mediaQueryService) {
12
+ var _this = this;
13
+ this.mediaQueryService = mediaQueryService;
14
+ this.activeIndex = undefined;
15
+ this.hidingTabs = new BehaviorSubject(false);
16
+ this.indexChanged = new BehaviorSubject(undefined);
17
+ this.maintainTabContent = false;
18
+ this.showingTabs = new BehaviorSubject(false);
19
+ this.switchingMobile = new Subject();
20
+ this.tabs = [];
21
+ this.tabAdded = new Subject();
22
+ this.tabClicked = new BehaviorSubject(undefined);
23
+ this._contentAdded = false;
24
+ this._tabsVisible = false;
25
+ this._isMobile = false;
26
+ this.mediaQueryService.subscribe(function (breakpoint) {
27
+ var nowMobile = breakpoint === SkyMediaBreakpoints.xs;
28
+ if (nowMobile && !_this._isMobile) {
29
+ // switching to mobile
30
+ _this.switchingMobile.next(true);
31
+ if (!_this._tabsVisible) {
32
+ _this.hidingTabs.next(true);
33
+ }
34
+ }
35
+ else if (!nowMobile && _this._isMobile) {
36
+ // switching to widescreen
37
+ _this.switchingMobile.next(false);
38
+ if (!_this._tabsVisible) {
39
+ _this.showingTabs.next(true);
40
+ }
41
+ }
42
+ _this._isMobile = nowMobile;
43
+ });
44
+ }
45
+ Object.defineProperty(SkyVerticalTabsetService.prototype, "content", {
46
+ set: function (value) {
47
+ this._content = value;
48
+ },
49
+ enumerable: true,
50
+ configurable: true
51
+ });
52
+ SkyVerticalTabsetService.prototype.addTab = function (tab) {
53
+ var index = this.tabs.length;
54
+ tab.index = index;
55
+ this.tabs.push(tab);
56
+ if (tab.active) {
57
+ this.activateTab(tab);
58
+ }
59
+ this.tabAdded.next(tab);
60
+ };
61
+ SkyVerticalTabsetService.prototype.destroyTab = function (tab) {
62
+ var tabIndex = this.tabs.indexOf(tab);
63
+ if (tabIndex === -1) {
64
+ return;
65
+ }
66
+ if (this.maintainTabContent && tab.contentRendered && this._content) {
67
+ if (this._content.nativeElement.contains(tab.tabContent.nativeElement)) {
68
+ this._content.nativeElement.removeChild(tab.tabContent.nativeElement);
69
+ }
70
+ }
71
+ this.tabs.splice(tabIndex, 1);
72
+ // update tab indices
73
+ this.tabs.forEach(function (tabItem, index) { return tabItem.index = index; });
74
+ if (tab.active) {
75
+ if (!this.maintainTabContent) {
76
+ this.destroyContent();
77
+ }
78
+ // Try selecting the next tab first, and if there's no next tab then
79
+ // try selecting the previous one.
80
+ var newActiveTab = this.tabs[tabIndex] || this.tabs[tabIndex - 1];
81
+ /*istanbul ignore else */
82
+ if (newActiveTab) {
83
+ newActiveTab.activateTab();
84
+ }
85
+ }
86
+ };
87
+ SkyVerticalTabsetService.prototype.activateTab = function (tab) {
88
+ var _this = this;
89
+ // unactivate active tab
90
+ var activeTab = this.tabs.find(function (t) { return t.index === _this.activeIndex; });
91
+ if (activeTab && activeTab.index !== tab.index) {
92
+ activeTab.active = false;
93
+ activeTab.tabDeactivated();
94
+ }
95
+ this.activeIndex = tab.index;
96
+ this.tabClicked.next(true);
97
+ this.updateTabClicked();
98
+ };
99
+ SkyVerticalTabsetService.prototype.activeTab = function () {
100
+ var _this = this;
101
+ return this.tabs.find(function (t) { return t.index === _this.activeIndex; });
102
+ };
103
+ SkyVerticalTabsetService.prototype.isMobile = function () {
104
+ return this._isMobile;
105
+ };
106
+ SkyVerticalTabsetService.prototype.updateContent = function () {
107
+ var _this = this;
108
+ if (!this.maintainTabContent) {
109
+ if (!this._contentAdded && this.contentVisible()) {
110
+ // content needs to be moved
111
+ this.moveContent();
112
+ }
113
+ else if (this._contentAdded && !this.contentVisible()) {
114
+ // content hidden
115
+ this._contentAdded = false;
116
+ }
117
+ }
118
+ else {
119
+ this.tabs.forEach(function (tab) {
120
+ if (!tab.contentRendered) {
121
+ _this._content.nativeElement.appendChild(tab.tabContent.nativeElement);
122
+ tab.contentRendered = true;
123
+ }
124
+ });
125
+ }
126
+ };
127
+ SkyVerticalTabsetService.prototype.tabsVisible = function () {
128
+ return !this.isMobile() || this._tabsVisible;
129
+ };
130
+ SkyVerticalTabsetService.prototype.contentVisible = function () {
131
+ return !this.isMobile() || !this._tabsVisible;
132
+ };
133
+ SkyVerticalTabsetService.prototype.showTabs = function () {
134
+ this._tabsVisible = true;
135
+ this._contentAdded = false;
136
+ this.animationTabsVisibleState = VISIBLE_STATE;
137
+ this.animationContentVisibleState = HIDDEN_STATE;
138
+ this.showingTabs.next(true);
139
+ };
140
+ SkyVerticalTabsetService.prototype.destroyContent = function () {
141
+ if (this._content) {
142
+ this._content.nativeElement.innerHTML = '';
143
+ }
144
+ this.content = undefined;
145
+ };
146
+ SkyVerticalTabsetService.prototype.moveContent = function () {
147
+ if (this._content && !this._contentAdded) {
148
+ var activeTab = this.activeTab();
149
+ var activeContent = activeTab ? activeTab.tabContent : undefined;
150
+ if (activeContent && activeContent.nativeElement) {
151
+ this._content.nativeElement.appendChild(activeContent.nativeElement);
152
+ activeTab.contentRendered = true;
153
+ this._contentAdded = true;
154
+ }
155
+ }
156
+ };
157
+ SkyVerticalTabsetService.prototype.updateTabClicked = function () {
158
+ this._contentAdded = false;
159
+ if (this.isMobile()) {
160
+ this._tabsVisible = false;
161
+ this.animationContentVisibleState = VISIBLE_STATE;
162
+ this.animationTabsVisibleState = HIDDEN_STATE;
163
+ this.hidingTabs.next(true);
164
+ }
165
+ this.indexChanged.next(this.activeIndex);
166
+ };
167
+ SkyVerticalTabsetService.ctorParameters = function () { return [
168
+ { type: SkyMediaQueryService }
169
+ ]; };
170
+ SkyVerticalTabsetService = __decorate([
171
+ Injectable()
172
+ ], SkyVerticalTabsetService);
173
+ return SkyVerticalTabsetService;
174
+ }());
175
+ export { SkyVerticalTabsetService };
176
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmVydGljYWwtdGFic2V0LnNlcnZpY2UuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9Ac2t5dXgvdGFicy8iLCJzb3VyY2VzIjpbIm1vZHVsZXMvdmVydGljYWwtdGFic2V0L3ZlcnRpY2FsLXRhYnNldC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBRUwsVUFBVSxFQUNYLE1BQU0sZUFBZSxDQUFDO0FBRXZCLE9BQU8sRUFDTCxtQkFBbUIsRUFDbkIsb0JBQW9CLEVBQ3JCLE1BQU0sYUFBYSxDQUFDO0FBRXJCLE9BQU8sRUFDTCxlQUFlLEVBQ2YsT0FBTyxFQUNSLE1BQU0sTUFBTSxDQUFDO0FBTWQsTUFBTSxDQUFDLElBQU0sYUFBYSxHQUFHLE9BQU8sQ0FBQztBQUNyQyxNQUFNLENBQUMsSUFBTSxZQUFZLEdBQUcsTUFBTSxDQUFDO0FBRW5DOztHQUVHO0FBRUg7SUFvQ0Usa0NBQTJCLGlCQUF1QztRQUFsRSxpQkF1QkM7UUF2QjBCLHNCQUFpQixHQUFqQixpQkFBaUIsQ0FBc0I7UUFsQzNELGdCQUFXLEdBQVcsU0FBUyxDQUFDO1FBVWhDLGVBQVUsR0FBRyxJQUFJLGVBQWUsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUV4QyxpQkFBWSxHQUE0QixJQUFJLGVBQWUsQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUV2RSx1QkFBa0IsR0FBWSxLQUFLLENBQUM7UUFFcEMsZ0JBQVcsR0FBRyxJQUFJLGVBQWUsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUV6QyxvQkFBZSxHQUFxQixJQUFJLE9BQU8sRUFBRSxDQUFDO1FBRWxELFNBQUksR0FBbUMsRUFBRSxDQUFDO1FBRTFDLGFBQVEsR0FBcUMsSUFBSSxPQUFPLEVBQUUsQ0FBQztRQUUzRCxlQUFVLEdBQTZCLElBQUksZUFBZSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBSXJFLGtCQUFhLEdBQVksS0FBSyxDQUFDO1FBRS9CLGlCQUFZLEdBQVksS0FBSyxDQUFDO1FBRTlCLGNBQVMsR0FBWSxL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TUQsSUFpTUM7U0FqTVksd0JBQXdCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgRWxlbWVudFJlZixcbiAgSW5qZWN0YWJsZVxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHtcbiAgU2t5TWVkaWFCcmVha3BvaW50cyxcbiAgU2t5TWVkaWFRdWVyeVNlcnZpY2Vcbn0gZnJvbSAnQHNreXV4L2NvcmUnO1xuXG5pbXBvcnQge1xuICBCZWhhdmlvclN1YmplY3QsXG4gIFN1YmplY3Rcbn0gZnJvbSAncnhqcyc7XG5cbmltcG9ydCB7XG4gIFNreVZlcnRpY2FsVGFiQ29tcG9uZW50XG59IGZyb20gJy4vdmVydGljYWwtdGFiLmNvbXBvbmVudCc7XG5cbmV4cG9ydCBjb25zdCBWSVNJQkxFX1NUQVRFID0gJ3Nob3duJztcbmV4cG9ydCBjb25zdCBISURERU5fU1RBVEUgPSAndm9pZCc7XG5cbi8qKlxuICogQGludGVybmFsXG4gKi9cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBTa3lWZXJ0aWNhbFRhYnNldFNlcnZpY2Uge1xuXG4gIHB1YmxpYyBhY3RpdmVJbmRleDogbnVtYmVyID0gdW5kZWZpbmVkO1xuXG4gIHB1YmxpYyBhbmltYXRpb25Db250ZW50VmlzaWJsZVN0YXRlOiBzdHJpbmc7XG5cbiAgcHVibGljIGFuaW1hdGlvblRhYnNWaXNpYmxlU3RhdGU6IHN0cmluZztcblxuICBwdWJsaWMgc2V0IGNvbnRlbnQodmFsdWU6IEVsZW1lbnRSZWYpIHtcbiAgICB0aGlzLl9jb250ZW50ID0gdmFsdWU7XG4gIH1cblxuICBwdWJsaWMgaGlkaW5nVGFicyA9IG5ldyBCZWhhdmlvclN1YmplY3QoZmFsc2UpO1xuXG4gIHB1YmxpYyBpbmRleENoYW5nZWQ6IEJlaGF2aW9yU3ViamVjdDxudW1iZXI+ID0gbmV3IEJlaGF2aW9yU3ViamVjdCh1bmRlZmluZWQpO1xuXG4gIHB1YmxpYyBtYWludGFpblRhYkNvbnRlbnQ6IGJvb2xlYW4gPSBmYWxzZTtcblxuICBwdWJsaWMgc2hvd2luZ1RhYnMgPSBuZXcgQmVoYXZpb3JTdWJqZWN0KGZhbHNlKTtcblxuICBwdWJsaWMgc3dpdGNoaW5nTW9iaWxlOiBTdWJqZWN0PGJvb2xlYW4+ID0gbmV3IFN1YmplY3QoKTtcblxuICBwdWJsaWMgdGFiczogQXJyYXk8U2t5VmVydGljYWxUYWJDb21wb25lbnQ+ID0gW107XG5cbiAgcHVibGljIHRhYkFkZGVkOiBTdWJqZWN0PFNreVZlcnRpY2FsVGFiQ29tcG9uZW50PiA9IG5ldyBTdWJqZWN0KCk7XG5cbiAgcHVibGljIHRhYkNsaWNrZWQ6IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPiA9IG5ldyBCZWhhdmlvclN1YmplY3QodW5kZWZpbmVkKTtcblxuICBwcml2YXRlIF9jb250ZW50OiBFbGVtZW50UmVmO1xuXG4gIHByaXZhdGUgX2NvbnRlbnRBZGRlZDogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIHByaXZhdGUgX3RhYnNWaXNpYmxlOiBib29sZWFuID0gZmFsc2U7XG5cbiAgcHJpdmF0ZSBfaXNNb2JpbGU6IGJvb2xlYW4gPSBmYWxzZTtcblxuICBwdWJsaWMgY29uc3RydWN0b3IocHJpdmF0ZSBtZWRpYVF1ZXJ5U2VydmljZTogU2t5TWVkaWFRdWVyeVNlcnZpY2UpIHtcbiAgICB0aGlzLm1lZGlhUXVlcnlTZXJ2aWNlLnN1YnNjcmliZShicmVha3BvaW50ID0+IHtcbiAgICAgIGNvbnN0IG5vd01vYmlsZSA9IGJyZWFrcG9pbnQgPT09IFNreU1lZGlhQnJlYWtwb2ludHMueHM7XG5cbiAgICAgIGlmIChub3dNb2JpbGUgJiYgIXRoaXMuX2lzTW9iaWxlKSB7XG4gICAgICAgIC8vIHN3aXRjaGluZyB0byBtb2JpbGVcbiAgICAgICAgdGhpcy5zd2l0Y2hpbmdNb2JpbGUubmV4dCh0cnVlKTtcblxuICAgICAgICBpZiAoIXRoaXMuX3RhYnNWaXNpYmxlKSB7XG4gICAgICAgICAgdGhpcy5oaWRpbmdUYWJzLm5leHQodHJ1ZSk7XG4gICAgICAgIH1cblxuICAgICAgfSBlbHNlIGlmICghbm93TW9iaWxlICYmIHRoaXMuX2lzTW9iaWxlKSB7XG4gICAgICAgIC8vIHN3aXRjaGluZyB0byB3aWRlc2NyZWVuXG4gICAgICAgIHRoaXMuc3dpdGNoaW5nTW9iaWxlLm5leHQoZmFsc2UpO1xuXG4gICAgICAgIGlmICghdGhpcy5fdGFic1Zpc2libGUpIHtcbiAgICAgICAgICB0aGlzLnNob3dpbmdUYWJzLm5leHQodHJ1ZSk7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgdGhpcy5faXNNb2JpbGUgPSBub3dNb2JpbGU7XG4gICAgfSk7XG4gIH1cblxuICBwdWJsaWMgYWRkVGFiKHRhYjogU2t5VmVydGljYWxUYWJDb21wb25lbnQpIHtcbiAgICBjb25zdCBpbmRleCA9IHRoaXMudGFicy5sZW5ndGg7XG4gICAgdGFiLmluZGV4ID0gaW5kZXg7XG5cbiAgICB0aGlzLnRhYnMucHVzaCh0YWIpO1xuXG4gICAgaWYgKHRhYi5hY3RpdmUpIHtcbiAgICAgIHRoaXMuYWN0aXZhdGVUYWIodGFiKTtcbiAgICB9XG5cbiAgICB0aGlzLnRhYkFkZGVkLm5leHQodGFiKTtcbiAgfVxuXG4gIHB1YmxpYyBkZXN0cm95VGFiKHRhYjogU2t5VmVydGljYWxUYWJDb21wb25lbnQpOiB2b2lkIHtcbiAgICBsZXQgdGFiSW5kZXggPSB0aGlzLnRhYnMuaW5kZXhPZih0YWIpO1xuICAgIGlmICh0YWJJbmRleCA9PT0gLTEpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5tYWludGFpblRhYkNvbnRlbnQgJiYgdGFiLmNvbnRlbnRSZW5kZXJlZCAmJiB0aGlzLl9jb250ZW50KSB7XG4gICAgICBpZiAodGhpcy5fY29udGVudC5uYXRpdmVFbGVtZW50LmNvbnRhaW5zKHRhYi50YWJDb250ZW50Lm5hdGl2ZUVsZW1lbnQpKSB7XG4gICAgICAgIHRoaXMuX2NvbnRlbnQubmF0aXZlRWxlbWVudC5yZW1vdmVDaGlsZCh0YWIudGFiQ29udGVudC5uYXRpdmVFbGVtZW50KTtcbiAgICAgIH1cbiAgICB9XG4gICAgdGhpcy50YWJzLnNwbGljZSh0YWJJbmRleCwgMSk7XG4gICAgLy8gdXBkYXRlIHRhYiBpbmRpY2VzXG4gICAgdGhpcy50YWJzLmZvckVhY2goKHRhYkl0ZW0sIGluZGV4KSA9PiB0YWJJdGVtLmluZGV4ID0gaW5kZXgpO1xuXG4gICAgaWYgKHRhYi5hY3RpdmUpIHtcbiAgICAgIGlmICghdGhpcy5tYWludGFpblRhYkNvbnRlbnQpIHtcbiAgICAgICAgdGhpcy5kZXN0cm95Q29udGVudCgpO1xuICAgICAgfVxuICAgICAgLy8gVHJ5IHNlbGVjdGluZyB0aGUgbmV4dCB0YWIgZmlyc3QsIGFuZCBpZiB0aGVyZSdzIG5vIG5leHQgdGFiIHRoZW5cbiAgICAgIC8vIHRyeSBzZWxlY3RpbmcgdGhlIHByZXZpb3VzIG9uZS5cbiAgICAgIGxldCBuZXdBY3RpdmVUYWIgPSB0aGlzLnRhYnNbdGFiSW5kZXhdIHx8IHRoaXMudGFic1t0YWJJbmRleCAtIDFdO1xuICAgICAgLyppc3RhbmJ1bCBpZ25vcmUgZWxzZSAqL1xuICAgICAgaWYgKG5ld0FjdGl2ZVRhYikge1xuICAgICAgICBuZXdBY3RpdmVUYWIuYWN0aXZhdGVUYWIoKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBwdWJsaWMgYWN0aXZhdGVUYWIodGFiOiBTa3lWZXJ0aWNhbFRhYkNvbXBvbmVudCkge1xuXG4gICAgLy8gdW5hY3RpdmF0ZSBhY3RpdmUgdGFiXG4gICAgbGV0IGFjdGl2ZVRhYiA9IHRoaXMudGFicy5maW5kKHQgPT4gdC5pbmRleCA9PT0gdGhpcy5hY3RpdmVJbmRleCk7XG4gICAgaWYgKGFjdGl2ZVRhYiAmJiBhY3RpdmVUYWIuaW5kZXggIT09IHRhYi5pbmRleCkge1xuICAgICAgYWN0aXZlVGFiLmFjdGl2ZSA9IGZhbHNlO1xuICAgICAgYWN0aXZlVGFiLnRhYkRlYWN0aXZhdGVkKCk7XG4gICAgfVxuXG4gICAgdGhpcy5hY3RpdmVJbmRleCA9IHRhYi5pbmRleDtcbiAgICB0aGlzLnRhYkNsaWNrZWQubmV4dCh0cnVlKTtcbiAgICB0aGlzLnVwZGF0ZVRhYkNsaWNrZWQoKTtcbiAgfVxuXG4gIHB1YmxpYyBhY3RpdmVUYWIoKTogU2t5VmVydGljYWxUYWJDb21wb25lbnQge1xuICAgIHJldHVybiB0aGlzLnRhYnMuZmluZCh0ID0+IHQuaW5kZXggPT09IHRoaXMuYWN0aXZlSW5kZXgpO1xuICB9XG5cbiAgcHVibGljIGlzTW9iaWxlKCkge1xuICAgIHJldHVybiB0aGlzLl9pc01vYmlsZTtcbiAgfVxuXG4gIHB1YmxpYyB1cGRhdGVDb250ZW50KCkge1xuICAgIGlmICghdGhpcy5tYWludGFpblRhYkNvbnRlbnQpIHtcbiAgICAgIGlmICghdGhpcy5fY29udGVudEFkZGVkICYmIHRoaXMuY29udGVudFZpc2libGUoKSkge1xuICAgICAgICAvLyBjb250ZW50IG5lZWRzIHRvIGJlIG1vdmVkXG4gICAgICAgIHRoaXMubW92ZUNvbnRlbnQoKTtcblxuICAgICAgfSBlbHNlIGlmICh0aGlzLl9jb250ZW50QWRkZWQgJiYgIXRoaXMuY29udGVudFZpc2libGUoKSkge1xuICAgICAgICAvLyBjb250ZW50IGhpZGRlblxuICAgICAgICB0aGlzLl9jb250ZW50QWRkZWQgPSBmYWxzZTtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy50YWJzLmZvckVhY2goKHRhYikgPT4ge1xuICAgICAgICBpZiAoIXRhYi5jb250ZW50UmVuZGVyZWQpIHtcbiAgICAgICAgICB0aGlzLl9jb250ZW50Lm5hdGl2ZUVsZW1lbnQuYXBwZW5kQ2hpbGQodGFiLnRhYkNvbnRlbnQubmF0aXZlRWxlbWVudCk7XG4gICAgICAgICAgdGFiLmNvbnRlbnRSZW5kZXJlZCA9IHRydWU7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyB0YWJzVmlzaWJsZSgpIHtcbiAgICByZXR1cm4gIXRoaXMuaXNNb2JpbGUoKSB8fCB0aGlzLl90YWJzVmlzaWJsZTtcbiAgfVxuXG4gIHB1YmxpYyBjb250ZW50VmlzaWJsZSgpIHtcbiAgICByZXR1cm4gIXRoaXMuaXNNb2JpbGUoKSB8fCAhdGhpcy5fdGFic1Zpc2libGU7XG4gIH1cblxuICBwdWJsaWMgc2hvd1RhYnMoKSB7XG4gICAgdGhpcy5fdGFic1Zpc2libGUgPSB0cnVlO1xuICAgIHRoaXMuX2NvbnRlbnRBZGRlZCA9IGZhbHNlO1xuICAgIHRoaXMuYW5pbWF0aW9uVGFic1Zpc2libGVTdGF0ZSA9IFZJU0lCTEVfU1RBVEU7XG4gICAgdGhpcy5hbmltYXRpb25Db250ZW50VmlzaWJsZVN0YXRlID0gSElEREVOX1NUQVRFO1xuICAgIHRoaXMuc2hvd2luZ1RhYnMubmV4dCh0cnVlKTtcbiAgfVxuXG4gIHByaXZhdGUgZGVzdHJveUNvbnRlbnQoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuX2NvbnRlbnQpIHtcbiAgICAgIHRoaXMuX2NvbnRlbnQubmF0aXZlRWxlbWVudC5pbm5lckhUTUwgPSAnJztcbiAgICB9XG4gICAgdGhpcy5jb250ZW50ID0gdW5kZWZpbmVkO1xuICB9XG5cbiAgcHJpdmF0ZSBtb3ZlQ29udGVudCgpIHtcbiAgICBpZiAodGhpcy5fY29udGVudCAmJiAhdGhpcy5fY29udGVudEFkZGVkKSB7XG4gICAgICBsZXQgYWN0aXZlVGFiID0gdGhpcy5hY3RpdmVUYWIoKTtcbiAgICAgIGxldCBhY3RpdmVDb250ZW50ID0gYWN0aXZlVGFiID8gYWN0aXZlVGFiLnRhYkNvbnRlbnQgOiB1bmRlZmluZWQ7XG5cbiAgICAgIGlmIChhY3RpdmVDb250ZW50ICYmIGFjdGl2ZUNvbnRlbnQubmF0aXZlRWxlbWVudCkge1xuICAgICAgICB0aGlzLl9jb250ZW50Lm5hdGl2ZUVsZW1lbnQuYXBwZW5kQ2hpbGQoYWN0aXZlQ29udGVudC5uYXRpdmVFbGVtZW50KTtcbiAgICAgICAgYWN0aXZlVGFiLmNvbnRlbnRSZW5kZXJlZCA9IHRydWU7XG4gICAgICAgIHRoaXMuX2NvbnRlbnRBZGRlZCA9IHRydWU7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSB1cGRhdGVUYWJDbGlja2VkKCkge1xuICAgIHRoaXMuX2NvbnRlbnRBZGRlZCA9IGZhbHNlO1xuXG4gICAgaWYgKHRoaXMuaXNNb2JpbGUoKSkge1xuICAgICAgdGhpcy5fdGFic1Zpc2libGUgPSBmYWxzZTtcbiAgICAgIHRoaXMuYW5pbWF0aW9uQ29udGVudFZpc2libGVTdGF0ZSA9IFZJU0lCTEVfU1RBVEU7XG4gICAgICB0aGlzLmFuaW1hdGlvblRhYnNWaXNpYmxlU3RhdGUgPSBISURERU5fU1RBVEU7XG4gICAgICB0aGlzLmhpZGluZ1RhYnMubmV4dCh0cnVlKTtcbiAgICB9XG5cbiAgICB0aGlzLmluZGV4Q2hhbmdlZC5uZXh0KHRoaXMuYWN0aXZlSW5kZXgpO1xuICB9XG59XG4iXX0=