@skyux/tabs 4.6.9 → 5.0.0-beta.4

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 (150) hide show
  1. package/LICENSE +21 -0
  2. package/bundles/skyux-tabs-testing.umd.js +324 -221
  3. package/bundles/skyux-tabs-testing.umd.js.map +1 -1
  4. package/bundles/skyux-tabs.umd.js +657 -782
  5. package/bundles/skyux-tabs.umd.js.map +1 -1
  6. package/documentation.json +5509 -0
  7. package/esm2015/modules/sectioned-form/sectioned-form-section.component.js +29 -32
  8. package/esm2015/modules/sectioned-form/sectioned-form.component.js +52 -41
  9. package/esm2015/modules/sectioned-form/sectioned-form.module.js +30 -19
  10. package/esm2015/modules/sectioned-form/sectioned-form.service.js +9 -8
  11. package/esm2015/modules/shared/sky-tabs-resources.module.js +41 -0
  12. package/esm2015/modules/tabs/tab-button.component.js +41 -47
  13. package/esm2015/modules/tabs/tab-index.js +2 -1
  14. package/esm2015/modules/tabs/tab.component.js +31 -41
  15. package/esm2015/modules/tabs/tabs.module.js +45 -23
  16. package/esm2015/modules/tabs/tabset-active-tab-unregistered-args.js +2 -1
  17. package/esm2015/modules/tabs/tabset-adapter.service.js +9 -8
  18. package/esm2015/modules/tabs/tabset-buttons-display-mode.js +2 -1
  19. package/esm2015/modules/tabs/tabset-nav-button.component.js +21 -26
  20. package/esm2015/modules/tabs/tabset-permalink.service.js +11 -15
  21. package/esm2015/modules/tabs/tabset-style.js +2 -1
  22. package/esm2015/modules/tabs/tabset-tab-indexes-change.js +2 -1
  23. package/esm2015/modules/tabs/tabset.component.js +56 -57
  24. package/esm2015/modules/tabs/tabset.service.js +10 -8
  25. package/esm2015/modules/vertical-tabset/vertical-tab-media-query.service.js +9 -8
  26. package/esm2015/modules/vertical-tabset/vertical-tab.component.js +57 -65
  27. package/esm2015/modules/vertical-tabset/vertical-tabset-adapter.service.js +10 -12
  28. package/esm2015/modules/vertical-tabset/vertical-tabset-group.component.js +75 -54
  29. package/esm2015/modules/vertical-tabset/vertical-tabset.component.js +70 -57
  30. package/esm2015/modules/vertical-tabset/vertical-tabset.module.js +47 -30
  31. package/esm2015/modules/vertical-tabset/vertical-tabset.service.js +19 -16
  32. package/esm2015/public-api.js +23 -0
  33. package/esm2015/skyux-tabs.js +2 -18
  34. package/esm2015/testing/public-api.js +3 -0
  35. package/esm2015/testing/skyux-tabs-testing.js +2 -2
  36. package/esm2015/testing/tabs/tab-fixture-tab.js +2 -1
  37. package/esm2015/testing/tabs/tabset-fixture.js +1 -1
  38. package/fesm2015/skyux-tabs-testing.js.map +1 -1
  39. package/fesm2015/skyux-tabs.js +596 -518
  40. package/fesm2015/skyux-tabs.js.map +1 -1
  41. package/modules/sectioned-form/sectioned-form-section.component.d.ts +3 -0
  42. package/modules/sectioned-form/sectioned-form.component.d.ts +3 -0
  43. package/modules/sectioned-form/sectioned-form.module.d.ts +9 -0
  44. package/modules/sectioned-form/sectioned-form.service.d.ts +3 -0
  45. package/modules/shared/sky-tabs-resources.module.d.ts +14 -0
  46. package/modules/tabs/tab-button.component.d.ts +4 -1
  47. package/modules/tabs/tab.component.d.ts +4 -1
  48. package/modules/tabs/tabs.module.d.ts +15 -0
  49. package/modules/tabs/tabset-adapter.service.d.ts +3 -0
  50. package/modules/tabs/tabset-nav-button.component.d.ts +3 -0
  51. package/modules/tabs/tabset-permalink.service.d.ts +3 -0
  52. package/modules/tabs/tabset.component.d.ts +4 -1
  53. package/modules/tabs/tabset.service.d.ts +3 -0
  54. package/modules/vertical-tabset/vertical-tab-media-query.service.d.ts +3 -0
  55. package/modules/vertical-tabset/vertical-tab.component.d.ts +3 -0
  56. package/modules/vertical-tabset/vertical-tabset-adapter.service.d.ts +3 -0
  57. package/modules/vertical-tabset/vertical-tabset-group.component.d.ts +3 -0
  58. package/modules/vertical-tabset/vertical-tabset.component.d.ts +3 -0
  59. package/modules/vertical-tabset/vertical-tabset.module.d.ts +11 -0
  60. package/modules/vertical-tabset/vertical-tabset.service.d.ts +3 -0
  61. package/package.json +14 -29
  62. package/public-api.d.ts +16 -0
  63. package/skyux-tabs.d.ts +2 -17
  64. package/testing/package.json +2 -5
  65. package/testing/{public_api.d.ts → public-api.d.ts} +0 -0
  66. package/testing/skyux-tabs-testing.d.ts +2 -1
  67. package/CHANGELOG.md +0 -218
  68. package/bundles/skyux-tabs-testing.umd.min.js +0 -16
  69. package/bundles/skyux-tabs-testing.umd.min.js.map +0 -1
  70. package/bundles/skyux-tabs.umd.min.js +0 -16
  71. package/bundles/skyux-tabs.umd.min.js.map +0 -1
  72. package/esm2015/modules/shared/tabs-resources.module.js +0 -17
  73. package/esm2015/plugin-resources/tabs-resources-provider.js +0 -16
  74. package/esm2015/public_api.js +0 -10
  75. package/esm2015/testing/public_api.js +0 -2
  76. package/esm5/modules/sectioned-form/sectioned-form-section.component.js +0 -84
  77. package/esm5/modules/sectioned-form/sectioned-form.component.js +0 -111
  78. package/esm5/modules/sectioned-form/sectioned-form.module.js +0 -31
  79. package/esm5/modules/sectioned-form/sectioned-form.service.js +0 -35
  80. package/esm5/modules/shared/tabs-resources.module.js +0 -20
  81. package/esm5/modules/tabs/tab-button.component.js +0 -72
  82. package/esm5/modules/tabs/tab-index.js +0 -1
  83. package/esm5/modules/tabs/tab.component.js +0 -173
  84. package/esm5/modules/tabs/tabs.module.js +0 -44
  85. package/esm5/modules/tabs/tabset-active-tab-unregistered-args.js +0 -1
  86. package/esm5/modules/tabs/tabset-adapter.service.js +0 -58
  87. package/esm5/modules/tabs/tabset-buttons-display-mode.js +0 -1
  88. package/esm5/modules/tabs/tabset-nav-button.component.js +0 -145
  89. package/esm5/modules/tabs/tabset-permalink.service.js +0 -129
  90. package/esm5/modules/tabs/tabset-style.js +0 -1
  91. package/esm5/modules/tabs/tabset-tab-indexes-change.js +0 -1
  92. package/esm5/modules/tabs/tabset.component.js +0 -434
  93. package/esm5/modules/tabs/tabset.service.js +0 -122
  94. package/esm5/modules/vertical-tabset/vertical-tab-media-query.service.js +0 -76
  95. package/esm5/modules/vertical-tabset/vertical-tab.component.js +0 -214
  96. package/esm5/modules/vertical-tabset/vertical-tabset-adapter.service.js +0 -51
  97. package/esm5/modules/vertical-tabset/vertical-tabset-group.component.js +0 -119
  98. package/esm5/modules/vertical-tabset/vertical-tabset.component.js +0 -145
  99. package/esm5/modules/vertical-tabset/vertical-tabset.module.js +0 -46
  100. package/esm5/modules/vertical-tabset/vertical-tabset.service.js +0 -176
  101. package/esm5/plugin-resources/tabs-resources-provider.js +0 -17
  102. package/esm5/public_api.js +0 -10
  103. package/esm5/skyux-tabs.js +0 -21
  104. package/esm5/testing/public_api.js +0 -2
  105. package/esm5/testing/skyux-tabs-testing.js +0 -5
  106. package/esm5/testing/tabs/tab-fixture-tab.js +0 -1
  107. package/esm5/testing/tabs/tabset-fixture.js +0 -168
  108. package/fesm5/skyux-tabs-testing.js +0 -174
  109. package/fesm5/skyux-tabs-testing.js.map +0 -1
  110. package/fesm5/skyux-tabs.js +0 -2182
  111. package/fesm5/skyux-tabs.js.map +0 -1
  112. package/modules/shared/tabs-resources.module.d.ts +0 -2
  113. package/plugin-resources/tabs-resources-provider.d.ts +0 -5
  114. package/public_api.d.ts +0 -9
  115. package/skyux-tabs.metadata.json +0 -1
  116. package/src/assets/img/guidelines/tabs/tabs-anatomy.png +0 -0
  117. package/src/assets/img/guidelines/tabs/tabs-behavior-1.png +0 -0
  118. package/src/assets/img/guidelines/tabs/tabs-layout-1.png +0 -0
  119. package/src/assets/img/guidelines/tabs/tabs-layout-2.png +0 -0
  120. package/src/assets/img/guidelines/tabs/tabs-layout-3.png +0 -0
  121. package/src/assets/img/guidelines/tabs/tabs-layout-4.png +0 -0
  122. package/src/assets/img/guidelines/tabs/tabs-options-1.png +0 -0
  123. package/src/assets/img/guidelines/tabs/tabs-options-2.png +0 -0
  124. package/src/assets/img/guidelines/tabs/tabs-state-collapsed-closed.png +0 -0
  125. package/src/assets/img/guidelines/tabs/tabs-state-collapsed-open.png +0 -0
  126. package/src/assets/img/guidelines/tabs/tabs-state-hover.png +0 -0
  127. package/src/assets/img/guidelines/tabs/tabs-state-selected.png +0 -0
  128. package/src/assets/img/guidelines/tabs/tabs-state-unselected.png +0 -0
  129. package/src/assets/img/guidelines/tabs/tabs-usage-1.png +0 -0
  130. package/src/assets/img/guidelines/tabs/tabs-usage-2.png +0 -0
  131. package/src/assets/img/guidelines/tabs/tabs-usage-3.png +0 -0
  132. package/src/assets/img/guidelines/tabs/tabs-usage-4.png +0 -0
  133. package/src/assets/img/guidelines/tabs/tabs-usage-5.png +0 -0
  134. package/src/assets/img/guidelines/vertical-tabs/vertical-tabs-anatomy-1.png +0 -0
  135. package/src/assets/img/guidelines/vertical-tabs/vertical-tabs-anatomy-2.png +0 -0
  136. package/src/assets/img/guidelines/vertical-tabs/vertical-tabs-layout-1.png +0 -0
  137. package/src/assets/img/guidelines/vertical-tabs/vertical-tabs-state-hover.png +0 -0
  138. package/src/assets/img/guidelines/vertical-tabs/vertical-tabs-state-selected-group.png +0 -0
  139. package/src/assets/img/guidelines/vertical-tabs/vertical-tabs-state-selected.png +0 -0
  140. package/src/assets/img/guidelines/vertical-tabs/vertical-tabs-state-unselected-group.png +0 -0
  141. package/src/assets/img/guidelines/vertical-tabs/vertical-tabs-state-unselected.png +0 -0
  142. package/src/assets/img/guidelines/vertical-tabs/vertical-tabs-usage-1.png +0 -0
  143. package/src/assets/img/guidelines/vertical-tabs/vertical-tabs-usage-2.png +0 -0
  144. package/src/assets/img/guidelines/vertical-tabs/vertical-tabs-usage-3.png +0 -0
  145. package/src/assets/img/guidelines/vertical-tabs/vertical-tabs-usage-4.png +0 -0
  146. package/src/assets/img/guidelines/vertical-tabs/vertical-tabs-usage-5.png +0 -0
  147. package/src/assets/img/guidelines/vertical-tabs/vertical-tabs-usage-6.png +0 -0
  148. package/src/assets/img/guidelines/vertical-tabs/vertical-tabs-usage-7.png +0 -0
  149. package/src/assets/locales/resources_en_US.json +0 -26
  150. package/testing/skyux-tabs-testing.metadata.json +0 -1
@@ -1,76 +0,0 @@
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=
@@ -1,214 +0,0 @@
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=
@@ -1,51 +0,0 @@
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==
@@ -1,119 +0,0 @@
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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmVydGljYWwtdGFic2V0LWdyb3VwLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0Bza3l1eC90YWJzLyIsInNvdXJjZXMiOlsibW9kdWxlcy92ZXJ0aWNhbC10YWJzZXQvdmVydGljYWwtdGFic2V0LWdyb3VwLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUNMLHVCQUF1QixFQUN2QixpQkFBaUIsRUFDakIsU0FBUyxFQUNULGVBQWUsRUFDZixLQUFLLEVBQ0wsU0FBUyxFQUNULE1BQU0sRUFDTixTQUFTLEVBQ1YsTUFBTSxlQUFlLENBQUM7QUFFdkIsT0FBTyxFQUNMLE9BQU8sRUFDUCxLQUFLLEVBQ0wsVUFBVSxFQUNWLE9BQU8sRUFDUixNQUFNLHFCQUFxQixDQUFDO0FBRTdCLE9BQU8sRUFDTCxPQUFPLEVBQ1IsTUFBTSxNQUFNLENBQUM7QUFFZCxPQUFPLEVBQ0wsU0FBUyxFQUNWLE1BQU0sZ0JBQWdCLENBQUM7QUFFeEIsT0FBTyxFQUNMLHVCQUF1QixFQUN4QixNQUFNLDBCQUEwQixDQUFDO0FBRWxDLE9BQU8sRUFDTCx3QkFBd0IsRUFDekIsTUFBTSwyQkFBMkIsQ0FBQztBQWlDbkM7SUFxQ0UseUNBQ1UsVUFBb0MsRUFDcEMsU0FBNEI7UUFGdEMsaUJBR0k7UUFGTSxlQUFVLEdBQVYsVUFBVSxDQUEwQjtRQUNwQyxjQUFTLEdBQVQsU0FBUyxDQUFtQjtRQVI5QixrQkFBYSxHQUFHLElBQUksT0FBTyxFQUFFLENBQUM7UUFFOUIseUJBQW9CLEdBQVksS0FBSyxDQUFDO1FBRXRDLFVBQUssR0FBWSxLQUFLLENBQUM7UUFzQ3hCLGVBQVUsR0FBRztZQUNsQixLQUFJLENBQUMsU0FBUyxDQUFDLFlBQVksRUFBRSxDQUFDO1FBQ2hDLENBQUMsQ0FBQTtRQUVNLGVBQVUsR0FBRztZQUNsQiw4RkFBOEY7WUFDOUYsS0FBSSxDQUFDLG9CQUFvQixHQUFHLEtBQUksQ0FBQyxJQUFJLENBQUM7WUFDdEMs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O3lCQUN0QixDQUFDO3dCQUNGLE9BQU8sQ0FBQyxlQUFlLEVBQUUsS0FBSyxDQUFDOzRCQUM3QixNQUFNLEVBQUUsR0FBRzs0QkFDWCxVQUFVLEVBQUUsUUFBUTt5QkFDckIsQ0FBQyxDQUFDO3FCQUNKLENBQUM7aUJBQ0gsQ0FBQzthQUNIOztTQUNKLENBQUM7T0FDVywrQkFBK0IsQ0F3RjNDO0lBQUQsc0NBQUM7Q0FBQSxBQXhGRCxJQXdGQztTQXhGWSwrQkFBK0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gIENvbXBvbmVudCxcbiAgQ29udGVudENoaWxkcmVuLFxuICBJbnB1dCxcbiAgT25EZXN0cm95LFxuICBPbkluaXQsXG4gIFF1ZXJ5TGlzdFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHtcbiAgYW5pbWF0ZSxcbiAgc3R5bGUsXG4gIHRyYW5zaXRpb24sXG4gIHRyaWdnZXJcbn0gZnJvbSAnQGFuZ3VsYXIvYW5pbWF0aW9ucyc7XG5cbmltcG9ydCB7XG4gIFN1YmplY3Rcbn0gZnJvbSAncnhqcyc7XG5cbmltcG9ydCB7XG4gIHRha2VVbnRpbFxufSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbmltcG9ydCB7XG4gIFNreVZlcnRpY2FsVGFiQ29tcG9uZW50XG59IGZyb20gJy4vdmVydGljYWwtdGFiLmNvbXBvbmVudCc7XG5cbmltcG9ydCB7XG4gIFNreVZlcnRpY2FsVGFic2V0U2VydmljZVxufSBmcm9tICcuL3ZlcnRpY2FsLXRhYnNldC5zZXJ2aWNlJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc2t5LXZlcnRpY2FsLXRhYnNldC1ncm91cCcsXG4gIHRlbXBsYXRlVXJsOiAnLi92ZXJ0aWNhbC10YWJzZXQtZ3JvdXAuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi92ZXJ0aWNhbC10YWJzZXQtZ3JvdXAuY29tcG9uZW50LnNjc3MnXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIGFuaW1hdGlvbnM6IFtcbiAgICB0cmlnZ2VyKFxuICAgICAgJ3RhYlNsaWRlJywgW1xuICAgICAgICB0cmFuc2l0aW9uKCc6ZW50ZXInLCBbXG4gICAgICAgICAgc3R5bGUoe1xuICAgICAgICAgICAgaGVpZ2h0OiAnMCcsXG4gICAgICAgICAgICB2aXNpYmlsaXR5OiAnaGlkZGVuJ1xuICAgICAgICAgIH0pLFxuICAgICAgICAgIGFuaW1hdGUoJzE1MG1zIGVhc2UtaW4nLCBzdHlsZSh7XG4gICAgICAgICAgICBoZWlnaHQ6ICcqJyxcbiAgICAgICAgICAgIHZpc2liaWxpdHk6ICd2aXNpYmxlJ1xuICAgICAgICAgIH0pKVxuICAgICAgICBdKSxcbiAgICAgICAgdHJhbnNpdGlvbignOmxlYXZlJywgW1xuICAgICAgICAgIHN0eWxlKHtcbiAgICAgICAgICAgIGhlaWdodDogJyonLFxuICAgICAgICAgICAgdmlzaWJpbGl0eTogJ3Zpc2libGUnXG4gICAgICAgICAgfSksXG4gICAgICAgICAgYW5pbWF0ZSgnMTUwbXMgZWFzZS1pbicsIHN0eWxlKHtcbiAgICAgICAgICAgIGhlaWdodDogJzAnLFxuICAgICAgICAgICAgdmlzaWJpbGl0eTogJ2hpZGRlbidcbiAgICAgICAgICB9KSlcbiAgICAgICAgXSlcbiAgICAgIF0pXG4gICAgXVxufSlcbmV4cG9ydCBjbGFzcyBTa3lWZXJ0aWNhbFRhYnNldEdyb3VwQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xuXG4gIC8qKlxuICAgKiBJbmRpY2F0ZXMgd2hldGhlciB0byBkaXNhYmxlIHRoZSBhYmlsaXR5IHRvIGV4cGFuZCBhbmQgY29sbGFwc2UgdGhlIGdyb3VwLlxuICAgKiBAZGVmYXVsdCBcImZhbHNlXCJcbiAgICovXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBkaXNhYmxlZDogYm9vbGVhbjtcblxuICAvKipcbiAgICogU3BlY2lmaWVzIHRoZSBoZWFkZXIgZm9yIHRoZSBjb2xsYXBzaWJsZSBncm91cCBvZiB0YWJzLlxuICAgKi9cbiAgQElucHV0KClcbiAgcHVibGljIGdyb3VwSGVhZGluZzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBJbmRpY2F0ZXMgd2hldGhlciB0aGUgY29sbGFwc2libGUgZ3JvdXAgaXMgZXhwYW5kZWQuXG4gICAqIEBkZWZhdWx0IFwiZmFsc2VcIlxuICAgKi9cbiAgQElucHV0KClcbiAgcHVibGljIHNldCBvcGVuKHZhbHVlOiBib29sZWFuKSB7XG4gICAgdGhpcy5fb3BlbiA9IHZhbHVlO1xuICB9XG5cbiAgcHVibGljIGdldCBvcGVuKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiAhdGhpcy5kaXNhYmxlZCAmJiB0aGlzLl9vcGVuO1xuICB9XG5cbiAgQENvbnRlbnRDaGlsZHJlbihTa3lWZXJ0aWNhbFRhYkNvbXBvbmVudClcbiAgcHJpdmF0ZSB0YWJzOiBRdWVyeUxpc3Q8U2t5VmVydGljYWxUYWJDb21wb25lbnQ+O1xuXG4gIHByaXZhdGUgbmdVbnN1YnNjcmliZSA9IG5ldyBTdWJqZWN0KCk7XG5cbiAgcHJpdmF0ZSBvcGVuQmVmb3JlVGFic0hpZGRlbjogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIHByaXZhdGUgX29wZW46IGJvb2xlYW4gPSBmYWxzZTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHRhYlNlcnZpY2U6IFNreVZlcnRpY2FsVGFic2V0U2VydmljZSxcbiAgICBwcml2YXRlIGNoYW5nZVJlZjogQ2hhbmdlRGV0ZWN0b3JSZWZcbiAgKSB7fVxuXG4gIHB1YmxpYyBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLnRhYlNlcnZpY2UuaGlkaW5nVGFic1xuICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMubmdVbnN1YnNjcmliZSkpXG4gICAgICAuc3Vic2NyaWJlKHRoaXMudGFic0hpZGRlbik7XG5cbiAgICB0aGlzLnRhYlNlcnZpY2Uuc2hvd2luZ1RhYnNcbiAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLm5nVW5zdWJzY3JpYmUpKVxuICAgICAgLnN1YnNjcmliZSh0aGlzLnRhYnNTaG93bik7XG5cbiAgICB0aGlzLnRhYlNlcnZpY2UudGFiQ2xpY2tlZFxuICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMubmdVbnN1YnNjcmliZSkpXG4gICAgICAuc3Vic2NyaWJlKHRoaXMudGFiQ2xpY2tlZCk7XG4gIH1cblxuICBwdWJsaWMgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy5uZ1Vuc3Vic2NyaWJlLm5leHQoKTtcbiAgICB0aGlzLm5nVW5zdWJzY3JpYmUuY29tcGxldGUoKTtcbiAgfVxuXG4gIHB1YmxpYyB0b2dnbGVNZW51T3BlbigpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMuZGlzYWJsZWQpIHtcbiAgICAgIHRoaXMub3BlbiA9ICF0aGlzLm9wZW47XG4gICAgfVxuXG4gICAgdGhpcy5jaGFuZ2VSZWYubWFya0ZvckNoZWNrKCk7XG4gIH1cblxuICBwdWJsaWMgc3ViTWVudU9wZW4oKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMudGFicyAmJiAodGhpcy50YWJzLmZpbmQodCA9PiB0LmFjdGl2ZSkgIT09IHVuZGVmaW5lZCk7XG4gIH1cblxuICBwdWJsaWMgdGFiQ2xpY2tlZCA9ICgpID0+IHtcbiAgICB0aGlzLmNoYW5nZVJlZi5tYXJrRm9yQ2hlY2soKTtcbiAgfVxuXG4gIHB1YmxpYyB0YWJzSGlkZGVuID0gKCkgPT4ge1xuICAgIC8vIHRoaXMgZml4ZXMgYW4gYW5pbWF0aW9uIGJ1ZyB3aXRoIG5nSWYgd2hlbiB0aGUgcGFyZW50IGNvbXBvbmVudCBnb2VzIGZyb20gdmlzaWJsZSB0byBoaWRkZW5cbiAgICB0aGlzLm9wZW5CZWZvcmVUYWJzSGlkZGVuID0gdGhpcy5vcGVuO1xuICAgIHRoaXMub3BlbiA9IGZhbHNlO1xuICAgIHRoaXMuY2hhbmdlUmVmLm1hcmtGb3JDaGVjaygpO1xuICB9XG5cbiAgcHVibGljIHRhYnNTaG93biA9ICgpID0+IHtcbiAgICB0aGlzLm9wZW4gPSB0aGlzLm9wZW5CZWZvcmVUYWJzSGlkZGVuO1xuICAgIHRoaXMuY2hhbmdlUmVmLm1hcmtGb3JDaGVjaygpO1xuICB9XG59XG4iXX0=