@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,122 @@
1
+ import { __decorate } from "tslib";
2
+ import { Injectable } from '@angular/core';
3
+ import { BehaviorSubject, Subject } from 'rxjs';
4
+ /**
5
+ * @internal
6
+ */
7
+ var SkyTabsetService = /** @class */ (function () {
8
+ function SkyTabsetService() {
9
+ this.currentActiveTabIndex = 0;
10
+ this._activeTabIndex = new BehaviorSubject(0);
11
+ this._activeTabUnregistered = new Subject();
12
+ this.tabs = [];
13
+ this.tabCounter = 0;
14
+ }
15
+ Object.defineProperty(SkyTabsetService.prototype, "activeTabUnregistered", {
16
+ get: function () {
17
+ return this._activeTabUnregistered.asObservable();
18
+ },
19
+ enumerable: true,
20
+ configurable: true
21
+ });
22
+ Object.defineProperty(SkyTabsetService.prototype, "activeTabIndex", {
23
+ get: function () {
24
+ return this._activeTabIndex.asObservable();
25
+ },
26
+ enumerable: true,
27
+ configurable: true
28
+ });
29
+ /**
30
+ * Sets the active tab by its unique `tabIndex` property.
31
+ */
32
+ SkyTabsetService.prototype.setActiveTabIndex = function (value, config) {
33
+ if (config === void 0) { config = {
34
+ emitChange: true
35
+ }; }
36
+ if (value !== undefined &&
37
+ !this.tabIndexesEqual(value, this.currentActiveTabIndex)) {
38
+ this.currentActiveTabIndex = value;
39
+ if (config.emitChange) {
40
+ this._activeTabIndex.next(value);
41
+ }
42
+ }
43
+ };
44
+ /**
45
+ * Registers a tab component.
46
+ */
47
+ SkyTabsetService.prototype.registerTab = function (tabIndex) {
48
+ if (tabIndex === undefined) {
49
+ tabIndex = this.tabCounter;
50
+ this.tabCounter++;
51
+ }
52
+ this.tabs.push({ tabIndex: tabIndex });
53
+ return tabIndex;
54
+ };
55
+ SkyTabsetService.prototype.updateTabIndex = function (currentTabIndex, newTabIndex) {
56
+ var _this = this;
57
+ var found = this.tabs.find(function (tab) { return _this.tabIndexesEqual(tab.tabIndex, currentTabIndex); });
58
+ found.tabIndex = newTabIndex;
59
+ };
60
+ /**
61
+ * Unregisters a tab component.
62
+ */
63
+ SkyTabsetService.prototype.unregisterTab = function (tabIndex) {
64
+ var _this = this;
65
+ var index = this.tabs.findIndex(function (tab) { return _this.tabIndexesEqual(tab.tabIndex, tabIndex); });
66
+ // Notify the tabset component when an active tab is unregistered.
67
+ if (this.isTabIndexActive(this.tabs[index].tabIndex)) {
68
+ this._activeTabUnregistered.next({
69
+ arrayIndex: index
70
+ });
71
+ }
72
+ this.tabs.splice(index, 1);
73
+ };
74
+ /**
75
+ * Unregisters all tab components at once.
76
+ */
77
+ SkyTabsetService.prototype.unregisterAll = function () {
78
+ this.tabs = [];
79
+ };
80
+ /**
81
+ * Compares two tab indexes and returns `true` if they are equal.
82
+ */
83
+ SkyTabsetService.prototype.tabIndexesEqual = function (tabIndex1, tabIndex2) {
84
+ return (tabIndex1 === tabIndex2 ||
85
+ +tabIndex1 === +tabIndex2);
86
+ };
87
+ /**
88
+ * Verifies if a provided tab index is registered.
89
+ */
90
+ SkyTabsetService.prototype.isValidTabIndex = function (tabIndex) {
91
+ var _this = this;
92
+ return this.tabs.some(function (tab) { return _this.tabIndexesEqual(tab.tabIndex, tabIndex); });
93
+ };
94
+ /**
95
+ * Activates the first registered tab.
96
+ */
97
+ SkyTabsetService.prototype.activateFirstTab = function () {
98
+ var firstTabIndex = this.tabs[0] && this.tabs[0].tabIndex;
99
+ if (firstTabIndex !== undefined) {
100
+ this.setActiveTabIndex(firstTabIndex);
101
+ return firstTabIndex;
102
+ }
103
+ };
104
+ /**
105
+ * Activates the next registered tab, or the previous one based on a provided array index.
106
+ */
107
+ SkyTabsetService.prototype.activateNearestTab = function (arrayIndex) {
108
+ var newActiveTab = this.tabs[arrayIndex] || this.tabs[arrayIndex - 1];
109
+ if (newActiveTab) {
110
+ this.currentActiveTabIndex = newActiveTab.tabIndex;
111
+ }
112
+ };
113
+ SkyTabsetService.prototype.isTabIndexActive = function (tabIndex) {
114
+ return this.tabIndexesEqual(tabIndex, this.currentActiveTabIndex);
115
+ };
116
+ SkyTabsetService = __decorate([
117
+ Injectable()
118
+ ], SkyTabsetService);
119
+ return SkyTabsetService;
120
+ }());
121
+ export { SkyTabsetService };
122
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFic2V0LnNlcnZpY2UuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9Ac2t5dXgvdGFicy8iLCJzb3VyY2VzIjpbIm1vZHVsZXMvdGFicy90YWJzZXQuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUNMLFVBQVUsRUFDWCxNQUFNLGVBQWUsQ0FBQztBQUV2QixPQUFPLEVBQ0wsZUFBZSxFQUVmLE9BQU8sRUFDUixNQUFNLE1BQU0sQ0FBQztBQVVkOztHQUVHO0FBRUg7SUFBQTtRQVVTLDBCQUFxQixHQUFnQixDQUFDLENBQUM7UUFFdEMsb0JBQWUsR0FBRyxJQUFJLGVBQWUsQ0FBYyxDQUFDLENBQUMsQ0FBQztRQUV0RCwyQkFBc0IsR0FBRyxJQUFJLE9BQU8sRUFBc0MsQ0FBQztRQUUzRSxTQUFJLEdBRU4sRUFBRSxDQUFDO1FBRUQsZUFBVSxHQUFHLENBQUMsQ0FBQztJQXNHekIsQ0FBQztJQXhIQyxzQkFBVyxtREFBcUI7YUFBaEM7WUFDRSxPQUFPLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxZQUFZLEVBQUUsQ0FBQztRQUNwRCxDQUFDOzs7T0FBQTtJQUVELHNCQUFXLDRDQUFjO2FBQXpCO1lBQ0UsT0FBTyxJQUFJLENBQUMsZUFBZSxDQUFDLFlBQVksRUFBRSxDQUFDO1FBQzdDLENBQUM7OztPQUFBO0lBY0Q7O09BRUc7SUFDSSw0Q0FBaUIsR0FBeEIsVUFBeUIsS0FBa0IsRUFBRSxNQUU1QztRQUY0Qyx1QkFBQSxFQUFBO1lBQzNDLFVBQVUsRUFBRSxJQUFJO1NBQ2pCO1FBQ0MsSUFDRSxLQUFLLEtBQUssU0FBUztZQUNuQixDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxFQUN4RDtZQUNBLElBQUksQ0FBQyxxQkFBcUIsR0FBRyxLQUFLLENBQUM7WUFDbkMsSUFBSSxNQUFNLENBQUMsVUFBVSxFQUFFO2dCQUNyQixJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FB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LENBQUMsUUFBUSxDQUFDO1NBQ3BEO0lBQ0gsQ0FBQztJQUVPLDJDQUFnQixHQUF4QixVQUF5QixRQUFxQjtRQUM1QyxPQUFPLElBQUksQ0FBQyxlQUFlLENBQUMsUUFBUSxFQUFFLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDO0lBQ3BFLENBQUM7SUF6SFUsZ0JBQWdCO1FBRDVCLFVBQVUsRUFBRTtPQUNBLGdCQUFnQixDQTBINUI7SUFBRCx1QkFBQztDQUFBLEFBMUhELElBMEhDO1NBMUhZLGdCQUFnQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIEluamVjdGFibGVcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7XG4gIEJlaGF2aW9yU3ViamVjdCxcbiAgT2JzZXJ2YWJsZSxcbiAgU3ViamVjdFxufSBmcm9tICdyeGpzJztcblxuaW1wb3J0IHtcbiAgU2t5VGFiSW5kZXhcbn0gZnJvbSAnLi90YWItaW5kZXgnO1xuXG5pbXBvcnQge1xuICBTa3lUYWJzZXRBY3RpdmVUYWJVbnJlZ2lzdGVyZWRBcmdzXG59IGZyb20gJy4vdGFic2V0LWFjdGl2ZS10YWItdW5yZWdpc3RlcmVkLWFyZ3MnO1xuXG4vKipcbiAqIEBpbnRlcm5hbFxuICovXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgU2t5VGFic2V0U2VydmljZSB7XG5cbiAgcHVibGljIGdldCBhY3RpdmVUYWJVbnJlZ2lzdGVyZWQoKTogT2JzZXJ2YWJsZTxTa3lUYWJzZXRBY3RpdmVUYWJVbnJlZ2lzdGVyZWRBcmdzPiB7XG4gICAgcmV0dXJuIHRoaXMuX2FjdGl2ZVRhYlVucmVnaXN0ZXJlZC5hc09ic2VydmFibGUoKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgYWN0aXZlVGFiSW5kZXgoKTogT2JzZXJ2YWJsZTxTa3lUYWJJbmRleD4ge1xuICAgIHJldHVybiB0aGlzLl9hY3RpdmVUYWJJbmRleC5hc09ic2VydmFibGUoKTtcbiAgfVxuXG4gIHB1YmxpYyBjdXJyZW50QWN0aXZlVGFiSW5kZXg6IFNreVRhYkluZGV4ID0gMDtcblxuICBwcml2YXRlIF9hY3RpdmVUYWJJbmRleCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8U2t5VGFiSW5kZXg+KDApO1xuXG4gIHByaXZhdGUgX2FjdGl2ZVRhYlVucmVnaXN0ZXJlZCA9IG5ldyBTdWJqZWN0PFNreVRhYnNldEFjdGl2ZVRhYlVucmVnaXN0ZXJlZEFyZ3M+KCk7XG5cbiAgcHJpdmF0ZSB0YWJzOiB7XG4gICAgdGFiSW5kZXg6IFNreVRhYkluZGV4O1xuICB9W10gPSBbXTtcblxuICBwcml2YXRlIHRhYkNvdW50ZXIgPSAwO1xuXG4gIC8qKlxuICAgKiBTZXRzIHRoZSBhY3RpdmUgdGFiIGJ5IGl0cyB1bmlxdWUgYHRhYkluZGV4YCBwcm9wZXJ0eS5cbiAgICovXG4gIHB1YmxpYyBzZXRBY3RpdmVUYWJJbmRleCh2YWx1ZTogU2t5VGFiSW5kZXgsIGNvbmZpZyA9IHtcbiAgICBlbWl0Q2hhbmdlOiB0cnVlXG4gIH0pOiB2b2lkIHtcbiAgICBpZiAoXG4gICAgICB2YWx1ZSAhPT0gdW5kZWZpbmVkICYmXG4gICAgICAhdGhpcy50YWJJbmRleGVzRXF1YWwodmFsdWUsIHRoaXMuY3VycmVudEFjdGl2ZVRhYkluZGV4KVxuICAgICkge1xuICAgICAgdGhpcy5jdXJyZW50QWN0aXZlVGFiSW5kZXggPSB2YWx1ZTtcbiAgICAgIGlmIChjb25maWcuZW1pdENoYW5nZSkge1xuICAgICAgICB0aGlzLl9hY3RpdmVUYWJJbmRleC5uZXh0KHZhbHVlKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogUmVnaXN0ZXJzIGEgdGFiIGNvbXBvbmVudC5cbiAgICovXG4gIHB1YmxpYyByZWdpc3RlclRhYih0YWJJbmRleD86IFNreVRhYkluZGV4KTogU2t5VGFiSW5kZXgge1xuICAgIGlmICh0YWJJbmRleCA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICB0YWJJbmRleCA9IHRoaXMudGFiQ291bnRlcjtcbiAgICAgIHRoaXMudGFiQ291bnRlcisrO1xuICAgIH1cblxuICAgIHRoaXMudGFicy5wdXNoKHsgdGFiSW5kZXggfSk7XG5cbiAgICByZXR1cm4gdGFiSW5kZXg7XG4gIH1cblxuICBwdWJsaWMgdXBkYXRlVGFiSW5kZXgoY3VycmVudFRhYkluZGV4OiBTa3lUYWJJbmRleCwgbmV3VGFiSW5kZXg6IFNreVRhYkluZGV4KTogdm9pZCB7XG4gICAgY29uc3QgZm91bmQgPSB0aGlzLnRhYnMuZmluZCh0YWIgPT4gdGhpcy50YWJJbmRleGVzRXF1YWwodGFiLnRhYkluZGV4LCBjdXJyZW50VGFiSW5kZXgpKTtcbiAgICBmb3VuZC50YWJJbmRleCA9IG5ld1RhYkluZGV4O1xuICB9XG5cbiAgLyoqXG4gICAqIFVucmVnaXN0ZXJzIGEgdGFiIGNvbXBvbmVudC5cbiAgICovXG4gIHB1YmxpYyB1bnJlZ2lzdGVyVGFiKHRhYkluZGV4OiBTa3lUYWJJbmRleCk6IHZvaWQge1xuICAgIGNvbnN0IGluZGV4ID0gdGhpcy50YWJzLmZpbmRJbmRleCh0YWIgPT4gdGhpcy50YWJJbmRleGVzRXF1YWwodGFiLnRhYkluZGV4LCB0YWJJbmRleCkpO1xuXG4gICAgLy8gTm90aWZ5IHRoZSB0YWJzZXQgY29tcG9uZW50IHdoZW4gYW4gYWN0aXZlIHRhYiBpcyB1bnJlZ2lzdGVyZWQuXG4gICAgaWYgKHRoaXMuaXNUYWJJbmRleEFjdGl2ZSh0aGlzLnRhYnNbaW5kZXhdLnRhYkluZGV4KSkge1xuICAgICAgdGhpcy5fYWN0aXZlVGFiVW5yZWdpc3RlcmVkLm5leHQoe1xuICAgICAgICBhcnJheUluZGV4OiBpbmRleFxuICAgICAgfSk7XG4gICAgfVxuXG4gICAgdGhpcy50YWJzLnNwbGljZShpbmRleCwgMSk7XG4gIH1cblxuICAvKipcbiAgICogVW5yZWdpc3RlcnMgYWxsIHRhYiBjb21wb25lbnRzIGF0IG9uY2UuXG4gICAqL1xuICBwdWJsaWMgdW5yZWdpc3RlckFsbCgpOiB2b2lkIHtcbiAgICB0aGlzLnRhYnMgPSBbXTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDb21wYXJlcyB0d28gdGFiIGluZGV4ZXMgYW5kIHJldHVybnMgYHRydWVgIGlmIHRoZXkgYXJlIGVxdWFsLlxuICAgKi9cbiAgcHVibGljIHRhYkluZGV4ZXNFcXVhbCh0YWJJbmRleDE6IFNreVRhYkluZGV4LCB0YWJJbmRleDI6IFNreVRhYkluZGV4KTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIChcbiAgICAgIHRhYkluZGV4MSA9PT0gdGFiSW5kZXgyIHx8XG4gICAgICArdGFiSW5kZXgxID09PSArdGFiSW5kZXgyXG4gICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBWZXJpZmllcyBpZiBhIHByb3ZpZGVkIHRhYiBpbmRleCBpcyByZWdpc3RlcmVkLlxuICAgKi9cbiAgcHVibGljIGlzVmFsaWRUYWJJbmRleCh0YWJJbmRleDogU2t5VGFiSW5kZXgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy50YWJzLnNvbWUodGFiID0+IHRoaXMudGFiSW5kZXhlc0VxdWFsKHRhYi50YWJJbmRleCwgdGFiSW5kZXgpKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBBY3RpdmF0ZXMgdGhlIGZpcnN0IHJlZ2lzdGVyZWQgdGFiLlxuICAgKi9cbiAgcHVibGljIGFjdGl2YXRlRmlyc3RUYWIoKTogU2t5VGFiSW5kZXggfCB1bmRlZmluZWQge1xuICAgIGNvbnN0IGZpcnN0VGFiSW5kZXggPSB0aGlzLnRhYnNbMF0gJiYgdGhpcy50YWJzWzBdLnRhYkluZGV4O1xuICAgIGlmIChmaXJzdFRhYkluZGV4ICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIHRoaXMuc2V0QWN0aXZlVGFiSW5kZXgoZmlyc3RUYWJJbmRleCk7XG4gICAgICByZXR1cm4gZmlyc3RUYWJJbmRleDtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogQWN0aXZhdGVzIHRoZSBuZXh0IHJlZ2lzdGVyZWQgdGFiLCBvciB0aGUgcHJldmlvdXMgb25lIGJhc2VkIG9uIGEgcHJvdmlkZWQgYXJyYXkgaW5kZXguXG4gICAqL1xuICBwdWJsaWMgYWN0aXZhdGVOZWFyZXN0VGFiKGFycmF5SW5kZXg6IG51bWJlcik6IHZvaWQge1xuICAgIGNvbnN0IG5ld0FjdGl2ZVRhYiA9IHRoaXMudGFic1thcnJheUluZGV4XSB8fCB0aGlzLnRhYnNbYXJyYXlJbmRleCAtIDFdO1xuICAgIGlmIChuZXdBY3RpdmVUYWIpIHtcbiAgICAgIHRoaXMuY3VycmVudEFjdGl2ZVRhYkluZGV4ID0gbmV3QWN0aXZlVGFiLnRhYkluZGV4O1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgaXNUYWJJbmRleEFjdGl2ZSh0YWJJbmRleDogU2t5VGFiSW5kZXgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy50YWJJbmRleGVzRXF1YWwodGFiSW5kZXgsIHRoaXMuY3VycmVudEFjdGl2ZVRhYkluZGV4KTtcbiAgfVxufVxuIl19
@@ -0,0 +1,76 @@
1
+ import { __decorate } from "tslib";
2
+ import { Injectable } from '@angular/core';
3
+ import { SkyMediaBreakpoints } from '@skyux/core';
4
+ import { BehaviorSubject } from 'rxjs';
5
+ /**
6
+ * @internal
7
+ */
8
+ var SkyVerticalTabMediaQueryService = /** @class */ (function () {
9
+ function SkyVerticalTabMediaQueryService() {
10
+ this.currentSubject = new BehaviorSubject(this.current);
11
+ this._current = SkyMediaBreakpoints.xs;
12
+ this.currentSubject.next(this._current);
13
+ }
14
+ Object.defineProperty(SkyVerticalTabMediaQueryService.prototype, "current", {
15
+ get: function () {
16
+ return this._current;
17
+ },
18
+ enumerable: true,
19
+ configurable: true
20
+ });
21
+ SkyVerticalTabMediaQueryService.prototype.subscribe = function (listener) {
22
+ return this.currentSubject.subscribe({
23
+ next: function (breakpoints) {
24
+ listener(breakpoints);
25
+ }
26
+ });
27
+ };
28
+ SkyVerticalTabMediaQueryService.prototype.setBreakpointForWidth = function (width) {
29
+ var breakpoint;
30
+ if (this.isWidthWithinBreakpiont(width, SkyMediaBreakpoints.xs)) {
31
+ breakpoint = SkyMediaBreakpoints.xs;
32
+ }
33
+ else if (this.isWidthWithinBreakpiont(width, SkyMediaBreakpoints.sm)) {
34
+ breakpoint = SkyMediaBreakpoints.sm;
35
+ }
36
+ else if (this.isWidthWithinBreakpiont(width, SkyMediaBreakpoints.md)) {
37
+ breakpoint = SkyMediaBreakpoints.md;
38
+ }
39
+ else {
40
+ breakpoint = SkyMediaBreakpoints.lg;
41
+ }
42
+ this._current = breakpoint;
43
+ this.currentSubject.next(this._current);
44
+ };
45
+ SkyVerticalTabMediaQueryService.prototype.isWidthWithinBreakpiont = function (width, breakpoint) {
46
+ var xsBreakpointMaxPixels = 767;
47
+ var smBreakpointMinPixels = 768;
48
+ var smBreakpointMaxPixels = 991;
49
+ var mdBreakpointMinPixels = 992;
50
+ var mdBreakpointMaxPixels = 1199;
51
+ var lgBreakpointMinPixels = 1200;
52
+ switch (breakpoint) {
53
+ case SkyMediaBreakpoints.xs: {
54
+ return (width <= xsBreakpointMaxPixels);
55
+ }
56
+ case SkyMediaBreakpoints.sm: {
57
+ return (width >= smBreakpointMinPixels && width <= smBreakpointMaxPixels);
58
+ }
59
+ case SkyMediaBreakpoints.md: {
60
+ return (width >= mdBreakpointMinPixels && width <= mdBreakpointMaxPixels);
61
+ }
62
+ default: {
63
+ return (width >= lgBreakpointMinPixels);
64
+ }
65
+ }
66
+ };
67
+ SkyVerticalTabMediaQueryService.prototype.destroy = function () {
68
+ this.currentSubject.complete();
69
+ };
70
+ SkyVerticalTabMediaQueryService = __decorate([
71
+ Injectable()
72
+ ], SkyVerticalTabMediaQueryService);
73
+ return SkyVerticalTabMediaQueryService;
74
+ }());
75
+ export { SkyVerticalTabMediaQueryService };
76
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmVydGljYWwtdGFiLW1lZGlhLXF1ZXJ5LnNlcnZpY2UuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9Ac2t5dXgvdGFicy8iLCJzb3VyY2VzIjpbIm1vZHVsZXMvdmVydGljYWwtdGFic2V0L3ZlcnRpY2FsLXRhYi1tZWRpYS1xdWVyeS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQ0wsVUFBVSxFQUNYLE1BQU0sZUFBZSxDQUFDO0FBRXZCLE9BQU8sRUFDTCxtQkFBbUIsRUFFcEIsTUFBTSxhQUFhLENBQUM7QUFFckIsT0FBTyxFQUNMLGVBQWUsRUFFaEIsTUFBTSxNQUFNLENBQUM7QUFFZDs7R0FFRztBQUVIO0lBVUU7UUFKUSxtQkFBYyxHQUFHLElBQUksZUFBZSxDQUFzQixJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7UUFFeEUsYUFBUSxHQUFHLG1CQUFtQixDQUFDLEVBQUUsQ0FBQztRQUd4QyxJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDMUMsQ0FBQztJQVZELHNCQUFXLG9EQUFPO2FBQWxCO1lBQ0UsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDO1FBQ3ZCLENBQUM7OztPQUFBO0lBVU0sbURBQVMsR0FBaEIsVUFBaUIsUUFBK0I7UUFDOUMsT0FBTyxJQUFJLENBQUMsY0FBYyxDQUFDLFNBQVMsQ0FBQztZQUNuQyxJQUFJLEVBQUUsVUFBQyxXQUFnQztnQkFDckMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1lBQ3hCLENBQUM7U0FDRixDQUFDLENBQUM7SUFDTCxDQUFDO0lBRU0sK0RBQXFCLEdBQTVCLFVBQTZCLEtBQWE7UUFDeEMsSUFBSSxVQUErQixDQUFDO1FBRXBDLElBQUksSUFBSSxDQUFDLHVCQUF1QixDQUFDLEtBQUssRUFBRSxtQkFBbUIsQ0FBQyxFQUFFLENBQUMsRUFBRTtZQUMvRCxVQUFVLEdBQUcsbUJBQW1CLENBQUMsRUFBRSxDQUFDO1NBQ3JDO2FBQU0sSUFBSSxJQUFJLENBQUMsdUJBQXVCLENBQUMsS0FBSyxFQUFFLG1CQUFtQixDQUFDLEVBQUUsQ0FBQyxFQUFFO1lBQ3RFLFVBQVUsR0FBRyxtQkFBbUIsQ0FBQyxFQUFFLENBQUM7U0FDckM7YUFBTSxJQUFJLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxLQUFLLEVBQUUsbUJBQW1CLENBQUMsRUFBRSxDQUFDLEVBQUU7WUFDdEUsVUFBVSxHQUFHLG1CQUFtQixDQUFDLEVBQUUsQ0FBQztTQUNyQzthQUFNO1lBQ0wsVUFBVSxHQUFHLG1CQUFtQixDQUFDLEVBQUUsQ0FBQztTQUNyQztRQUVELElBQUksQ0FBQyxRQUFRLEdBQUcsVUFBVSxDQUFDO1FBQzNCLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUMxQyxDQUFDO0lBRU0saUVBQXVCLEdBQTlCLFVBQStCLEtBQWEsRUFBRSxVQUErQjtRQUMzRSxJQUFNLHFCQUFxQixHQUFHLEdBQUcsQ0FBQztRQUNsQyxJQUFNLHFCQUFxQixHQUFHLEdBQUcsQ0FBQztRQUNsQyxJQUFNLHFCQUFxQixHQUFHLEdBQUcsQ0FBQztRQUNsQyxJQUFNLHFCQUFxQixHQUFHLEdBQUcsQ0FBQztRQUNsQyxJQUFNLHFCQUFxQixHQUFHLElBQUksQ0FBQztRQUNuQyxJQUFNLHFCQUFxQixHQUFHLElBQUksQ0FBQztRQUVuQyxRQUFRLFVBQVUsRUFBRTtZQUNsQixLQUFLLG1CQUFtQixDQUFDLEVBQUUsQ0FBQyxDQUFDO2dCQUMzQixPQUFPLENBQUMsS0FBSyxJQUFJLHFCQUFxQixDQUFDLENBQUM7YUFDekM7WUFDRCxLQUFLLG1CQUFtQixDQUFDLEVBQUUsQ0FBQyxDQUFDO2dCQUMzQixPQUFPLENBQUMsS0FBSyxJQUFJLHFCQUFxQixJQUFJLEtBQUssSUFBSSxxQkFBcUIsQ0FBQyxDQUFDO2FBQzNFO1lBQ0QsS0FBSyxtQkFBbUIsQ0FBQyxFQUFFLENBQUMsQ0FBQztnQkFDM0IsT0FBTyxDQUFDLEtBQUssSUFBSSxxQkFBcUIsSUFBSSxLQUFLLElBQUkscUJBQXFCLENBQUMsQ0FBQzthQUMzRTtZQUNELE9BQU8sQ0FBQyxDQUFDO2dCQUNQLE9BQU8sQ0FBQyxLQUFLLElBQUkscUJBQXFCLENBQUMsQ0FBQzthQUN6QztTQUNGO0lBQ0gsQ0FBQztJQUVNLGlEQUFPLEdBQWQ7UUFDRSxJQUFJLENBQUMsY0FBYyxDQUFDLFFBQVEsRUFBRSxDQUFDO0lBQ2pDLENBQUM7SUFqRVUsK0JBQStCO1FBRDNDLFVBQVUsRUFBRTtPQUNBLCtCQUErQixDQWtFM0M7SUFBRCxzQ0FBQztDQUFBLEFBbEVELElBa0VDO1NBbEVZLCtCQUErQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIEluamVjdGFibGVcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7XG4gIFNreU1lZGlhQnJlYWtwb2ludHMsXG4gIFNreU1lZGlhUXVlcnlMaXN0ZW5lclxufSBmcm9tICdAc2t5dXgvY29yZSc7XG5cbmltcG9ydCB7XG4gIEJlaGF2aW9yU3ViamVjdCxcbiAgU3Vic2NyaXB0aW9uXG59IGZyb20gJ3J4anMnO1xuXG4vKipcbiAqIEBpbnRlcm5hbFxuICovXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgU2t5VmVydGljYWxUYWJNZWRpYVF1ZXJ5U2VydmljZSB7XG5cbiAgcHVibGljIGdldCBjdXJyZW50KCk6IFNreU1lZGlhQnJlYWtwb2ludHMge1xuICAgIHJldHVybiB0aGlzLl9jdXJyZW50O1xuICB9XG5cbiAgcHJpdmF0ZSBjdXJyZW50U3ViamVjdCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8U2t5TWVkaWFCcmVha3BvaW50cz4odGhpcy5jdXJyZW50KTtcblxuICBwcml2YXRlIF9jdXJyZW50ID0gU2t5TWVkaWFCcmVha3BvaW50cy54cztcblxuICBjb25zdHJ1Y3RvcigpIHtcbiAgICB0aGlzLmN1cnJlbnRTdWJqZWN0Lm5leHQodGhpcy5fY3VycmVudCk7XG4gIH1cblxuICBwdWJsaWMgc3Vic2NyaWJlKGxpc3RlbmVyOiBTa3lNZWRpYVF1ZXJ5TGlzdGVuZXIpOiBTdWJzY3JpcHRpb24ge1xuICAgIHJldHVybiB0aGlzLmN1cnJlbnRTdWJqZWN0LnN1YnNjcmliZSh7XG4gICAgICBuZXh0OiAoYnJlYWtwb2ludHM6IFNreU1lZGlhQnJlYWtwb2ludHMpID0+IHtcbiAgICAgICAgbGlzdGVuZXIoYnJlYWtwb2ludHMpO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgcHVibGljIHNldEJyZWFrcG9pbnRGb3JXaWR0aCh3aWR0aDogbnVtYmVyKTogdm9pZCB7XG4gICAgbGV0IGJyZWFrcG9pbnQ6IFNreU1lZGlhQnJlYWtwb2ludHM7XG5cbiAgICBpZiAodGhpcy5pc1dpZHRoV2l0aGluQnJlYWtwaW9udCh3aWR0aCwgU2t5TWVkaWFCcmVha3BvaW50cy54cykpIHtcbiAgICAgIGJyZWFrcG9pbnQgPSBTa3lNZWRpYUJyZWFrcG9pbnRzLnhzO1xuICAgIH0gZWxzZSBpZiAodGhpcy5pc1dpZHRoV2l0aGluQnJlYWtwaW9udCh3aWR0aCwgU2t5TWVkaWFCcmVha3BvaW50cy5zbSkpIHtcbiAgICAgIGJyZWFrcG9pbnQgPSBTa3lNZWRpYUJyZWFrcG9pbnRzLnNtO1xuICAgIH0gZWxzZSBpZiAodGhpcy5pc1dpZHRoV2l0aGluQnJlYWtwaW9udCh3aWR0aCwgU2t5TWVkaWFCcmVha3BvaW50cy5tZCkpIHtcbiAgICAgIGJyZWFrcG9pbnQgPSBTa3lNZWRpYUJyZWFrcG9pbnRzLm1kO1xuICAgIH0gZWxzZSB7XG4gICAgICBicmVha3BvaW50ID0gU2t5TWVkaWFCcmVha3BvaW50cy5sZztcbiAgICB9XG5cbiAgICB0aGlzLl9jdXJyZW50ID0gYnJlYWtwb2ludDtcbiAgICB0aGlzLmN1cnJlbnRTdWJqZWN0Lm5leHQodGhpcy5fY3VycmVudCk7XG4gIH1cblxuICBwdWJsaWMgaXNXaWR0aFdpdGhpbkJyZWFrcGlvbnQod2lkdGg6IG51bWJlciwgYnJlYWtwb2ludDogU2t5TWVkaWFCcmVha3BvaW50cyk6IGJvb2xlYW4ge1xuICAgIGNvbnN0IHhzQnJlYWtwb2ludE1heFBpeGVscyA9IDc2NztcbiAgICBjb25zdCBzbUJyZWFrcG9pbnRNaW5QaXhlbHMgPSA3Njg7XG4gICAgY29uc3Qgc21CcmVha3BvaW50TWF4UGl4ZWxzID0gOTkxO1xuICAgIGNvbnN0IG1kQnJlYWtwb2ludE1pblBpeGVscyA9IDk5MjtcbiAgICBjb25zdCBtZEJyZWFrcG9pbnRNYXhQaXhlbHMgPSAxMTk5O1xuICAgIGNvbnN0IGxnQnJlYWtwb2ludE1pblBpeGVscyA9IDEyMDA7XG5cbiAgICBzd2l0Y2ggKGJyZWFrcG9pbnQpIHtcbiAgICAgIGNhc2UgU2t5TWVkaWFCcmVha3BvaW50cy54czoge1xuICAgICAgICByZXR1cm4gKHdpZHRoIDw9IHhzQnJlYWtwb2ludE1heFBpeGVscyk7XG4gICAgICB9XG4gICAgICBjYXNlIFNreU1lZGlhQnJlYWtwb2ludHMuc206IHtcbiAgICAgICAgcmV0dXJuICh3aWR0aCA+PSBzbUJyZWFrcG9pbnRNaW5QaXhlbHMgJiYgd2lkdGggPD0gc21CcmVha3BvaW50TWF4UGl4ZWxzKTtcbiAgICAgIH1cbiAgICAgIGNhc2UgU2t5TWVkaWFCcmVha3BvaW50cy5tZDoge1xuICAgICAgICByZXR1cm4gKHdpZHRoID49IG1kQnJlYWtwb2ludE1pblBpeGVscyAmJiB3aWR0aCA8PSBtZEJyZWFrcG9pbnRNYXhQaXhlbHMpO1xuICAgICAgfVxuICAgICAgZGVmYXVsdDoge1xuICAgICAgICByZXR1cm4gKHdpZHRoID49IGxnQnJlYWtwb2ludE1pblBpeGVscyk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy5jdXJyZW50U3ViamVjdC5jb21wbGV0ZSgpO1xuICB9XG59XG4iXX0=
@@ -0,0 +1,214 @@
1
+ import { __decorate } from "tslib";
2
+ import { ChangeDetectionStrategy, ChangeDetectorRef, Component, ElementRef, HostListener, Input, OnDestroy, OnInit, ViewChild } from '@angular/core';
3
+ import { SkyMediaQueryService } from '@skyux/core';
4
+ import { Subject } from 'rxjs';
5
+ import { takeUntil } from 'rxjs/operators';
6
+ import { SkyVerticalTabMediaQueryService } from './vertical-tab-media-query.service';
7
+ import { SkyVerticalTabsetService } from './vertical-tabset.service';
8
+ import { SkyVerticalTabsetAdapterService } from './vertical-tabset-adapter.service';
9
+ var SkyVerticalTabComponent = /** @class */ (function () {
10
+ function SkyVerticalTabComponent(adapterService, changeRef, tabsetService, verticalTabMediaQueryService) {
11
+ this.adapterService = adapterService;
12
+ this.changeRef = changeRef;
13
+ this.tabsetService = tabsetService;
14
+ this.verticalTabMediaQueryService = verticalTabMediaQueryService;
15
+ /**
16
+ * Indicates whether the tab is active when the tabset loads.
17
+ */
18
+ this.active = false;
19
+ /**
20
+ * Indicates whether to disable the tab.
21
+ */
22
+ this.disabled = false;
23
+ /**
24
+ * Indicates whether to indicate that the tab has an error.
25
+ * @internal This is used for sectioned forms and is not currently a supported design for pure vertical tabs.
26
+ */
27
+ this.errorIndicator = false;
28
+ this.isMobile = false;
29
+ this._contentRendered = false;
30
+ this._mobileSubscription = new Subject();
31
+ this._ngUnsubscribe = new Subject();
32
+ this._showTabRightArrow = false;
33
+ }
34
+ Object.defineProperty(SkyVerticalTabComponent.prototype, "ariaControls", {
35
+ /**
36
+ * Specifies the HTML element ID (without the leading `#`) of the element that contains
37
+ * the content that the vertical tab displays, which corresponds to the `tabId`. This property
38
+ * [supports accessibility rules for disclosures](https://www.w3.org/TR/wai-aria-practices-1.1/#disclosure).
39
+ */
40
+ get: function () {
41
+ return this.isMobile ? undefined : this._ariaControls;
42
+ },
43
+ set: function (value) {
44
+ this._ariaControls = value;
45
+ },
46
+ enumerable: true,
47
+ configurable: true
48
+ });
49
+ Object.defineProperty(SkyVerticalTabComponent.prototype, "ariaRole", {
50
+ /**
51
+ * Specifies an ARIA role for the vertical tab
52
+ * [to support accessibility](https://developer.blackbaud.com/skyux/learn/accessibility)
53
+ * by indicating how the tab functions and what it controls. For information about how
54
+ * an ARIA role indicates what an item represents on a web page, see the
55
+ * [WAI-ARIA roles model](https://www.w3.org/WAI/PF/aria/roles).
56
+ * @default "tab"
57
+ */
58
+ get: function () {
59
+ if (this.isMobile) {
60
+ return undefined;
61
+ }
62
+ return this._ariaRole || 'tab';
63
+ },
64
+ set: function (value) {
65
+ this._ariaRole = value;
66
+ },
67
+ enumerable: true,
68
+ configurable: true
69
+ });
70
+ Object.defineProperty(SkyVerticalTabComponent.prototype, "showTabRightArrow", {
71
+ /**
72
+ * Indicates whether to display a chevron-right icon in the righthand side of the tab.
73
+ * @internal
74
+ */
75
+ get: function () {
76
+ return this._showTabRightArrow && this.tabsetService.isMobile();
77
+ },
78
+ set: function (value) {
79
+ this._showTabRightArrow = value;
80
+ },
81
+ enumerable: true,
82
+ configurable: true
83
+ });
84
+ Object.defineProperty(SkyVerticalTabComponent.prototype, "contentRendered", {
85
+ get: function () {
86
+ return this._contentRendered;
87
+ },
88
+ set: function (value) {
89
+ var _this = this;
90
+ this._contentRendered = value;
91
+ if (this._contentRendered) {
92
+ // NOTE: Wrapped in a setTimeout here to ensure that everything has completed rendering.
93
+ setTimeout(function () {
94
+ _this.updateBreakpointAndResponsiveClass(_this.adapterService.getWidth(_this.tabContent));
95
+ });
96
+ }
97
+ },
98
+ enumerable: true,
99
+ configurable: true
100
+ });
101
+ SkyVerticalTabComponent.prototype.ngOnInit = function () {
102
+ var _this = this;
103
+ this.isMobile = this.tabsetService.isMobile();
104
+ this.changeRef.markForCheck();
105
+ this.tabsetService.switchingMobile
106
+ .subscribe(function (mobile) {
107
+ _this.isMobile = mobile;
108
+ _this.changeRef.markForCheck();
109
+ });
110
+ // Update the breakpoint and responsive class here just as a sanity check since we can not
111
+ // watch for element resizing.
112
+ this.tabsetService.indexChanged
113
+ .pipe(takeUntil(this._ngUnsubscribe))
114
+ .subscribe(function (index) {
115
+ if (_this.index === index && _this.contentRendered) {
116
+ _this.updateBreakpointAndResponsiveClass(_this.adapterService.getWidth(_this.tabContent));
117
+ }
118
+ });
119
+ this.tabsetService.addTab(this);
120
+ };
121
+ SkyVerticalTabComponent.prototype.ngOnDestroy = function () {
122
+ this._mobileSubscription.unsubscribe();
123
+ this._ngUnsubscribe.next();
124
+ this._ngUnsubscribe.complete();
125
+ this.tabsetService.destroyTab(this);
126
+ };
127
+ SkyVerticalTabComponent.prototype.tabIndex = function () {
128
+ if (!this.disabled) {
129
+ return 0;
130
+ }
131
+ else {
132
+ return -1;
133
+ }
134
+ };
135
+ SkyVerticalTabComponent.prototype.activateTab = function () {
136
+ if (!this.disabled) {
137
+ this.active = true;
138
+ this.tabsetService.activateTab(this);
139
+ this.changeRef.markForCheck();
140
+ }
141
+ };
142
+ SkyVerticalTabComponent.prototype.onWindowResize = function () {
143
+ this.updateBreakpointAndResponsiveClass(this.adapterService.getWidth(this.tabContent));
144
+ };
145
+ SkyVerticalTabComponent.prototype.tabDeactivated = function () {
146
+ this.changeRef.markForCheck();
147
+ };
148
+ SkyVerticalTabComponent.prototype.updateBreakpointAndResponsiveClass = function (width) {
149
+ this.verticalTabMediaQueryService.setBreakpointForWidth(width);
150
+ var newBreakpiont = this.verticalTabMediaQueryService.current;
151
+ this.adapterService.setResponsiveClass(this.tabContent, newBreakpiont);
152
+ this.changeRef.markForCheck();
153
+ };
154
+ SkyVerticalTabComponent.ctorParameters = function () { return [
155
+ { type: SkyVerticalTabsetAdapterService },
156
+ { type: ChangeDetectorRef },
157
+ { type: SkyVerticalTabsetService },
158
+ { type: SkyVerticalTabMediaQueryService }
159
+ ]; };
160
+ __decorate([
161
+ Input()
162
+ ], SkyVerticalTabComponent.prototype, "active", void 0);
163
+ __decorate([
164
+ Input()
165
+ ], SkyVerticalTabComponent.prototype, "ariaControls", null);
166
+ __decorate([
167
+ Input()
168
+ ], SkyVerticalTabComponent.prototype, "ariaInvalid", void 0);
169
+ __decorate([
170
+ Input()
171
+ ], SkyVerticalTabComponent.prototype, "ariaRequired", void 0);
172
+ __decorate([
173
+ Input()
174
+ ], SkyVerticalTabComponent.prototype, "ariaRole", null);
175
+ __decorate([
176
+ Input()
177
+ ], SkyVerticalTabComponent.prototype, "disabled", void 0);
178
+ __decorate([
179
+ Input()
180
+ ], SkyVerticalTabComponent.prototype, "errorIndicator", void 0);
181
+ __decorate([
182
+ Input()
183
+ ], SkyVerticalTabComponent.prototype, "tabHeaderCount", void 0);
184
+ __decorate([
185
+ Input()
186
+ ], SkyVerticalTabComponent.prototype, "tabHeading", void 0);
187
+ __decorate([
188
+ Input()
189
+ ], SkyVerticalTabComponent.prototype, "showTabRightArrow", null);
190
+ __decorate([
191
+ Input()
192
+ ], SkyVerticalTabComponent.prototype, "tabId", void 0);
193
+ __decorate([
194
+ ViewChild('tabContentWrapper')
195
+ ], SkyVerticalTabComponent.prototype, "tabContent", void 0);
196
+ __decorate([
197
+ HostListener('window:resize')
198
+ ], SkyVerticalTabComponent.prototype, "onWindowResize", null);
199
+ SkyVerticalTabComponent = __decorate([
200
+ Component({
201
+ selector: 'sky-vertical-tab',
202
+ template: "<a\n class=\"sky-vertical-tab\"\n [attr.aria-controls]=\"ariaControls\"\n [attr.aria-invalid]=\"ariaInvalid\"\n [attr.aria-required]=\"ariaRequired ? ariaRequired : null\"\n [attr.aria-selected]=\"active\"\n [attr.id]=\"tabId\"\n [attr.role]=\"ariaRole\"\n [ngClass]=\"{\n 'sky-vertical-tab-active': active,\n 'sky-vertical-tab-disabled': disabled,\n 'sky-deemphasized': disabled\n }\"\n [tabIndex]=\"tabIndex()\"\n (click)=\"activateTab()\"\n (keyup.enter)=\"activateTab()\">\n <div class=\"sky-vertical-tab-display\">\n <div class=\"sky-vertical-tab-heading\">\n <span class=\"sky-vertical-tab-heading-value\">{{ tabHeading }}</span>\n <span\n class=\"sky-vertical-tab-count\"\n *ngIf=\"tabHeaderCount || tabHeaderCount === 0\">\n ({{ tabHeaderCount }})\n </span>\n </div>\n <sky-status-indicator *ngIf=\"errorIndicator\"\n class=\"sky-vertical-tab-heading-error\"\n descriptionType=\"error\"\n indicatorType=\"danger\"\n ></sky-status-indicator>\n\n <sky-icon\n *ngIf=\"showTabRightArrow\"\n class=\"sky-vertical-tab-right-arrow\"\n icon=\"chevron-right\"\n >\n </sky-icon>\n </div>\n</a>\n\n<div\n #tabContentWrapper\n>\n <div\n class=\"sky-vertical-tab-content-pane\"\n [ngClass]=\"{'sky-vertical-tab-hidden': !active}\"\n >\n\n <ng-content></ng-content>\n\n <div>\n\n</div>\n\n",
203
+ providers: [
204
+ SkyVerticalTabMediaQueryService,
205
+ { provide: SkyMediaQueryService, useExisting: SkyVerticalTabMediaQueryService }
206
+ ],
207
+ changeDetection: ChangeDetectionStrategy.OnPush,
208
+ styles: [".sky-vertical-tab{cursor:pointer;padding:7px 0 7px 10px;margin:5px 0 5px 10px;display:flex;text-decoration:none}.sky-vertical-tab:not(.sky-deemphasized){color:#212327}.sky-vertical-tab:hover{background-color:#eeeeef}.sky-vertical-tab:focus{outline:dotted thin;outline:-webkit-focus-ring-color auto 5px}.sky-vertical-tab:hover .sky-vertical-tab-right-arrow{color:#979ba2}.sky-vertical-tab-active{background-color:#eeeeef;color:#212327;padding-left:6px;border-left:4px solid #00b4f1}.sky-vertical-tab-hidden{display:none}.sky-vertical-tab-display{display:flex;flex-grow:1}.sky-vertical-tab-heading-error{padding-left:5px}.sky-vertical-tab-count{margin-left:5px}.sky-vertical-tab-disabled{cursor:not-allowed;pointer-events:none;font-style:normal}.sky-vertical-tab-right-arrow{padding:3px 10px 0 0;color:#cdcfd2}.sky-theme-modern .sky-vertical-tab,:host-context(.sky-theme-modern) .sky-vertical-tab{cursor:pointer;padding:10px 0 10px 10px;margin:10px 0 20px 10px}.sky-theme-modern .sky-vertical-tab:not(.sky-vertical-tab-active):not(:active):hover,:host-context(.sky-theme-modern) .sky-vertical-tab:not(.sky-vertical-tab-active):not(:active):hover{color:#212327;background-color:transparent;padding-left:9px;border-left:1px solid #00b4f1}.sky-theme-modern .sky-vertical-tab:not(:active):focus,:host-context(.sky-theme-modern) .sky-vertical-tab:not(:active):focus{outline:#1870b8 solid 2px;outline-offset:-2px;box-shadow:0 1px 8px 0 rgba(0,0,0,.3)}.sky-theme-modern .sky-vertical-tab:focus:active:hover,:host-context(.sky-theme-modern) .sky-vertical-tab:focus:active:hover{outline:0;background:0 0}.sky-theme-modern .sky-vertical-tab:active,:host-context(.sky-theme-modern) .sky-vertical-tab:active{border-left:3px solid #00b4f1;padding-left:7px}.sky-theme-modern .sky-vertical-tab .sky-vertical-tab-heading-error,:host-context(.sky-theme-modern) .sky-vertical-tab .sky-vertical-tab-heading-error{padding-left:10px}.sky-theme-modern .sky-vertical-tab-active,:host-context(.sky-theme-modern) .sky-vertical-tab-active{background:0 0;padding-left:7px;border-left:3px solid #1870b8}"]
209
+ })
210
+ ], SkyVerticalTabComponent);
211
+ return SkyVerticalTabComponent;
212
+ }());
213
+ export { SkyVerticalTabComponent };
214
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmVydGljYWwtdGFiLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0Bza3l1eC90YWJzLyIsInNvdXJjZXMiOlsibW9kdWxlcy92ZXJ0aWNhbC10YWJzZXQvdmVydGljYWwtdGFiLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUNMLHVCQUF1QixFQUN2QixpQkFBaUIsRUFDakIsU0FBUyxFQUNULFVBQVUsRUFDVixZQUFZLEVBQ1osS0FBSyxFQUNMLFNBQVMsRUFDVCxNQUFNLEVBQ04sU0FBUyxFQUNWLE1BQU0sZUFBZSxDQUFDO0FBRXZCLE9BQU8sRUFDTCxvQkFBb0IsRUFDckIsTUFBTSxhQUFhLENBQUM7QUFFckIsT0FBTyxFQUNMLE9BQU8sRUFDUixNQUFNLE1BQU0sQ0FBQztBQUVkLE9BQU8sRUFDTCxTQUFTLEVBQ1YsTUFBTSxnQkFBZ0IsQ0FBQztBQUV4QixPQUFPLEVBQ0wsK0JBQStCLEVBQ2hDLE1BQU0sb0NBQW9DLENBQUM7QUFFNUMsT0FBTyxFQUNMLHdCQUF3QixFQUN6QixNQUFNLDJCQUEyQixDQUFDO0FBRW5DLE9BQU8sRUFDTCwrQkFBK0IsRUFDaEMsTUFBTSxtQ0FBbUMsQ0FBQztBQVkzQztJQWtJRSxpQ0FDVSxjQUErQyxFQUMvQyxTQUE0QixFQUM1QixhQUF1QyxFQUN2Qyw0QkFBNkQ7UUFIN0QsbUJBQWMsR0FBZCxjQUFjLENBQWlDO1FBQy9DLGNBQVMsR0FBVCxTQUFTLENBQW1CO1FBQzVCLGtCQUFhLEdBQWIsYUFBYSxDQUEwQjtRQUN2QyxpQ0FBNEIsR0FBNUIsNEJBQTRCLENBQWlDO1FBckl2RTs7V0FFRztRQUVJLFdBQU0sR0FBWSxLQUFLLENBQUM7UUE4Qy9COztXQUVHO1FBRUksYUFBUSxHQUFZLEtBQUssQ0FBQztRQUVqQzs7O1dBR0c7UUFFSSxtQkFBYyxHQUFZLEtBQUssQ0FBQztRQXNEL0IsYUFBUSxHQUFHLEtBQUssQ0FBQztRQU1qQixxQkFBZ0IsR0FBWSxLQUFL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QjtnQkFDYix3QkFBd0I7Z0JBQ1QsK0JBQStCOztJQWpJdkU7UUFEQyxLQUFLLEVBQUU7MkRBQ3VCO0lBUS9CO1FBREMsS0FBSyxFQUFFOytEQUdQO0lBU0Q7UUFEQyxLQUFLLEVBQUU7Z0VBQ29CO0lBTTVCO1FBREMsS0FBSyxFQUFFO2lFQUNxQjtJQVc3QjtRQURDLEtBQUssRUFBRTsyREFNUDtJQVNEO1FBREMsS0FBSyxFQUFFOzZEQUN5QjtJQU9qQztRQURDLEtBQUssRUFBRTttRUFDK0I7SUFNdkM7UUFEQyxLQUFLLEVBQUU7bUVBQ3NCO0lBTzlCO1FBREMsS0FBSyxFQUFFOytEQUNrQjtJQU8xQjtRQURDLEtBQUssRUFBRTtvRUFHUDtJQVVEO1FBREMsS0FBSyxFQUFFOzBEQUNhO0lBb0JyQjtRQURDLFNBQVMsQ0FBQyxtQkFBbUIsQ0FBQzsrREFDRDtJQXVFOUI7UUFEQyxZQUFZLENBQUMsZUFBZSxDQUFDO2lFQUc3QjtJQTNMVSx1QkFBdUI7UUFWbkMsU0FBUyxDQUFDO1lBQ1QsUUFBUSxFQUFFLGtCQUFrQjtZQUM1QiwwNENBQTRDO1lBRTVDLFNBQVMsRUFBRTtnQkFDVCwrQkFBK0I7Z0JBQy9CLEVBQUUsT0FBTyxFQUFFLG9CQUFvQixFQUFFLFdBQVcsRUFBRSwrQkFBK0IsRUFBRTthQUNoRjtZQUNELGVBQWUsRUFBRSx1QkFBdUIsQ0FBQyxNQUFNOztTQUNoRCxDQUFDO09BQ1csdUJBQXVCLENBME1uQztJQUFELDhCQUFDO0NBQUEsQUExTUQsSUEwTUM7U0ExTVksdUJBQXVCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENoYW5nZURldGVjdG9yUmVmLFxuICBDb21wb25lbnQsXG4gIEVsZW1lbnRSZWYsXG4gIEhvc3RMaXN0ZW5lcixcbiAgSW5wdXQsXG4gIE9uRGVzdHJveSxcbiAgT25Jbml0LFxuICBWaWV3Q2hpbGRcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7XG4gIFNreU1lZGlhUXVlcnlTZXJ2aWNlXG59IGZyb20gJ0Bza3l1eC9jb3JlJztcblxuaW1wb3J0IHtcbiAgU3ViamVjdFxufSBmcm9tICdyeGpzJztcblxuaW1wb3J0IHtcbiAgdGFrZVVudGlsXG59IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuaW1wb3J0IHtcbiAgU2t5VmVydGljYWxUYWJNZWRpYVF1ZXJ5U2VydmljZVxufSBmcm9tICcuL3ZlcnRpY2FsLXRhYi1tZWRpYS1xdWVyeS5zZXJ2aWNlJztcblxuaW1wb3J0IHtcbiAgU2t5VmVydGljYWxUYWJzZXRTZXJ2aWNlXG59IGZyb20gJy4vdmVydGljYWwtdGFic2V0LnNlcnZpY2UnO1xuXG5pbXBvcnQge1xuICBTa3lWZXJ0aWNhbFRhYnNldEFkYXB0ZXJTZXJ2aWNlXG59IGZyb20gJy4vdmVydGljYWwtdGFic2V0LWFkYXB0ZXIuc2VydmljZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3NreS12ZXJ0aWNhbC10YWInLFxuICB0ZW1wbGF0ZVVybDogJy4vdmVydGljYWwtdGFiLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vdmVydGljYWwtdGFiLmNvbXBvbmVudC5zY3NzJ10sXG4gIHByb3ZpZGVyczogW1xuICAgIFNreVZlcnRpY2FsVGFiTWVkaWFRdWVyeVNlcnZpY2UsXG4gICAgeyBwcm92aWRlOiBTa3lNZWRpYVF1ZXJ5U2VydmljZSwgdXNlRXhpc3Rpbmc6IFNreVZlcnRpY2FsVGFiTWVkaWFRdWVyeVNlcnZpY2UgfVxuICBdLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaFxufSlcbmV4cG9ydCBjbGFzcyBTa3lWZXJ0aWNhbFRhYkNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcbiAgLyoqXG4gICAqIEluZGljYXRlcyB3aGV0aGVyIHRoZSB0YWIgaXMgYWN0aXZlIHdoZW4gdGhlIHRhYnNldCBsb2Fkcy5cbiAgICovXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBhY3RpdmU6IGJvb2xlYW4gPSBmYWxzZTtcblxuICAvKipcbiAgICogU3BlY2lmaWVzIHRoZSBIVE1MIGVsZW1lbnQgSUQgKHdpdGhvdXQgdGhlIGxlYWRpbmcgYCNgKSBvZiB0aGUgZWxlbWVudCB0aGF0IGNvbnRhaW5zXG4gICAqIHRoZSBjb250ZW50IHRoYXQgdGhlIHZlcnRpY2FsIHRhYiBkaXNwbGF5cywgd2hpY2ggY29ycmVzcG9uZHMgdG8gdGhlIGB0YWJJZGAuIFRoaXMgcHJvcGVydHlcbiAgICogW3N1cHBvcnRzIGFjY2Vzc2liaWxpdHkgcnVsZXMgZm9yIGRpc2Nsb3N1cmVzXShodHRwczovL3d3dy53My5vcmcvVFIvd2FpLWFyaWEtcHJhY3RpY2VzLTEuMS8jZGlzY2xvc3VyZSkuXG4gICAqL1xuICBASW5wdXQoKVxuICBwdWJsaWMgZ2V0IGFyaWFDb250cm9scygpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLmlzTW9iaWxlID8gdW5kZWZpbmVkIDogdGhpcy5fYXJpYUNvbnRyb2xzO1xuICB9XG4gIHB1YmxpYyBzZXQgYXJpYUNvbnRyb2xzKHZhbHVlOiBzdHJpbmcpIHtcbiAgICB0aGlzLl9hcmlhQ29udHJvbHMgPSB2YWx1ZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBAaW50ZXJuYWxcbiAgICovXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBhcmlhSW52YWxpZDogYm9vbGVhbjtcblxuICAvKipcbiAgICogQGludGVybmFsXG4gICAqL1xuICBASW5wdXQoKVxuICBwdWJsaWMgYXJpYVJlcXVpcmVkOiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBTcGVjaWZpZXMgYW4gQVJJQSByb2xlIGZvciB0aGUgdmVydGljYWwgdGFiXG4gICAqIFt0byBzdXBwb3J0IGFjY2Vzc2liaWxpdHldKGh0dHBzOi8vZGV2ZWxvcGVyLmJsYWNrYmF1ZC5jb20vc2t5dXgvbGVhcm4vYWNjZXNzaWJpbGl0eSlcbiAgICogYnkgaW5kaWNhdGluZyBob3cgdGhlIHRhYiBmdW5jdGlvbnMgYW5kIHdoYXQgaXQgY29udHJvbHMuIEZvciBpbmZvcm1hdGlvbiBhYm91dCBob3dcbiAgICogYW4gQVJJQSByb2xlIGluZGljYXRlcyB3aGF0IGFuIGl0ZW0gcmVwcmVzZW50cyBvbiBhIHdlYiBwYWdlLCBzZWUgdGhlXG4gICAqIFtXQUktQVJJQSByb2xlcyBtb2RlbF0oaHR0cHM6Ly93d3cudzMub3JnL1dBSS9QRi9hcmlhL3JvbGVzKS5cbiAgICogQGRlZmF1bHQgXCJ0YWJcIlxuICAgKi9cbiAgQElucHV0KClcbiAgcHVibGljIGdldCBhcmlhUm9sZSgpOiBzdHJpbmcge1xuICAgIGlmICh0aGlzLmlzTW9iaWxlKSB7XG4gICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgIH1cbiAgICByZXR1cm4gdGhpcy5fYXJpYVJvbGUgfHwgJ3RhYic7XG4gIH1cbiAgcHVibGljIHNldCBhcmlhUm9sZSh2YWx1ZTogc3RyaW5nKSB7XG4gICAgdGhpcy5fYXJpYVJvbGUgPSB2YWx1ZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBJbmRpY2F0ZXMgd2hldGhlciB0byBkaXNhYmxlIHRoZSB0YWIuXG4gICAqL1xuICBASW5wdXQoKVxuICBwdWJsaWMgZGlzYWJsZWQ6IGJvb2xlYW4gPSBmYWxzZTtcblxuICAvKipcbiAgICogSW5kaWNhdGVzIHdoZXRoZXIgdG8gaW5kaWNhdGUgdGhhdCB0aGUgdGFiIGhhcyBhbiBlcnJvci5cbiAgICogQGludGVybmFsIFRoaXMgaXMgdXNlZCBmb3Igc2VjdGlvbmVkIGZvcm1zIGFuZCBpcyBub3QgY3VycmVudGx5IGEgc3VwcG9ydGVkIGRlc2lnbiBmb3IgcHVyZSB2ZXJ0aWNhbCB0YWJzLlxuICAgKi9cbiAgQElucHV0KClcbiAgcHVibGljIGVycm9ySW5kaWNhdG9yOiBib29sZWFuID0gZmFsc2U7XG5cbiAgLyoqXG4gICAqIERpc3BsYXlzIGFuIGl0ZW0gY291bnQgYWxvbmdzaWRlIHRoZSB0YWIgaGVhZGVyIHRvIGluZGljYXRlIGhvdyBtYW55IGxpc3QgaXRlbXMgdGhlIHRhYiBjb250YWlucy5cbiAgICovXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyB0YWJIZWFkZXJDb3VudDogbnVtYmVyO1xuXG4gIC8qKlxuICAgKiBTcGVjaWZpZXMgdGhlIHRhYiBoZWFkZXIuXG4gICAqIEByZXF1aXJlZFxuICAgKi9cbiAgQElucHV0KClcbiAgcHVibGljIHRhYkhlYWRpbmc6IHN0cmluZztcblxuICAvKipcbiAgICogSW5kaWNhdGVzIHdoZXRoZXIgdG8gZGlzcGxheSBhIGNoZXZyb24tcmlnaHQgaWNvbiBpbiB0aGUgcmlnaHRoYW5kIHNpZGUgb2YgdGhlIHRhYi5cbiAgICogQGludGVybmFsXG4gICAqL1xuICBASW5wdXQoKVxuICBwdWJsaWMgZ2V0IHNob3dUYWJSaWdodEFycm93KCkge1xuICAgIHJldHVybiB0aGlzLl9zaG93VGFiUmlnaHRBcnJvdyAmJiB0aGlzLnRhYnNldFNlcnZpY2UuaXNNb2JpbGUoKTtcbiAgfVxuXG4gIHB1YmxpYyBzZXQgc2hvd1RhYlJpZ2h0QXJyb3codmFsdWU6IGJvb2xlYW4pIHtcbiAgICB0aGlzLl9zaG93VGFiUmlnaHRBcnJvdyA9IHZhbHVlO1xuICB9XG5cbiAgLyoqXG4gICAqIFNwZWNpZmllcyBhbiBJRCBmb3IgdGhlIHRhYi5cbiAgICovXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyB0YWJJZDogc3RyaW5nO1xuXG4gIHB1YmxpYyBzZXQgY29udGVudFJlbmRlcmVkKHZhbHVlOiBib29sZWFuKSB7XG4gICAgdGhpcy5fY29udGVudFJlbmRlcmVkID0gdmFsdWU7XG5cbiAgICBpZiAodGhpcy5fY29udGVudFJlbmRlcmVkKSB7XG4gICAgICAvLyBOT1RFOiBXcmFwcGVkIGluIGEgc2V0VGltZW91dCBoZXJlIHRvIGVuc3VyZSB0aGF0IGV2ZXJ5dGhpbmcgaGFzIGNvbXBsZXRlZCByZW5kZXJpbmcuXG4gICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgdGhpcy51cGRhdGVCcmVha3BvaW50QW5kUmVzcG9uc2l2ZUNsYXNzKHRoaXMuYWRhcHRlclNlcnZpY2UuZ2V0V2lkdGgodGhpcy50YWJDb250ZW50KSk7XG4gICAgICB9KTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgZ2V0IGNvbnRlbnRSZW5kZXJlZCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5fY29udGVudFJlbmRlcmVkO1xuICB9XG5cbiAgcHVibGljIGluZGV4OiBudW1iZXI7XG5cbiAgQFZpZXdDaGlsZCgndGFiQ29udGVudFdyYXBwZXInKVxuICBwdWJsaWMgdGFiQ29udGVudDogRWxlbWVudFJlZjtcblxuICBwcml2YXRlIGlzTW9iaWxlID0gZmFsc2U7XG5cbiAgcHJpdmF0ZSBfYXJpYUNvbnRyb2xzOiBzdHJpbmc7XG5cbiAgcHJpdmF0ZSBfYXJpYVJvbGU6IHN0cmluZztcblxuICBwcml2YXRlIF9jb250ZW50UmVuZGVyZWQ6IGJvb2xlYW4gPSBmYWxzZTtcblxuICBwcml2YXRlIF9tb2JpbGVTdWJzY3JpcHRpb24gPSBuZXcgU3ViamVjdCgpO1xuXG4gIHByaXZhdGUgX25nVW5zdWJzY3JpYmUgPSBuZXcgU3ViamVjdCgpO1xuXG4gIHByaXZhdGUgX3Nob3dUYWJSaWdodEFycm93OiBib29sZWFuID0gZmFsc2U7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBhZGFwdGVyU2VydmljZTogU2t5VmVydGljYWxUYWJzZXRBZGFwdGVyU2VydmljZSxcbiAgICBwcml2YXRlIGNoYW5nZVJlZjogQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgcHJpdmF0ZSB0YWJzZXRTZXJ2aWNlOiBTa3lWZXJ0aWNhbFRhYnNldFNlcnZpY2UsXG4gICAgcHJpdmF0ZSB2ZXJ0aWNhbFRhYk1lZGlhUXVlcnlTZXJ2aWNlOiBTa3lWZXJ0aWNhbFRhYk1lZGlhUXVlcnlTZXJ2aWNlXG4gICkge31cblxuICBwdWJsaWMgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5pc01vYmlsZSA9IHRoaXMudGFic2V0U2VydmljZS5pc01vYmlsZSgpO1xuICAgIHRoaXMuY2hhbmdlUmVmLm1hcmtGb3JDaGVjaygpO1xuXG4gICAgdGhpcy50YWJzZXRTZXJ2aWNlLnN3aXRjaGluZ01vYmlsZVxuICAgICAgLnN1YnNjcmliZSgobW9iaWxlOiBib29sZWFuKSA9PiB7XG4gICAgICAgIHRoaXMuaXNNb2JpbGUgPSBtb2JpbGU7XG4gICAgICAgIHRoaXMuY2hhbmdlUmVmLm1hcmtGb3JDaGVjaygpO1xuICAgICAgfSk7XG5cbiAgICAvLyBVcGRhdGUgdGhlIGJyZWFrcG9pbnQgYW5kIHJlc3BvbnNpdmUgY2xhc3MgaGVyZSBqdXN0IGFzIGEgc2FuaXR5IGNoZWNrIHNpbmNlIHdlIGNhbiBub3RcbiAgICAvLyB3YXRjaCBmb3IgZWxlbWVudCByZXNpemluZy5cbiAgICB0aGlzLnRhYnNldFNlcnZpY2UuaW5kZXhDaGFuZ2VkXG4gICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5fbmdVbnN1YnNjcmliZSkpXG4gICAgICAuc3Vic2NyaWJlKChpbmRleCkgPT4ge1xuICAgICAgICBpZiAodGhpcy5pbmRleCA9PT0gaW5kZXggJiYgdGhpcy5jb250ZW50UmVuZGVyZWQpIHtcbiAgICAgICAgICB0aGlzLnVwZGF0ZUJyZWFrcG9pbnRBbmRSZXNwb25zaXZlQ2xhc3ModGhpcy5hZGFwdGVyU2VydmljZS5nZXRXaWR0aCh0aGlzLnRhYkNvbnRlbnQpKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG5cbiAgICB0aGlzLnRhYnNldFNlcnZpY2UuYWRkVGFiKHRoaXMpO1xuICB9XG5cbiAgcHVibGljIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuX21vYmlsZVN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xuICAgIHRoaXMuX25nVW5zdWJzY3JpYmUubmV4dCgpO1xuICAgIHRoaXMuX25nVW5zdWJzY3JpYmUuY29tcGxldGUoKTtcbiAgICB0aGlzLnRhYnNldFNlcnZpY2UuZGVzdHJveVRhYih0aGlzKTtcbiAgfVxuXG4gIHB1YmxpYyB0YWJJbmRleCgpOiBudW1iZXIge1xuICAgIGlmICghdGhpcy5kaXNhYmxlZCkge1xuICAgICAgcmV0dXJuIDA7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiAtMTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgYWN0aXZhdGVUYWIoKTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLmRpc2FibGVkKSB7XG4gICAgICB0aGlzLmFjdGl2ZSA9IHRydWU7XG4gICAgICB0aGlzLnRhYnNldFNlcnZpY2UuYWN0aXZhdGVUYWIodGhpcyk7XG5cbiAgICAgIHRoaXMuY2hhbmdlUmVmLm1hcmtGb3JDaGVjaygpO1xuICAgIH1cbiAgfVxuXG4gIEBIb3N0TGlzdGVuZXIoJ3dpbmRvdzpyZXNpemUnKVxuICBwdWJsaWMgb25XaW5kb3dSZXNpemUoKTogdm9pZCB7XG4gICAgdGhpcy51cGRhdGVCcmVha3BvaW50QW5kUmVzcG9uc2l2ZUNsYXNzKHRoaXMuYWRhcHRlclNlcnZpY2UuZ2V0V2lkdGgodGhpcy50YWJDb250ZW50KSk7XG4gIH1cblxuICBwdWJsaWMgdGFiRGVhY3RpdmF0ZWQoKTogdm9pZCB7XG4gICAgdGhpcy5jaGFuZ2VSZWYubWFya0ZvckNoZWNrKCk7XG4gIH1cblxuICBwcml2YXRlIHVwZGF0ZUJyZWFrcG9pbnRBbmRSZXNwb25zaXZlQ2xhc3Mod2lkdGg6IG51bWJlcik6IHZvaWQge1xuICAgIHRoaXMudmVydGljYWxUYWJNZWRpYVF1ZXJ5U2VydmljZS5zZXRCcmVha3BvaW50Rm9yV2lkdGgod2lkdGgpO1xuXG4gICAgY29uc3QgbmV3QnJlYWtwaW9udCA9IHRoaXMudmVydGljYWxUYWJNZWRpYVF1ZXJ5U2VydmljZS5jdXJyZW50O1xuXG4gICAgdGhpcy5hZGFwdGVyU2VydmljZS5zZXRSZXNwb25zaXZlQ2xhc3ModGhpcy50YWJDb250ZW50LCBuZXdCcmVha3Bpb250KTtcblxuICAgIHRoaXMuY2hhbmdlUmVmLm1hcmtGb3JDaGVjaygpO1xuICB9XG59XG4iXX0=
@@ -0,0 +1,51 @@
1
+ import { __decorate } from "tslib";
2
+ import { ElementRef, Injectable, Renderer2, RendererFactory2 } from '@angular/core';
3
+ import { SkyMediaBreakpoints } from '@skyux/core';
4
+ var SkyVerticalTabsetAdapterService = /** @class */ (function () {
5
+ function SkyVerticalTabsetAdapterService(rendererFactory) {
6
+ this.rendererFactory = rendererFactory;
7
+ this.renderer = this.rendererFactory.createRenderer(undefined, undefined);
8
+ }
9
+ SkyVerticalTabsetAdapterService.prototype.getWidth = function (elementRef) {
10
+ return elementRef.nativeElement.clientWidth;
11
+ };
12
+ SkyVerticalTabsetAdapterService.prototype.scrollToContentTop = function (element) {
13
+ element.nativeElement.scrollTop = 0;
14
+ };
15
+ SkyVerticalTabsetAdapterService.prototype.setResponsiveClass = function (element, breakpoint) {
16
+ var nativeEl = element.nativeElement;
17
+ this.renderer.removeClass(nativeEl, 'sky-responsive-container-xs');
18
+ this.renderer.removeClass(nativeEl, 'sky-responsive-container-sm');
19
+ this.renderer.removeClass(nativeEl, 'sky-responsive-container-md');
20
+ this.renderer.removeClass(nativeEl, 'sky-responsive-container-lg');
21
+ var newClass;
22
+ switch (breakpoint) {
23
+ case SkyMediaBreakpoints.xs: {
24
+ newClass = 'sky-responsive-container-xs';
25
+ break;
26
+ }
27
+ case SkyMediaBreakpoints.sm: {
28
+ newClass = 'sky-responsive-container-sm';
29
+ break;
30
+ }
31
+ case SkyMediaBreakpoints.md: {
32
+ newClass = 'sky-responsive-container-md';
33
+ break;
34
+ }
35
+ default: {
36
+ newClass = 'sky-responsive-container-lg';
37
+ break;
38
+ }
39
+ }
40
+ this.renderer.addClass(nativeEl, newClass);
41
+ };
42
+ SkyVerticalTabsetAdapterService.ctorParameters = function () { return [
43
+ { type: RendererFactory2 }
44
+ ]; };
45
+ SkyVerticalTabsetAdapterService = __decorate([
46
+ Injectable()
47
+ ], SkyVerticalTabsetAdapterService);
48
+ return SkyVerticalTabsetAdapterService;
49
+ }());
50
+ export { SkyVerticalTabsetAdapterService };
51
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmVydGljYWwtdGFic2V0LWFkYXB0ZXIuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0Bza3l1eC90YWJzLyIsInNvdXJjZXMiOlsibW9kdWxlcy92ZXJ0aWNhbC10YWJzZXQvdmVydGljYWwtdGFic2V0LWFkYXB0ZXIuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUNMLFVBQVUsRUFDVixVQUFVLEVBQ1YsU0FBUyxFQUNULGdCQUFnQixFQUNqQixNQUFNLGVBQWUsQ0FBQztBQUV2QixPQUFPLEVBQ0wsbUJBQW1CLEVBQ3BCLE1BQU0sYUFBYSxDQUFDO0FBR3JCO0lBR0UseUNBQ1UsZUFBaUM7UUFBakMsb0JBQWUsR0FBZixlQUFlLENBQWtCO1FBRXpDLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLGVBQWUsQ0FBQyxjQUFjLENBQUMsU0FBUyxFQUFFLFNBQVMsQ0FBQyxDQUFDO0lBQzVFLENBQUM7SUFFTSxrREFBUSxHQUFmLFVBQWdCLFVBQXNCO1FBQ3BDLE9BQU8sVUFBVSxDQUFDLGFBQWEsQ0FBQyxXQUFXLENBQUM7SUFDOUMsQ0FBQztJQUVNLDREQUFrQixHQUF6QixVQUEwQixPQUFtQjtRQUMzQyxPQUFPLENBQUMsYUFBYSxDQUFDLFNBQVMsR0FBRyxDQUFDLENBQUM7SUFDdEMsQ0FBQztJQUVNLDREQUFrQixHQUF6QixVQUEwQixPQUFtQixFQUFFLFVBQStCO1FBQzVFLElBQU0sUUFBUSxHQUFnQixPQUFPLENBQUMsYUFBYSxDQUFDO1FBRXBELElBQUksQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDLFFBQVEsRUFBRSw2QkFBNkIsQ0FBQyxDQUFDO1FBQ25FLElBQUksQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDLFFBQVEsRUFBRSw2QkFBNkIsQ0FBQyxDQUFDO1FBQ25FLElBQUksQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDLFFBQVEsRUFBRSw2QkFBNkIsQ0FBQyxDQUFDO1FBQ25FLElBQUksQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDLFFBQVEsRUFBRSw2QkFBNkIsQ0FBQyxDQUFDO1FBRW5FLElBQUksUUFBZ0IsQ0FBQztRQUVyQixRQUFRLFVBQVUsRUFBRTtZQUNsQixLQUFLLG1CQUFtQixDQUFDLEVBQUUsQ0FBQyxDQUFDO2dCQUMzQixRQUFRLEdBQUcsNkJBQTZCLENBQUM7Z0JBQ3pDLE1BQU07YUFDUDtZQUNELEtBQUssbUJBQW1CLENBQUMsRUFBRSxDQUFDLENBQUM7Z0JBQzNCLFFBQVEsR0FBRyw2QkFBNkIsQ0FBQztnQkFDekMsTUFBTTthQUNQO1lBQ0QsS0FBSyxtQkFBbUIsQ0FBQyxFQUFFLENBQUMsQ0FBQztnQkFDM0IsUUFBUSxHQUFHLDZCQUE2QixDQUFDO2dCQUN6QyxNQUFNO2FBQ1A7WUFDRCxPQUFPLENBQUMsQ0FBQztnQkFDUCxRQUFRLEdBQUcsNkJBQTZCLENBQUM7Z0JBQ3pDLE1BQU07YUFDUDtTQUNGO1FBRUQsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsUUFBUSxFQUFFLFFBQVEsQ0FBQyxDQUFDO0lBQzdDLENBQUM7O2dCQTNDMEIsZ0JBQWdCOztJQUpoQywrQkFBK0I7UUFEM0MsVUFBVSxFQUFFO09BQ0EsK0JBQStCLENBZ0QzQztJQUFELHNDQUFDO0NBQUEsQUFoREQsSUFnREM7U0FoRFksK0JBQStCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgRWxlbWVudFJlZixcbiAgSW5qZWN0YWJsZSxcbiAgUmVuZGVyZXIyLFxuICBSZW5kZXJlckZhY3RvcnkyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQge1xuICBTa3lNZWRpYUJyZWFrcG9pbnRzXG59IGZyb20gJ0Bza3l1eC9jb3JlJztcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIFNreVZlcnRpY2FsVGFic2V0QWRhcHRlclNlcnZpY2Uge1xuICBwcml2YXRlIHJlbmRlcmVyOiBSZW5kZXJlcjI7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSByZW5kZXJlckZhY3Rvcnk6IFJlbmRlcmVyRmFjdG9yeTJcbiAgKSB7XG4gICAgdGhpcy5yZW5kZXJlciA9IHRoaXMucmVuZGVyZXJGYWN0b3J5LmNyZWF0ZVJlbmRlcmVyKHVuZGVmaW5lZCwgdW5kZWZpbmVkKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXRXaWR0aChlbGVtZW50UmVmOiBFbGVtZW50UmVmKTogbnVtYmVyIHtcbiAgICByZXR1cm4gZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LmNsaWVudFdpZHRoO1xuICB9XG5cbiAgcHVibGljIHNjcm9sbFRvQ29udGVudFRvcChlbGVtZW50OiBFbGVtZW50UmVmKTogdm9pZCB7XG4gICAgZWxlbWVudC5uYXRpdmVFbGVtZW50LnNjcm9sbFRvcCA9IDA7XG4gIH1cblxuICBwdWJsaWMgc2V0UmVzcG9uc2l2ZUNsYXNzKGVsZW1lbnQ6IEVsZW1lbnRSZWYsIGJyZWFrcG9pbnQ6IFNreU1lZGlhQnJlYWtwb2ludHMpOiB2b2lkIHtcbiAgICBjb25zdCBuYXRpdmVFbDogSFRNTEVsZW1lbnQgPSBlbGVtZW50Lm5hdGl2ZUVsZW1lbnQ7XG5cbiAgICB0aGlzLnJlbmRlcmVyLnJlbW92ZUNsYXNzKG5hdGl2ZUVsLCAnc2t5LXJlc3BvbnNpdmUtY29udGFpbmVyLXhzJyk7XG4gICAgdGhpcy5yZW5kZXJlci5yZW1vdmVDbGFzcyhuYXRpdmVFbCwgJ3NreS1yZXNwb25zaXZlLWNvbnRhaW5lci1zbScpO1xuICAgIHRoaXMucmVuZGVyZXIucmVtb3ZlQ2xhc3MobmF0aXZlRWwsICdza3ktcmVzcG9uc2l2ZS1jb250YWluZXItbWQnKTtcbiAgICB0aGlzLnJlbmRlcmVyLnJlbW92ZUNsYXNzKG5hdGl2ZUVsLCAnc2t5LXJlc3BvbnNpdmUtY29udGFpbmVyLWxnJyk7XG5cbiAgICBsZXQgbmV3Q2xhc3M6IHN0cmluZztcblxuICAgIHN3aXRjaCAoYnJlYWtwb2ludCkge1xuICAgICAgY2FzZSBTa3lNZWRpYUJyZWFrcG9pbnRzLnhzOiB7XG4gICAgICAgIG5ld0NsYXNzID0gJ3NreS1yZXNwb25zaXZlLWNvbnRhaW5lci14cyc7XG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgICAgY2FzZSBTa3lNZWRpYUJyZWFrcG9pbnRzLnNtOiB7XG4gICAgICAgIG5ld0NsYXNzID0gJ3NreS1yZXNwb25zaXZlLWNvbnRhaW5lci1zbSc7XG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgICAgY2FzZSBTa3lNZWRpYUJyZWFrcG9pbnRzLm1kOiB7XG4gICAgICAgIG5ld0NsYXNzID0gJ3NreS1yZXNwb25zaXZlLWNvbnRhaW5lci1tZCc7XG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgICAgZGVmYXVsdDoge1xuICAgICAgICBuZXdDbGFzcyA9ICdza3ktcmVzcG9uc2l2ZS1jb250YWluZXItbGcnO1xuICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICB9XG5cbiAgICB0aGlzLnJlbmRlcmVyLmFkZENsYXNzKG5hdGl2ZUVsLCBuZXdDbGFzcyk7XG4gIH1cbn1cbiJdfQ==