@natec/mef-dev-ui-kit 15.0.0 → 16.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (132) hide show
  1. package/esm2022/lib/markup-kit/card/card/card.component.mjs +116 -0
  2. package/esm2022/lib/markup-kit/card/card-long/card-long.component.mjs +169 -0
  3. package/esm2022/lib/markup-kit/card/card-simple/card-simple.component.mjs +50 -0
  4. package/{esm2020 → esm2022}/lib/markup-kit/card/card.module.mjs +11 -11
  5. package/esm2022/lib/markup-kit/collapse/collapse/collapse.component.mjs +149 -0
  6. package/esm2022/lib/markup-kit/collapse/collapse-set/collapse-set.component.mjs +102 -0
  7. package/{esm2020 → esm2022}/lib/markup-kit/collapse/collapse.module.mjs +5 -5
  8. package/esm2022/lib/markup-kit/modals/fill/fill.component.mjs +117 -0
  9. package/{esm2020 → esm2022}/lib/markup-kit/modals/markup-kit.module.mjs +15 -15
  10. package/esm2022/lib/markup-kit/modals/right-filter/right-filter.component.mjs +44 -0
  11. package/esm2022/lib/markup-kit/modals/slide-right/slide-right.component.mjs +113 -0
  12. package/esm2022/lib/markup-kit/modals/slide-up/slide-up.component.mjs +113 -0
  13. package/esm2022/lib/markup-kit/page-layouts/central-page/central-page.component.mjs +51 -0
  14. package/esm2022/lib/markup-kit/page-layouts/central-page-row/central-page-row.component.mjs +27 -0
  15. package/esm2022/lib/markup-kit/page-layouts/manage-page/manage-page.component.mjs +73 -0
  16. package/{esm2020 → esm2022}/lib/markup-kit/page-layouts/page-layouts.module.mjs +13 -13
  17. package/esm2022/lib/markup-kit/page-layouts/profile/profile.component.mjs +137 -0
  18. package/esm2022/lib/markup-kit/page-layouts/table-page/table-page.component.mjs +42 -0
  19. package/esm2022/lib/markup-kit/utils/filtered-field/filtered-field-container/filtered-field-container.component.mjs +72 -0
  20. package/esm2022/lib/markup-kit/utils/filtered-field/filtered-field-item/filtered-field-item.component.mjs +71 -0
  21. package/{esm2020 → esm2022}/lib/markup-kit/utils/filtered-field/filtered-field.module.mjs +7 -7
  22. package/esm2022/lib/markup-kit/utils/filtered-field/filtered-field.service.mjs +43 -0
  23. package/esm2022/lib/markup-kit/utils/filtered-field/filtred-item.model.mjs +13 -0
  24. package/esm2022/lib/markup-kit/utils/help-block/help-block.component.mjs +72 -0
  25. package/{esm2020 → esm2022}/lib/markup-kit/utils/help-block/hepl-block.module.mjs +7 -7
  26. package/esm2022/lib/pg-components/card/card.components.mjs +439 -0
  27. package/{esm2020 → esm2022}/lib/pg-components/card/card.module.mjs +5 -5
  28. package/esm2022/lib/pg-components/progress/progress.component.mjs +80 -0
  29. package/esm2022/lib/pg-components/progress/progress.config.mjs +12 -0
  30. package/{esm2020 → esm2022}/lib/pg-components/progress/progress.module.mjs +5 -5
  31. package/esm2022/lib/pg-components/select/option.component.mjs +93 -0
  32. package/{esm2020 → esm2022}/lib/pg-components/select/option.pipe.mjs +4 -4
  33. package/esm2022/lib/pg-components/select/select.component.mjs +782 -0
  34. package/{esm2020 → esm2022}/lib/pg-components/select/select.module.mjs +5 -5
  35. package/esm2022/lib/pg-components/spec-flow-test/spec-flow-test/spec-flow-test.component.mjs +36 -0
  36. package/{esm2020 → esm2022}/lib/pg-components/spec-flow-test/spec-flow-test.module.mjs +5 -5
  37. package/esm2022/lib/pg-components/switch/switch.component.mjs +293 -0
  38. package/{esm2020 → esm2022}/lib/pg-components/switch/switch.module.mjs +5 -5
  39. package/esm2022/lib/pg-components/tabs/tab-body.component.mjs +21 -0
  40. package/esm2022/lib/pg-components/tabs/tab-label.directive.mjs +45 -0
  41. package/esm2022/lib/pg-components/tabs/tab.component.mjs +102 -0
  42. package/esm2022/lib/pg-components/tabs/tabs-ink-bar.directive.mjs +81 -0
  43. package/esm2022/lib/pg-components/tabs/tabs-nav.component.mjs +298 -0
  44. package/{esm2020 → esm2022}/lib/pg-components/tabs/tabs.module.mjs +5 -5
  45. package/esm2022/lib/pg-components/tabs/tabset.component.mjs +257 -0
  46. package/fesm2022/natec-mef-dev-ui-kit.mjs +4340 -0
  47. package/fesm2022/natec-mef-dev-ui-kit.mjs.map +1 -0
  48. package/lib/markup-kit/card/card/card.component.d.ts +69 -35
  49. package/lib/markup-kit/card/card-long/card-long.component.d.ts +114 -4
  50. package/lib/markup-kit/card/card-simple/card-simple.component.d.ts +24 -1
  51. package/lib/markup-kit/collapse/collapse/collapse.component.d.ts +52 -2
  52. package/lib/markup-kit/collapse/collapse-set/collapse-set.component.d.ts +51 -1
  53. package/lib/markup-kit/modals/fill/fill.component.d.ts +59 -35
  54. package/lib/markup-kit/modals/right-filter/right-filter.component.d.ts +14 -1
  55. package/lib/markup-kit/modals/slide-right/slide-right.component.d.ts +53 -1
  56. package/lib/markup-kit/modals/slide-up/slide-up.component.d.ts +56 -4
  57. package/lib/markup-kit/page-layouts/central-page/central-page.component.d.ts +23 -1
  58. package/lib/markup-kit/page-layouts/central-page-row/central-page-row.component.d.ts +14 -1
  59. package/lib/markup-kit/page-layouts/manage-page/manage-page.component.d.ts +47 -4
  60. package/lib/markup-kit/page-layouts/profile/profile.component.d.ts +78 -2
  61. package/lib/markup-kit/page-layouts/table-page/table-page.component.d.ts +23 -4
  62. package/lib/markup-kit/utils/filtered-field/filtered-field-container/filtered-field-container.component.d.ts +28 -4
  63. package/lib/markup-kit/utils/filtered-field/filtered-field-item/filtered-field-item.component.d.ts +43 -1
  64. package/lib/markup-kit/utils/filtered-field/filtered-field.service.d.ts +14 -0
  65. package/lib/markup-kit/utils/help-block/help-block.component.d.ts +26 -4
  66. package/lib/pg-components/card/card.components.d.ts +182 -1
  67. package/lib/pg-components/progress/progress.component.d.ts +36 -1
  68. package/lib/pg-components/select/option.component.d.ts +31 -1
  69. package/lib/pg-components/select/select.component.d.ts +1 -1
  70. package/lib/pg-components/spec-flow-test/spec-flow-test/spec-flow-test.component.d.ts +1 -1
  71. package/lib/pg-components/switch/switch.component.d.ts +151 -2
  72. package/lib/pg-components/tabs/tab-body.component.d.ts +7 -1
  73. package/lib/pg-components/tabs/tab-label.directive.d.ts +1 -1
  74. package/lib/pg-components/tabs/tab.component.d.ts +46 -1
  75. package/lib/pg-components/tabs/tabs-ink-bar.directive.d.ts +2 -2
  76. package/lib/pg-components/tabs/tabs-nav.component.d.ts +3 -3
  77. package/lib/pg-components/tabs/tabset.component.d.ts +70 -4
  78. package/package.json +9 -15
  79. package/esm2020/lib/markup-kit/card/card/card.component.mjs +0 -40
  80. package/esm2020/lib/markup-kit/card/card-long/card-long.component.mjs +0 -50
  81. package/esm2020/lib/markup-kit/card/card-simple/card-simple.component.mjs +0 -27
  82. package/esm2020/lib/markup-kit/collapse/collapse/collapse.component.mjs +0 -95
  83. package/esm2020/lib/markup-kit/collapse/collapse-set/collapse-set.component.mjs +0 -54
  84. package/esm2020/lib/markup-kit/modals/fill/fill.component.mjs +0 -91
  85. package/esm2020/lib/markup-kit/modals/right-filter/right-filter.component.mjs +0 -28
  86. package/esm2020/lib/markup-kit/modals/slide-right/slide-right.component.mjs +0 -59
  87. package/esm2020/lib/markup-kit/modals/slide-up/slide-up.component.mjs +0 -59
  88. package/esm2020/lib/markup-kit/page-layouts/central-page/central-page.component.mjs +0 -29
  89. package/esm2020/lib/markup-kit/page-layouts/central-page-row/central-page-row.component.mjs +0 -14
  90. package/esm2020/lib/markup-kit/page-layouts/manage-page/manage-page.component.mjs +0 -29
  91. package/esm2020/lib/markup-kit/page-layouts/profile/profile.component.mjs +0 -53
  92. package/esm2020/lib/markup-kit/page-layouts/table-page/table-page.component.mjs +0 -22
  93. package/esm2020/lib/markup-kit/utils/filtered-field/filtered-field-container/filtered-field-container.component.mjs +0 -47
  94. package/esm2020/lib/markup-kit/utils/filtered-field/filtered-field-item/filtered-field-item.component.mjs +0 -29
  95. package/esm2020/lib/markup-kit/utils/filtered-field/filtered-field.service.mjs +0 -30
  96. package/esm2020/lib/markup-kit/utils/filtered-field/filtred-item.model.mjs +0 -9
  97. package/esm2020/lib/markup-kit/utils/help-block/help-block.component.mjs +0 -51
  98. package/esm2020/lib/pg-components/card/card.components.mjs +0 -252
  99. package/esm2020/lib/pg-components/progress/progress.component.mjs +0 -39
  100. package/esm2020/lib/pg-components/progress/progress.config.mjs +0 -14
  101. package/esm2020/lib/pg-components/select/option.component.mjs +0 -59
  102. package/esm2020/lib/pg-components/select/select.component.mjs +0 -766
  103. package/esm2020/lib/pg-components/spec-flow-test/spec-flow-test/spec-flow-test.component.mjs +0 -24
  104. package/esm2020/lib/pg-components/switch/switch.component.mjs +0 -114
  105. package/esm2020/lib/pg-components/tabs/tab-body.component.mjs +0 -14
  106. package/esm2020/lib/pg-components/tabs/tab-label.directive.mjs +0 -44
  107. package/esm2020/lib/pg-components/tabs/tab.component.mjs +0 -53
  108. package/esm2020/lib/pg-components/tabs/tabs-ink-bar.directive.mjs +0 -78
  109. package/esm2020/lib/pg-components/tabs/tabs-nav.component.mjs +0 -287
  110. package/esm2020/lib/pg-components/tabs/tabset.component.mjs +0 -179
  111. package/fesm2015/natec-mef-dev-ui-kit.mjs +0 -2973
  112. package/fesm2015/natec-mef-dev-ui-kit.mjs.map +0 -1
  113. package/fesm2020/natec-mef-dev-ui-kit.mjs +0 -2966
  114. package/fesm2020/natec-mef-dev-ui-kit.mjs.map +0 -1
  115. /package/{esm2020 → esm2022}/lib/markup-kit/card/card-long/cart-type-colors.enum.mjs +0 -0
  116. /package/{esm2020 → esm2022}/lib/markup-kit/card/index.mjs +0 -0
  117. /package/{esm2020 → esm2022}/lib/markup-kit/collapse/index.mjs +0 -0
  118. /package/{esm2020 → esm2022}/lib/markup-kit/modals/index.mjs +0 -0
  119. /package/{esm2020 → esm2022}/lib/markup-kit/modals/modal-size.enum.mjs +0 -0
  120. /package/{esm2020 → esm2022}/lib/markup-kit/page-layouts/index.mjs +0 -0
  121. /package/{esm2020 → esm2022}/lib/markup-kit/utils/filtered-field/index.mjs +0 -0
  122. /package/{esm2020 → esm2022}/lib/markup-kit/utils/help-block/index.mjs +0 -0
  123. /package/{esm2020 → esm2022}/lib/pg-components/card/index.mjs +0 -0
  124. /package/{esm2020 → esm2022}/lib/pg-components/progress/index.mjs +0 -0
  125. /package/{esm2020 → esm2022}/lib/pg-components/select/index.mjs +0 -0
  126. /package/{esm2020 → esm2022}/lib/pg-components/spec-flow-test/index.mjs +0 -0
  127. /package/{esm2020 → esm2022}/lib/pg-components/switch/index.mjs +0 -0
  128. /package/{esm2020 → esm2022}/lib/pg-components/tabs/index.mjs +0 -0
  129. /package/{esm2020 → esm2022}/lib/pg-components/util/convert.mjs +0 -0
  130. /package/{esm2020 → esm2022}/lib/pg-components/util/request-animation.mjs +0 -0
  131. /package/{esm2020 → esm2022}/natec-mef-dev-ui-kit.mjs +0 -0
  132. /package/{esm2020 → esm2022}/public-api.mjs +0 -0
@@ -1,287 +0,0 @@
1
- import { Component, ContentChild, ContentChildren, Input, Optional, ViewChild, ViewEncapsulation } from '@angular/core';
2
- import { fromEvent, merge, of as observableOf } from 'rxjs';
3
- import { auditTime, startWith } from 'rxjs/operators';
4
- import { toBoolean } from '../util/convert';
5
- import { MefDevTabLabelDirective } from './tab-label.directive';
6
- import { MefDevTabsInkBarDirective } from './tabs-ink-bar.directive';
7
- import * as i0 from "@angular/core";
8
- import * as i1 from "@angular/cdk/bidi";
9
- import * as i2 from "./tabs-ink-bar.directive";
10
- const EXAGGERATED_OVERSCROLL = 64;
11
- export class MefDevTabsNavComponent {
12
- constructor(_elementRef, _ngZone, _renderer, _dir) {
13
- this._elementRef = _elementRef;
14
- this._ngZone = _ngZone;
15
- this._renderer = _renderer;
16
- this._dir = _dir;
17
- this._animated = true;
18
- this._hideBar = false;
19
- this._showPagination = true;
20
- this._showPaginationControls = false;
21
- this._disableScrollAfter = true;
22
- this._disableScrollBefore = true;
23
- this._scrollDistance = 0;
24
- this._selectedIndexChanged = false;
25
- this._realignInkBar = null;
26
- this._selectedIndex = 0;
27
- this._tabPositionMode = 'horizontal';
28
- this._tabPosition = 'top';
29
- this.Size = 'default';
30
- this._type = 'line';
31
- }
32
- set Animated(value) {
33
- this._animated = toBoolean(value);
34
- }
35
- get Animated() {
36
- return this._animated;
37
- }
38
- set Position(value) {
39
- this._tabPosition = value;
40
- }
41
- get Position() {
42
- return this._tabPosition;
43
- }
44
- set HideBar(value) {
45
- this._hideBar = toBoolean(value);
46
- }
47
- get HideBar() {
48
- return this._hideBar;
49
- }
50
- set Type(value) {
51
- this._type = value;
52
- }
53
- get Type() {
54
- return this._type;
55
- }
56
- set ShowPagination(value) {
57
- this._showPagination = toBoolean(value);
58
- }
59
- get ShowPagination() {
60
- return this._showPagination;
61
- }
62
- set PositionMode(value) {
63
- this._tabPositionMode = value;
64
- this._alignInkBarToSelectedTab();
65
- if (this.ShowPagination) {
66
- this._updatePagination();
67
- }
68
- }
69
- get PositionMode() {
70
- return this._tabPositionMode;
71
- }
72
- set selectedIndex(value) {
73
- this._selectedIndexChanged = this._selectedIndex !== value;
74
- this._selectedIndex = value;
75
- }
76
- get selectedIndex() {
77
- return this._selectedIndex;
78
- }
79
- _onContentChanges() {
80
- if (this.ShowPagination) {
81
- this._updatePagination();
82
- }
83
- this._alignInkBarToSelectedTab();
84
- }
85
- _scrollHeader(scrollDir) {
86
- // Move the scroll distance one-third the length of the tab list's viewport.
87
- this.scrollDistance += ((scrollDir === 'before' ? -1 : 1) * this.viewWidthHeightPix) / 3;
88
- }
89
- ngAfterContentChecked() {
90
- if (this._tabLabelCount !== this._labelWrappers.length) {
91
- if (this.ShowPagination) {
92
- this._updatePagination();
93
- }
94
- this._tabLabelCount = this._labelWrappers.length;
95
- }
96
- if (this._selectedIndexChanged) {
97
- this._scrollToLabel(this._selectedIndex);
98
- if (this.ShowPagination) {
99
- this._checkScrollingControls();
100
- }
101
- this._alignInkBarToSelectedTab();
102
- this._selectedIndexChanged = false;
103
- }
104
- if (this._scrollDistanceChanged) {
105
- if (this.ShowPagination) {
106
- this._updateTabScrollPosition();
107
- }
108
- this._scrollDistanceChanged = false;
109
- }
110
- }
111
- ngAfterContentInit() {
112
- this._realignInkBar = this._ngZone.runOutsideAngular(() => {
113
- const dirChange = this._dir ? this._dir.change : observableOf(null);
114
- const resize = typeof window !== 'undefined' ? fromEvent(window, 'resize').pipe(auditTime(10)) : observableOf(null);
115
- //@ts-ignore
116
- return merge(dirChange, resize)
117
- .pipe(startWith(null))
118
- .subscribe(() => {
119
- if (this.ShowPagination) {
120
- this._updatePagination();
121
- }
122
- this._alignInkBarToSelectedTab();
123
- });
124
- });
125
- }
126
- _updateTabScrollPosition() {
127
- const scrollDistance = this.scrollDistance;
128
- if (this.PositionMode === 'horizontal') {
129
- const translateX = this._getLayoutDirection() === 'ltr' ? -scrollDistance : scrollDistance;
130
- this._renderer.setStyle(this._tabList.nativeElement, 'transform', `translate3d(${translateX}px, 0, 0)`);
131
- }
132
- else {
133
- this._renderer.setStyle(this._tabList.nativeElement, 'transform', `translate3d(0,${-scrollDistance}px, 0)`);
134
- }
135
- }
136
- _updatePagination() {
137
- this._checkPaginationEnabled();
138
- this._checkScrollingControls();
139
- this._updateTabScrollPosition();
140
- }
141
- _checkPaginationEnabled() {
142
- this._showPaginationControls = this.tabListScrollWidthHeightPix > this.elementRefOffSetWidthHeight;
143
- if (!this._showPaginationControls) {
144
- this.scrollDistance = 0;
145
- }
146
- }
147
- _scrollToLabel(labelIndex) {
148
- const selectedLabel = this._labelWrappers ? this._labelWrappers.toArray()[labelIndex] : null;
149
- if (!selectedLabel) {
150
- return;
151
- }
152
- // The view length is the visible width of the tab labels.
153
- let labelBeforePos;
154
- let labelAfterPos;
155
- if (this.PositionMode === 'horizontal') {
156
- if (this._getLayoutDirection() === 'ltr') {
157
- labelBeforePos = selectedLabel.getOffsetLeft();
158
- labelAfterPos = labelBeforePos + selectedLabel.getOffsetWidth();
159
- }
160
- else {
161
- labelAfterPos = this._tabList.nativeElement.offsetWidth - selectedLabel.getOffsetLeft();
162
- labelBeforePos = labelAfterPos - selectedLabel.getOffsetWidth();
163
- }
164
- }
165
- else {
166
- labelBeforePos = selectedLabel.getOffsetTop();
167
- labelAfterPos = labelBeforePos + selectedLabel.getOffsetHeight();
168
- }
169
- const beforeVisiblePos = this.scrollDistance;
170
- const afterVisiblePos = this.scrollDistance + this.viewWidthHeightPix;
171
- if (labelBeforePos < beforeVisiblePos) {
172
- // Scroll header to move label to the before direction
173
- this.scrollDistance -= beforeVisiblePos - labelBeforePos + EXAGGERATED_OVERSCROLL;
174
- }
175
- else if (labelAfterPos > afterVisiblePos) {
176
- // Scroll header to move label to the after direction
177
- this.scrollDistance += labelAfterPos - afterVisiblePos + EXAGGERATED_OVERSCROLL;
178
- }
179
- }
180
- _checkScrollingControls() {
181
- // Check if the pagination arrows should be activated.
182
- this._disableScrollBefore = this.scrollDistance === 0;
183
- this._disableScrollAfter = this.scrollDistance === this._getMaxScrollDistance();
184
- }
185
- /**
186
- * Determines what is the maximum length in pixels that can be set for the scroll distance. This
187
- * is equal to the difference in width between the tab list container and tab header container.
188
- *
189
- * This is an expensive call that forces a layout reflow to compute box and scroll metrics and
190
- * should be called sparingly.
191
- */
192
- _getMaxScrollDistance() {
193
- return this.tabListScrollWidthHeightPix - this.viewWidthHeightPix || 0;
194
- }
195
- /** Sets the distance in pixels that the tab header should be transformed in the X-axis. */
196
- set scrollDistance(v) {
197
- this._scrollDistance = Math.max(0, Math.min(this._getMaxScrollDistance(), v));
198
- // Mark that the scroll distance has changed so that after the view is checked, the CSS
199
- // transformation can move the header.
200
- this._scrollDistanceChanged = true;
201
- this._checkScrollingControls();
202
- }
203
- get scrollDistance() {
204
- return this._scrollDistance;
205
- }
206
- get viewWidthHeightPix() {
207
- let PAGINATION_PIX = 0;
208
- if (this._showPaginationControls) {
209
- PAGINATION_PIX = 64;
210
- }
211
- if (this.PositionMode === 'horizontal') {
212
- return this._tabListContainer.nativeElement.offsetWidth - PAGINATION_PIX;
213
- }
214
- else {
215
- return this._tabListContainer.nativeElement.offsetHeight - PAGINATION_PIX;
216
- }
217
- }
218
- get tabListScrollWidthHeightPix() {
219
- if (this.PositionMode === 'horizontal') {
220
- return this._tabList.nativeElement.scrollWidth;
221
- }
222
- else {
223
- return this._tabList.nativeElement.scrollHeight;
224
- }
225
- }
226
- get elementRefOffSetWidthHeight() {
227
- if (this.PositionMode === 'horizontal') {
228
- return this._elementRef.nativeElement.offsetWidth;
229
- }
230
- else {
231
- return this._elementRef.nativeElement.offsetHeight;
232
- }
233
- }
234
- _getLayoutDirection() {
235
- return this._dir && this._dir.value === 'rtl' ? 'rtl' : 'ltr';
236
- }
237
- _alignInkBarToSelectedTab() {
238
- if (this.Type !== 'fillup') {
239
- const selectedLabelWrapper = this._labelWrappers && this._labelWrappers.length
240
- ? this._labelWrappers.toArray()[this.selectedIndex].elementRef.nativeElement
241
- : null;
242
- if (this._inkBar) {
243
- this._inkBar.alignToElement(selectedLabelWrapper);
244
- }
245
- }
246
- }
247
- }
248
- MefDevTabsNavComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: MefDevTabsNavComponent, deps: [{ token: i0.ElementRef }, { token: i0.NgZone }, { token: i0.Renderer2 }, { token: i1.Directionality, optional: true }], target: i0.ɵɵFactoryTarget.Component });
249
- MefDevTabsNavComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: MefDevTabsNavComponent, selector: "mefdev-tabs-nav", inputs: { Size: "Size", Animated: "Animated", Position: "Position", HideBar: "HideBar", Type: "Type", ShowPagination: "ShowPagination", PositionMode: "PositionMode", selectedIndex: "selectedIndex" }, queries: [{ propertyName: "_tabBarExtraContent", first: true, predicate: ["tabBarExtraContent"], descendants: true, static: true }, { propertyName: "_labelWrappers", predicate: MefDevTabLabelDirective }], viewQueries: [{ propertyName: "_inkBar", first: true, predicate: MefDevTabsInkBarDirective, descendants: true, static: true }, { propertyName: "_tabListContainer", first: true, predicate: ["tabListContainer"], descendants: true, static: true }, { propertyName: "_tabList", first: true, predicate: ["tabList"], descendants: true, static: true }], ngImport: i0, template: "<div class=\"nav-tabs-wrapper\" [class.scrolling]=\"_showPaginationControls\" #tabListContainer>\r\n <div class=\"nav-wrap\">\r\n <ul\r\n class=\"nav nav-tabs nav-tabs-{{ _type }} nav-tabs-{{ _tabPosition }}\"\r\n [class.tabs-nav-animated]=\"Animated\"\r\n #tabList\r\n (cdkObserveContent)=\"_onContentChanges()\"\r\n >\r\n <div\r\n class=\"active-bar\"\r\n pg-tabs-ink-bar\r\n [hidden]=\"HideBar\"\r\n [Animated]=\"Animated\"\r\n [PositionMode]=\"PositionMode\"\r\n style=\"display: block;\"\r\n ></div>\r\n <ng-content></ng-content>\r\n </ul>\r\n </div>\r\n </div>", dependencies: [{ kind: "directive", type: i2.MefDevTabsInkBarDirective, selector: "[pg-tabs-ink-bar]", inputs: ["Animated", "PositionMode"] }], encapsulation: i0.ViewEncapsulation.None });
250
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: MefDevTabsNavComponent, decorators: [{
251
- type: Component,
252
- args: [{ selector: 'mefdev-tabs-nav', encapsulation: ViewEncapsulation.None, template: "<div class=\"nav-tabs-wrapper\" [class.scrolling]=\"_showPaginationControls\" #tabListContainer>\r\n <div class=\"nav-wrap\">\r\n <ul\r\n class=\"nav nav-tabs nav-tabs-{{ _type }} nav-tabs-{{ _tabPosition }}\"\r\n [class.tabs-nav-animated]=\"Animated\"\r\n #tabList\r\n (cdkObserveContent)=\"_onContentChanges()\"\r\n >\r\n <div\r\n class=\"active-bar\"\r\n pg-tabs-ink-bar\r\n [hidden]=\"HideBar\"\r\n [Animated]=\"Animated\"\r\n [PositionMode]=\"PositionMode\"\r\n style=\"display: block;\"\r\n ></div>\r\n <ng-content></ng-content>\r\n </ul>\r\n </div>\r\n </div>" }]
253
- }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i0.NgZone }, { type: i0.Renderer2 }, { type: i1.Directionality, decorators: [{
254
- type: Optional
255
- }] }]; }, propDecorators: { Size: [{
256
- type: Input
257
- }], Animated: [{
258
- type: Input
259
- }], Position: [{
260
- type: Input
261
- }], HideBar: [{
262
- type: Input
263
- }], Type: [{
264
- type: Input
265
- }], _tabBarExtraContent: [{
266
- type: ContentChild,
267
- args: ['tabBarExtraContent', { static: true }]
268
- }], _labelWrappers: [{
269
- type: ContentChildren,
270
- args: [MefDevTabLabelDirective]
271
- }], _inkBar: [{
272
- type: ViewChild,
273
- args: [MefDevTabsInkBarDirective, { static: true }]
274
- }], _tabListContainer: [{
275
- type: ViewChild,
276
- args: ['tabListContainer', { static: true }]
277
- }], _tabList: [{
278
- type: ViewChild,
279
- args: ['tabList', { static: true }]
280
- }], ShowPagination: [{
281
- type: Input
282
- }], PositionMode: [{
283
- type: Input
284
- }], selectedIndex: [{
285
- type: Input
286
- }] } });
287
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFicy1uYXYuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdWkta2l0LWxpYi9zcmMvbGliL3BnLWNvbXBvbmVudHMvdGFicy90YWJzLW5hdi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy91aS1raXQtbGliL3NyYy9saWIvcGctY29tcG9uZW50cy90YWJzL3RhYnMtbmF2LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE9BQU8sRUFHTCxTQUFTLEVBQ1QsWUFBWSxFQUNaLGVBQWUsRUFHZixLQUFLLEVBRUwsUUFBUSxFQUlSLFNBQVMsRUFDVCxpQkFBaUIsRUFDbEIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFnQixTQUFTLEVBQUUsS0FBSyxFQUFFLEVBQUUsSUFBSSxZQUFZLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDMUUsT0FBTyxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN0RCxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDNUMsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDaEUsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sMEJBQTBCLENBQUM7Ozs7QUFFckUsTUFBTSxzQkFBc0IsR0FBRyxFQUFFLENBQUM7QUFXbEMsTUFBTSxPQUFPLHNCQUFzQjtJQThGakMsWUFDUyxXQUF1QixFQUN0QixPQUFlLEVBQ2YsU0FBb0IsRUFDUixJQUFvQjtRQUhqQyxnQkFBVyxHQUFYLFdBQVcsQ0FBWTtRQUN0QixZQUFPLEdBQVAsT0FBTyxDQUFRO1FBQ2YsY0FBUyxHQUFULFNBQVMsQ0FBVztRQUNSLFNBQUksR0FBSixJQUFJLENBQWdCO1FBakdsQyxjQUFTLEdBQUcsSUFBSSxDQUFDO1FBQ2pCLGFBQVEsR0FBRyxLQUFLLENB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LE9BQU8sRUFBRSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQyxVQUFVLENBQUMsYUFBYTtnQkFDNUUsQ0FBQyxDQUFDLElBQUksQ0FBQztZQUNYLElBQUksSUFBSSxDQUFDLE9BQU8sRUFBRTtnQkFDaEIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxjQUFjLENBQUMsb0JBQW9CLENBQUMsQ0FBQzthQUNuRDtTQUNGO0lBQ0gsQ0FBQzs7bUhBN1JVLHNCQUFzQjt1R0FBdEIsc0JBQXNCLHdaQXdEaEIsdUJBQXVCLHNFQUM3Qix5QkFBeUIsd1JDN0Z0QyxxckJBbUJROzJGRGlCSyxzQkFBc0I7a0JBTGxDLFNBQVM7K0JBQ0UsaUJBQWlCLGlCQUNaLGlCQUFpQixDQUFDLElBQUk7OzBCQXFHbEMsUUFBUTs0Q0FsRkYsSUFBSTtzQkFBWixLQUFLO2dCQUlGLFFBQVE7c0JBRFgsS0FBSztnQkFVRixRQUFRO3NCQURYLEtBQUs7Z0JBVUYsT0FBTztzQkFEVixLQUFLO2dCQVVGLElBQUk7c0JBRFAsS0FBSztnQkFTZ0QsbUJBQW1CO3NCQUF4RSxZQUFZO3VCQUFDLG9CQUFvQixFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRTtnQkFDVixjQUFjO3NCQUF2RCxlQUFlO3VCQUFDLHVCQUF1QjtnQkFDZ0IsT0FBTztzQkFBOUQsU0FBUzt1QkFBQyx5QkFBeUIsRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUU7Z0JBQ0wsaUJBQWlCO3NCQUFqRSxTQUFTO3VCQUFDLGtCQUFrQixFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRTtnQkFDUCxRQUFRO3NCQUEvQyxTQUFTO3VCQUFDLFNBQVMsRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUU7Z0JBR2xDLGNBQWM7c0JBRGpCLEtBQUs7Z0JBVUYsWUFBWTtzQkFEZixLQUFLO2dCQWNGLGFBQWE7c0JBRGhCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyIvKiogY29kZSBmcm9tIGh0dHBzOi8vZ2l0aHViLmNvbS9hbmd1bGFyL21hdGVyaWFsMiAqL1xyXG5pbXBvcnQgeyBEaXJlY3Rpb24sIERpcmVjdGlvbmFsaXR5IH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2JpZGknO1xyXG5pbXBvcnQge1xyXG4gIEFmdGVyQ29udGVudENoZWNrZWQsXHJcbiAgQWZ0ZXJDb250ZW50SW5pdCxcclxuICBDb21wb25lbnQsXHJcbiAgQ29udGVudENoaWxkLFxyXG4gIENvbnRlbnRDaGlsZHJlbixcclxuICBFbGVtZW50UmVmLFxyXG4gIEhvc3RCaW5kaW5nLFxyXG4gIElucHV0LFxyXG4gIE5nWm9uZSxcclxuICBPcHRpb25hbCxcclxuICBRdWVyeUxpc3QsXHJcbiAgUmVuZGVyZXIyLFxyXG4gIFRlbXBsYXRlUmVmLFxyXG4gIFZpZXdDaGlsZCxcclxuICBWaWV3RW5jYXBzdWxhdGlvblxyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBTdWJzY3JpcHRpb24sIGZyb21FdmVudCwgbWVyZ2UsIG9mIGFzIG9ic2VydmFibGVPZiB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBhdWRpdFRpbWUsIHN0YXJ0V2l0aCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuaW1wb3J0IHsgdG9Cb29sZWFuIH0gZnJvbSAnLi4vdXRpbC9jb252ZXJ0JztcclxuaW1wb3J0IHsgTWVmRGV2VGFiTGFiZWxEaXJlY3RpdmUgfSBmcm9tICcuL3RhYi1sYWJlbC5kaXJlY3RpdmUnO1xyXG5pbXBvcnQgeyBNZWZEZXZUYWJzSW5rQmFyRGlyZWN0aXZlIH0gZnJvbSAnLi90YWJzLWluay1iYXIuZGlyZWN0aXZlJztcclxuXHJcbmNvbnN0IEVYQUdHRVJBVEVEX09WRVJTQ1JPTEwgPSA2NDtcclxuZXhwb3J0IHR5cGUgU2Nyb2xsRGlyZWN0aW9uID0gJ2FmdGVyJyB8ICdiZWZvcmUnO1xyXG5cclxuLyoqIGR1cGxpY2F0ZWQgZGVmaW5lZCBodHRwczovL2dpdGh1Yi5jb20vYW5ndWxhci9hbmd1bGFyLWNsaS9pc3N1ZXMvMjAzNCAqKi9cclxuZXhwb3J0IHR5cGUgVGFiUG9zaXRpb25Nb2RlID0gJ2hvcml6b250YWwnIHwgJ3ZlcnRpY2FsJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnbWVmZGV2LXRhYnMtbmF2JyxcclxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxyXG4gIHRlbXBsYXRlVXJsOiBcIi4vdGFicy1uYXYuY29tcG9uZW50Lmh0bWxcIlxyXG59KVxyXG5leHBvcnQgY2xhc3MgTWVmRGV2VGFic05hdkNvbXBvbmVudCBpbXBsZW1lbnRzIEFmdGVyQ29udGVudENoZWNrZWQsIEFmdGVyQ29udGVudEluaXQge1xyXG4gIHByaXZhdGUgX2FuaW1hdGVkID0gdHJ1ZTtcclxuICBwcml2YXRlIF9oaWRlQmFyID0gZmFsc2U7XHJcbiAgcHJpdmF0ZSBfc2hvd1BhZ2luYXRpb24gPSB0cnVlO1xyXG5cclxuICBfc2hvd1BhZ2luYXRpb25Db250cm9scyA9IGZhbHNlO1xyXG4gIF9kaXNhYmxlU2Nyb2xsQWZ0ZXIgPSB0cnVlO1xyXG4gIF9kaXNhYmxlU2Nyb2xsQmVmb3JlID0gdHJ1ZTtcclxuICBfc2Nyb2xsRGlzdGFuY2UgPSAwO1xyXG4gIF9zZWxlY3RlZEluZGV4Q2hhbmdlZCA9IGZhbHNlO1xyXG4gIF9yZWFsaWduSW5rQmFyOiBTdWJzY3JpcHRpb24gfCBudWxsID0gbnVsbDtcclxuICBfdGFiTGFiZWxDb3VudDogbnVtYmVyO1xyXG4gIF9zY3JvbGxEaXN0YW5jZUNoYW5nZWQ6IGJvb2xlYW47XHJcbiAgX3NlbGVjdGVkSW5kZXggPSAwO1xyXG4gIF90YWJQb3NpdGlvbk1vZGU6IFRhYlBvc2l0aW9uTW9kZSA9ICdob3Jpem9udGFsJztcclxuICBfdGFiUG9zaXRpb24gPSAndG9wJztcclxuICBASW5wdXQoKSBTaXplID0gJ2RlZmF1bHQnO1xyXG4gIF90eXBlID0gJ2xpbmUnO1xyXG5cclxuICBASW5wdXQoKVxyXG4gIHNldCBBbmltYXRlZCh2YWx1ZTogYm9vbGVhbikge1xyXG4gICAgdGhpcy5fYW5pbWF0ZWQgPSB0b0Jvb2xlYW4odmFsdWUpO1xyXG4gIH1cclxuXHJcbiAgZ2V0IEFuaW1hdGVkKCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIHRoaXMuX2FuaW1hdGVkO1xyXG4gIH1cclxuXHJcbiAgQElucHV0KClcclxuICBzZXQgUG9zaXRpb24odmFsdWU6IHN0cmluZykge1xyXG4gICAgdGhpcy5fdGFiUG9zaXRpb24gPSB2YWx1ZTtcclxuICB9XHJcblxyXG4gIGdldCBQb3NpdGlvbigpOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuIHRoaXMuX3RhYlBvc2l0aW9uO1xyXG4gIH1cclxuXHJcbiAgQElucHV0KClcclxuICBzZXQgSGlkZUJhcih2YWx1ZTogYm9vbGVhbikge1xyXG4gICAgdGhpcy5faGlkZUJhciA9IHRvQm9vbGVhbih2YWx1ZSk7XHJcbiAgfVxyXG5cclxuICBnZXQgSGlkZUJhcigpOiBib29sZWFuIHtcclxuICAgIHJldHVybiB0aGlzLl9oaWRlQmFyO1xyXG4gIH1cclxuXHJcbiAgQElucHV0KClcclxuICBzZXQgVHlwZSh2YWx1ZTogc3RyaW5nKSB7XHJcbiAgICB0aGlzLl90eXBlID0gdmFsdWU7XHJcbiAgfVxyXG5cclxuICBnZXQgVHlwZSgpOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuIHRoaXMuX3R5cGU7XHJcbiAgfVxyXG5cclxuICBAQ29udGVudENoaWxkKCd0YWJCYXJFeHRyYUNvbnRlbnQnLCB7IHN0YXRpYzogdHJ1ZSB9KSBfdGFiQmFyRXh0cmFDb250ZW50OiBUZW1wbGF0ZVJlZjx2b2lkPjtcclxuICBAQ29udGVudENoaWxkcmVuKE1lZkRldlRhYkxhYmVsRGlyZWN0aXZlKSBfbGFiZWxXcmFwcGVyczogUXVlcnlMaXN0PE1lZkRldlRhYkxhYmVsRGlyZWN0aXZlPjtcclxuICBAVmlld0NoaWxkKE1lZkRldlRhYnNJbmtCYXJEaXJlY3RpdmUsIHsgc3RhdGljOiB0cnVlIH0pIF9pbmtCYXI6IE1lZkRldlRhYnNJbmtCYXJEaXJlY3RpdmU7XHJcbiAgQFZpZXdDaGlsZCgndGFiTGlzdENvbnRhaW5lcicsIHsgc3RhdGljOiB0cnVlIH0pIF90YWJMaXN0Q29udGFpbmVyOiBFbGVtZW50UmVmO1xyXG4gIEBWaWV3Q2hpbGQoJ3RhYkxpc3QnLCB7IHN0YXRpYzogdHJ1ZSB9KSBfdGFiTGlzdDogRWxlbWVudFJlZjtcclxuXHJcbiAgQElucHV0KClcclxuICBzZXQgU2hvd1BhZ2luYXRpb24odmFsdWU6IGJvb2xlYW4pIHtcclxuICAgIHRoaXMuX3Nob3dQYWdpbmF0aW9uID0gdG9Cb29sZWFuKHZhbHVlKTtcclxuICB9XHJcblxyXG4gIGdldCBTaG93UGFnaW5hdGlvbigpOiBib29sZWFuIHtcclxuICAgIHJldHVybiB0aGlzLl9zaG93UGFnaW5hdGlvbjtcclxuICB9XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgc2V0IFBvc2l0aW9uTW9kZSh2YWx1ZTogVGFiUG9zaXRpb25Nb2RlKSB7XHJcbiAgICB0aGlzLl90YWJQb3NpdGlvbk1vZGUgPSB2YWx1ZTtcclxuICAgIHRoaXMuX2FsaWduSW5rQmFyVG9TZWxlY3RlZFRhYigpO1xyXG4gICAgaWYgKHRoaXMuU2hvd1BhZ2luYXRpb24pIHtcclxuICAgICAgdGhpcy5fdXBkYXRlUGFnaW5hdGlvbigpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgZ2V0IFBvc2l0aW9uTW9kZSgpOiBUYWJQb3NpdGlvbk1vZGUge1xyXG4gICAgcmV0dXJuIHRoaXMuX3RhYlBvc2l0aW9uTW9kZTtcclxuICB9XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgc2V0IHNlbGVjdGVkSW5kZXgodmFsdWU6IG51bWJlcikge1xyXG4gICAgdGhpcy5fc2VsZWN0ZWRJbmRleENoYW5nZWQgPSB0aGlzLl9zZWxlY3RlZEluZGV4ICE9PSB2YWx1ZTtcclxuXHJcbiAgICB0aGlzLl9zZWxlY3RlZEluZGV4ID0gdmFsdWU7XHJcbiAgfVxyXG5cclxuICBnZXQgc2VsZWN0ZWRJbmRleCgpOiBudW1iZXIge1xyXG4gICAgcmV0dXJuIHRoaXMuX3NlbGVjdGVkSW5kZXg7XHJcbiAgfVxyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHB1YmxpYyBfZWxlbWVudFJlZjogRWxlbWVudFJlZixcclxuICAgIHByaXZhdGUgX25nWm9uZTogTmdab25lLFxyXG4gICAgcHJpdmF0ZSBfcmVuZGVyZXI6IFJlbmRlcmVyMixcclxuICAgIEBPcHRpb25hbCgpIHByaXZhdGUgX2RpcjogRGlyZWN0aW9uYWxpdHlcclxuICApIHt9XHJcblxyXG4gIF9vbkNvbnRlbnRDaGFuZ2VzKCk6IHZvaWQge1xyXG4gICAgaWYgKHRoaXMuU2hvd1BhZ2luYXRpb24pIHtcclxuICAgICAgdGhpcy5fdXBkYXRlUGFnaW5hdGlvbigpO1xyXG4gICAgfVxyXG4gICAgdGhpcy5fYWxpZ25JbmtCYXJUb1NlbGVjdGVkVGFiKCk7XHJcbiAgfVxyXG5cclxuICBfc2Nyb2xsSGVhZGVyKHNjcm9sbERpcjogU2Nyb2xsRGlyZWN0aW9uKTogdm9pZCB7XHJcbiAgICAvLyBNb3ZlIHRoZSBzY3JvbGwgZGlzdGFuY2Ugb25lLXRoaXJkIHRoZSBsZW5ndGggb2YgdGhlIHRhYiBsaXN0J3Mgdmlld3BvcnQuXHJcbiAgICB0aGlzLnNjcm9sbERpc3RhbmNlICs9ICgoc2Nyb2xsRGlyID09PSAnYmVmb3JlJyA/IC0xIDogMSkgKiB0aGlzLnZpZXdXaWR0aEhlaWdodFBpeCkgLyAzO1xyXG4gIH1cclxuXHJcbiAgbmdBZnRlckNvbnRlbnRDaGVja2VkKCk6IHZvaWQge1xyXG4gICAgaWYgKHRoaXMuX3RhYkxhYmVsQ291bnQgIT09IHRoaXMuX2xhYmVsV3JhcHBlcnMubGVuZ3RoKSB7XHJcbiAgICAgIGlmICh0aGlzLlNob3dQYWdpbmF0aW9uKSB7XHJcbiAgICAgICAgdGhpcy5fdXBkYXRlUGFnaW5hdGlvbigpO1xyXG4gICAgICB9XHJcbiAgICAgIHRoaXMuX3RhYkxhYmVsQ291bnQgPSB0aGlzLl9sYWJlbFdyYXBwZXJzLmxlbmd0aDtcclxuICAgIH1cclxuICAgIGlmICh0aGlzLl9zZWxlY3RlZEluZGV4Q2hhbmdlZCkge1xyXG4gICAgICB0aGlzLl9zY3JvbGxUb0xhYmVsKHRoaXMuX3NlbGVjdGVkSW5kZXgpO1xyXG4gICAgICBpZiAodGhpcy5TaG93UGFnaW5hdGlvbikge1xyXG4gICAgICAgIHRoaXMuX2NoZWNrU2Nyb2xsaW5nQ29udHJvbHMoKTtcclxuICAgICAgfVxyXG4gICAgICB0aGlzLl9hbGlnbklua0JhclRvU2VsZWN0ZWRUYWIoKTtcclxuICAgICAgdGhpcy5fc2VsZWN0ZWRJbmRleENoYW5nZWQgPSBmYWxzZTtcclxuICAgIH1cclxuICAgIGlmICh0aGlzLl9zY3JvbGxEaXN0YW5jZUNoYW5nZWQpIHtcclxuICAgICAgaWYgKHRoaXMuU2hvd1BhZ2luYXRpb24pIHtcclxuICAgICAgICB0aGlzLl91cGRhdGVUYWJTY3JvbGxQb3NpdGlvbigpO1xyXG4gICAgICB9XHJcbiAgICAgIHRoaXMuX3Njcm9sbERpc3RhbmNlQ2hhbmdlZCA9IGZhbHNlO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgbmdBZnRlckNvbnRlbnRJbml0KCk6IHZvaWQge1xyXG4gICAgdGhpcy5fcmVhbGlnbklua0JhciA9IHRoaXMuX25nWm9uZS5ydW5PdXRzaWRlQW5ndWxhcigoKSA9PiB7XHJcbiAgICAgIGNvbnN0IGRpckNoYW5nZSA9IHRoaXMuX2RpciA/IHRoaXMuX2Rpci5jaGFuZ2UgOiBvYnNlcnZhYmxlT2YobnVsbCk7XHJcbiAgICAgIGNvbnN0IHJlc2l6ZSA9IHR5cGVvZiB3aW5kb3cgIT09ICd1bmRlZmluZWQnID8gZnJvbUV2ZW50KHdpbmRvdywgJ3Jlc2l6ZScpLnBpcGUoYXVkaXRUaW1lKDEwKSkgOiBvYnNlcnZhYmxlT2YobnVsbCk7XHJcbiAgICAgIC8vQHRzLWlnbm9yZVxyXG4gICAgICByZXR1cm4gbWVyZ2UoZGlyQ2hhbmdlLCByZXNpemUpXHJcbiAgICAgICAgLnBpcGUoc3RhcnRXaXRoKG51bGwpKVxyXG4gICAgICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xyXG4gICAgICAgICAgaWYgKHRoaXMuU2hvd1BhZ2luYXRpb24pIHtcclxuICAgICAgICAgICAgdGhpcy5fdXBkYXRlUGFnaW5hdGlvbigpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgdGhpcy5fYWxpZ25JbmtCYXJUb1NlbGVjdGVkVGFiKCk7XHJcbiAgICAgICAgfSk7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIF91cGRhdGVUYWJTY3JvbGxQb3NpdGlvbigpOiB2b2lkIHtcclxuICAgIGNvbnN0IHNjcm9sbERpc3RhbmNlID0gdGhpcy5zY3JvbGxEaXN0YW5jZTtcclxuICAgIGlmICh0aGlzLlBvc2l0aW9uTW9kZSA9PT0gJ2hvcml6b250YWwnKSB7XHJcbiAgICAgIGNvbnN0IHRyYW5zbGF0ZVggPSB0aGlzLl9nZXRMYXlvdXREaXJlY3Rpb24oKSA9PT0gJ2x0cicgPyAtc2Nyb2xsRGlzdGFuY2UgOiBzY3JvbGxEaXN0YW5jZTtcclxuICAgICAgdGhpcy5fcmVuZGVyZXIuc2V0U3R5bGUodGhpcy5fdGFiTGlzdC5uYXRpdmVFbGVtZW50LCAndHJhbnNmb3JtJywgYHRyYW5zbGF0ZTNkKCR7dHJhbnNsYXRlWH1weCwgMCwgMClgKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuX3JlbmRlcmVyLnNldFN0eWxlKHRoaXMuX3RhYkxpc3QubmF0aXZlRWxlbWVudCwgJ3RyYW5zZm9ybScsIGB0cmFuc2xhdGUzZCgwLCR7LXNjcm9sbERpc3RhbmNlfXB4LCAwKWApO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgX3VwZGF0ZVBhZ2luYXRpb24oKTogdm9pZCB7XHJcbiAgICB0aGlzLl9jaGVja1BhZ2luYXRpb25FbmFibGVkKCk7XHJcbiAgICB0aGlzLl9jaGVja1Njcm9sbGluZ0NvbnRyb2xzKCk7XHJcbiAgICB0aGlzLl91cGRhdGVUYWJTY3JvbGxQb3NpdGlvbigpO1xyXG4gIH1cclxuXHJcbiAgX2NoZWNrUGFnaW5hdGlvbkVuYWJsZWQoKTogdm9pZCB7XHJcbiAgICB0aGlzLl9zaG93UGFnaW5hdGlvbkNvbnRyb2xzID0gdGhpcy50YWJMaXN0U2Nyb2xsV2lkdGhIZWlnaHRQaXggPiB0aGlzLmVsZW1lbnRSZWZPZmZTZXRXaWR0aEhlaWdodDtcclxuXHJcbiAgICBpZiAoIXRoaXMuX3Nob3dQYWdpbmF0aW9uQ29udHJvbHMpIHtcclxuICAgICAgdGhpcy5zY3JvbGxEaXN0YW5jZSA9IDA7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBfc2Nyb2xsVG9MYWJlbChsYWJlbEluZGV4OiBudW1iZXIpOiB2b2lkIHtcclxuICAgIGNvbnN0IHNlbGVjdGVkTGFiZWwgPSB0aGlzLl9sYWJlbFdyYXBwZXJzID8gdGhpcy5fbGFiZWxXcmFwcGVycy50b0FycmF5KClbbGFiZWxJbmRleF0gOiBudWxsO1xyXG5cclxuICAgIGlmICghc2VsZWN0ZWRMYWJlbCkge1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgLy8gVGhlIHZpZXcgbGVuZ3RoIGlzIHRoZSB2aXNpYmxlIHdpZHRoIG9mIHRoZSB0YWIgbGFiZWxzLlxyXG5cclxuICAgIGxldCBsYWJlbEJlZm9yZVBvczogbnVtYmVyO1xyXG4gICAgbGV0IGxhYmVsQWZ0ZXJQb3M6IG51bWJlcjtcclxuICAgIGlmICh0aGlzLlBvc2l0aW9uTW9kZSA9PT0gJ2hvcml6b250YWwnKSB7XHJcbiAgICAgIGlmICh0aGlzLl9nZXRMYXlvdXREaXJlY3Rpb24oKSA9PT0gJ2x0cicpIHtcclxuICAgICAgICBsYWJlbEJlZm9yZVBvcyA9IHNlbGVjdGVkTGFiZWwuZ2V0T2Zmc2V0TGVmdCgpO1xyXG4gICAgICAgIGxhYmVsQWZ0ZXJQb3MgPSBsYWJlbEJlZm9yZVBvcyArIHNlbGVjdGVkTGFiZWwuZ2V0T2Zmc2V0V2lkdGgoKTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICBsYWJlbEFmdGVyUG9zID0gdGhpcy5fdGFiTGlzdC5uYXRpdmVFbGVtZW50Lm9mZnNldFdpZHRoIC0gc2VsZWN0ZWRMYWJlbC5nZXRPZmZzZXRMZWZ0KCk7XHJcbiAgICAgICAgbGFiZWxCZWZvcmVQb3MgPSBsYWJlbEFmdGVyUG9zIC0gc2VsZWN0ZWRMYWJlbC5nZXRPZmZzZXRXaWR0aCgpO1xyXG4gICAgICB9XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBsYWJlbEJlZm9yZVBvcyA9IHNlbGVjdGVkTGFiZWwuZ2V0T2Zmc2V0VG9wKCk7XHJcbiAgICAgIGxhYmVsQWZ0ZXJQb3MgPSBsYWJlbEJlZm9yZVBvcyArIHNlbGVjdGVkTGFiZWwuZ2V0T2Zmc2V0SGVpZ2h0KCk7XHJcbiAgICB9XHJcbiAgICBjb25zdCBiZWZvcmVWaXNpYmxlUG9zID0gdGhpcy5zY3JvbGxEaXN0YW5jZTtcclxuICAgIGNvbnN0IGFmdGVyVmlzaWJsZVBvcyA9IHRoaXMuc2Nyb2xsRGlzdGFuY2UgKyB0aGlzLnZpZXdXaWR0aEhlaWdodFBpeDtcclxuXHJcbiAgICBpZiAobGFiZWxCZWZvcmVQb3MgPCBiZWZvcmVWaXNpYmxlUG9zKSB7XHJcbiAgICAgIC8vIFNjcm9sbCBoZWFkZXIgdG8gbW92ZSBsYWJlbCB0byB0aGUgYmVmb3JlIGRpcmVjdGlvblxyXG4gICAgICB0aGlzLnNjcm9sbERpc3RhbmNlIC09IGJlZm9yZVZpc2libGVQb3MgLSBsYWJlbEJlZm9yZVBvcyArIEVYQUdHRVJBVEVEX09WRVJTQ1JPTEw7XHJcbiAgICB9IGVsc2UgaWYgKGxhYmVsQWZ0ZXJQb3MgPiBhZnRlclZpc2libGVQb3MpIHtcclxuICAgICAgLy8gU2Nyb2xsIGhlYWRlciB0byBtb3ZlIGxhYmVsIHRvIHRoZSBhZnRlciBkaXJlY3Rpb25cclxuICAgICAgdGhpcy5zY3JvbGxEaXN0YW5jZSArPSBsYWJlbEFmdGVyUG9zIC0gYWZ0ZXJWaXNpYmxlUG9zICsgRVhBR0dFUkFURURfT1ZFUlNDUk9MTDtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIF9jaGVja1Njcm9sbGluZ0NvbnRyb2xzKCk6IHZvaWQge1xyXG4gICAgLy8gQ2hlY2sgaWYgdGhlIHBhZ2luYXRpb24gYXJyb3dzIHNob3VsZCBiZSBhY3RpdmF0ZWQuXHJcbiAgICB0aGlzLl9kaXNhYmxlU2Nyb2xsQmVmb3JlID0gdGhpcy5zY3JvbGxEaXN0YW5jZSA9PT0gMDtcclxuICAgIHRoaXMuX2Rpc2FibGVTY3JvbGxBZnRlciA9IHRoaXMuc2Nyb2xsRGlzdGFuY2UgPT09IHRoaXMuX2dldE1heFNjcm9sbERpc3RhbmNlKCk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBEZXRlcm1pbmVzIHdoYXQgaXMgdGhlIG1heGltdW0gbGVuZ3RoIGluIHBpeGVscyB0aGF0IGNhbiBiZSBzZXQgZm9yIHRoZSBzY3JvbGwgZGlzdGFuY2UuIFRoaXNcclxuICAgKiBpcyBlcXVhbCB0byB0aGUgZGlmZmVyZW5jZSBpbiB3aWR0aCBiZXR3ZWVuIHRoZSB0YWIgbGlzdCBjb250YWluZXIgYW5kIHRhYiBoZWFkZXIgY29udGFpbmVyLlxyXG4gICAqXHJcbiAgICogVGhpcyBpcyBhbiBleHBlbnNpdmUgY2FsbCB0aGF0IGZvcmNlcyBhIGxheW91dCByZWZsb3cgdG8gY29tcHV0ZSBib3ggYW5kIHNjcm9sbCBtZXRyaWNzIGFuZFxyXG4gICAqIHNob3VsZCBiZSBjYWxsZWQgc3BhcmluZ2x5LlxyXG4gICAqL1xyXG4gIF9nZXRNYXhTY3JvbGxEaXN0YW5jZSgpOiBudW1iZXIge1xyXG4gICAgcmV0dXJuIHRoaXMudGFiTGlzdFNjcm9sbFdpZHRoSGVpZ2h0UGl4IC0gdGhpcy52aWV3V2lkdGhIZWlnaHRQaXggfHwgMDtcclxuICB9XHJcblxyXG4gIC8qKiBTZXRzIHRoZSBkaXN0YW5jZSBpbiBwaXhlbHMgdGhhdCB0aGUgdGFiIGhlYWRlciBzaG91bGQgYmUgdHJhbnNmb3JtZWQgaW4gdGhlIFgtYXhpcy4gKi9cclxuICBzZXQgc2Nyb2xsRGlzdGFuY2UodjogbnVtYmVyKSB7XHJcbiAgICB0aGlzLl9zY3JvbGxEaXN0YW5jZSA9IE1hdGgubWF4KDAsIE1hdGgubWluKHRoaXMuX2dldE1heFNjcm9sbERpc3RhbmNlKCksIHYpKTtcclxuXHJcbiAgICAvLyBNYXJrIHRoYXQgdGhlIHNjcm9sbCBkaXN0YW5jZSBoYXMgY2hhbmdlZCBzbyB0aGF0IGFmdGVyIHRoZSB2aWV3IGlzIGNoZWNrZWQsIHRoZSBDU1NcclxuICAgIC8vIHRyYW5zZm9ybWF0aW9uIGNhbiBtb3ZlIHRoZSBoZWFkZXIuXHJcbiAgICB0aGlzLl9zY3JvbGxEaXN0YW5jZUNoYW5nZWQgPSB0cnVlO1xyXG5cclxuICAgIHRoaXMuX2NoZWNrU2Nyb2xsaW5nQ29udHJvbHMoKTtcclxuICB9XHJcblxyXG4gIGdldCBzY3JvbGxEaXN0YW5jZSgpOiBudW1iZXIge1xyXG4gICAgcmV0dXJuIHRoaXMuX3Njcm9sbERpc3RhbmNlO1xyXG4gIH1cclxuXHJcbiAgZ2V0IHZpZXdXaWR0aEhlaWdodFBpeCgpOiBudW1iZXIge1xyXG4gICAgbGV0IFBBR0lOQVRJT05fUElYID0gMDtcclxuICAgIGlmICh0aGlzLl9zaG93UGFnaW5hdGlvbkNvbnRyb2xzKSB7XHJcbiAgICAgIFBBR0lOQVRJT05fUElYID0gNjQ7XHJcbiAgICB9XHJcbiAgICBpZiAodGhpcy5Qb3NpdGlvbk1vZGUgPT09ICdob3Jpem9udGFsJykge1xyXG4gICAgICByZXR1cm4gdGhpcy5fdGFiTGlzdENvbnRhaW5lci5uYXRpdmVFbGVtZW50Lm9mZnNldFdpZHRoIC0gUEFHSU5BVElPTl9QSVg7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICByZXR1cm4gdGhpcy5fdGFiTGlzdENvbnRhaW5lci5uYXRpdmVFbGVtZW50Lm9mZnNldEhlaWdodCAtIFBBR0lOQVRJT05fUElYO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgZ2V0IHRhYkxpc3RTY3JvbGxXaWR0aEhlaWdodFBpeCgpOiBudW1iZXIge1xyXG4gICAgaWYgKHRoaXMuUG9zaXRpb25Nb2RlID09PSAnaG9yaXpvbnRhbCcpIHtcclxuICAgICAgcmV0dXJuIHRoaXMuX3RhYkxpc3QubmF0aXZlRWxlbWVudC5zY3JvbGxXaWR0aDtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHJldHVybiB0aGlzLl90YWJMaXN0Lm5hdGl2ZUVsZW1lbnQuc2Nyb2xsSGVpZ2h0O1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgZ2V0IGVsZW1lbnRSZWZPZmZTZXRXaWR0aEhlaWdodCgpOiBudW1iZXIge1xyXG4gICAgaWYgKHRoaXMuUG9zaXRpb25Nb2RlID09PSAnaG9yaXpvbnRhbCcpIHtcclxuICAgICAgcmV0dXJuIHRoaXMuX2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5vZmZzZXRXaWR0aDtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHJldHVybiB0aGlzLl9lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQub2Zmc2V0SGVpZ2h0O1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgX2dldExheW91dERpcmVjdGlvbigpOiBEaXJlY3Rpb24ge1xyXG4gICAgcmV0dXJuIHRoaXMuX2RpciAmJiB0aGlzLl9kaXIudmFsdWUgPT09ICdydGwnID8gJ3J0bCcgOiAnbHRyJztcclxuICB9XHJcblxyXG4gIF9hbGlnbklua0JhclRvU2VsZWN0ZWRUYWIoKTogdm9pZCB7XHJcbiAgICBpZiAodGhpcy5UeXBlICE9PSAnZmlsbHVwJykge1xyXG4gICAgICBjb25zdCBzZWxlY3RlZExhYmVsV3JhcHBlciA9XHJcbiAgICAgICAgdGhpcy5fbGFiZWxXcmFwcGVycyAmJiB0aGlzLl9sYWJlbFdyYXBwZXJzLmxlbmd0aFxyXG4gICAgICAgICAgPyB0aGlzLl9sYWJlbFdyYXBwZXJzLnRvQXJyYXkoKVt0aGlzLnNlbGVjdGVkSW5kZXhdLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudFxyXG4gICAgICAgICAgOiBudWxsO1xyXG4gICAgICBpZiAodGhpcy5faW5rQmFyKSB7XHJcbiAgICAgICAgdGhpcy5faW5rQmFyLmFsaWduVG9FbGVtZW50KHNlbGVjdGVkTGFiZWxXcmFwcGVyKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxufVxyXG4iLCI8ZGl2IGNsYXNzPVwibmF2LXRhYnMtd3JhcHBlclwiIFtjbGFzcy5zY3JvbGxpbmddPVwiX3Nob3dQYWdpbmF0aW9uQ29udHJvbHNcIiAjdGFiTGlzdENvbnRhaW5lcj5cclxuICAgIDxkaXYgY2xhc3M9XCJuYXYtd3JhcFwiPlxyXG4gICAgICA8dWxcclxuICAgICAgICBjbGFzcz1cIm5hdiBuYXYtdGFicyBuYXYtdGFicy17eyBfdHlwZSB9fSBuYXYtdGFicy17eyBfdGFiUG9zaXRpb24gfX1cIlxyXG4gICAgICAgIFtjbGFzcy50YWJzLW5hdi1hbmltYXRlZF09XCJBbmltYXRlZFwiXHJcbiAgICAgICAgI3RhYkxpc3RcclxuICAgICAgICAoY2RrT2JzZXJ2ZUNvbnRlbnQpPVwiX29uQ29udGVudENoYW5nZXMoKVwiXHJcbiAgICAgID5cclxuICAgICAgICA8ZGl2XHJcbiAgICAgICAgICBjbGFzcz1cImFjdGl2ZS1iYXJcIlxyXG4gICAgICAgICAgcGctdGFicy1pbmstYmFyXHJcbiAgICAgICAgICBbaGlkZGVuXT1cIkhpZGVCYXJcIlxyXG4gICAgICAgICAgW0FuaW1hdGVkXT1cIkFuaW1hdGVkXCJcclxuICAgICAgICAgIFtQb3NpdGlvbk1vZGVdPVwiUG9zaXRpb25Nb2RlXCJcclxuICAgICAgICAgIHN0eWxlPVwiZGlzcGxheTogYmxvY2s7XCJcclxuICAgICAgICA+PC9kaXY+XHJcbiAgICAgICAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxyXG4gICAgICA8L3VsPlxyXG4gICAgPC9kaXY+XHJcbiAgPC9kaXY+Il19
@@ -1,179 +0,0 @@
1
- /** code from https://github.com/angular/material2 */
2
- import { Component, ContentChild, EventEmitter, Input, Output, ViewChild, ViewEncapsulation } from '@angular/core';
3
- import { map } from 'rxjs/operators';
4
- import * as i0 from "@angular/core";
5
- import * as i1 from "@angular/common";
6
- import * as i2 from "./tabs-nav.component";
7
- import * as i3 from "./tab-label.directive";
8
- import * as i4 from "./tab-body.component";
9
- export class TabChangeEvent {
10
- }
11
- /**
12
- * Example of usage:
13
- * <example-url>https://mef.dev/ui_kit_demo/view/tabset</example-url>
14
- */
15
- export class MefDevTabSetComponent {
16
- constructor(_renderer) {
17
- this._renderer = _renderer;
18
- this._prefixCls = 'nav-tabs';
19
- this._tabPosition = 'top';
20
- this._tabPositionMode = 'horizontal';
21
- this._indexToSelect = 0;
22
- this._selectedIndex = null;
23
- this._isViewInit = false;
24
- this._tabs = [];
25
- this._tabAnimation = '';
26
- this._extra_tab_class = '';
27
- this._extra_tabcontent_class = '';
28
- this.Animated = true;
29
- this.ShowPagination = true;
30
- this.Hide = false;
31
- this.SelectChange = new EventEmitter(true);
32
- this.Size = 'default';
33
- this._type = 'line';
34
- this.tabs = [];
35
- }
36
- set SelectedIndex(value) {
37
- this._indexToSelect = value;
38
- }
39
- get SelectedIndex() {
40
- return this._selectedIndex;
41
- }
42
- get SelectedIndexChange() {
43
- //@ts-ignore
44
- return this.SelectChange.pipe(map((event) => event.index));
45
- }
46
- set TabPosition(value) {
47
- this._tabPosition = value;
48
- if (this._tabPosition === 'top' || this._tabPosition === 'bottom') {
49
- this._tabPositionMode = 'horizontal';
50
- }
51
- else {
52
- this._tabPositionMode = 'vertical';
53
- }
54
- }
55
- get TabPosition() {
56
- return this._tabPosition;
57
- }
58
- set extraTabClass(value) {
59
- this._extra_tab_class = value;
60
- }
61
- set extraTabContentClass(value) {
62
- this._extra_tabcontent_class = value;
63
- }
64
- set Type(value) {
65
- if (this._type === value) {
66
- return;
67
- }
68
- this._type = value;
69
- this._setClassMap();
70
- }
71
- set tabAnimation(value) {
72
- this._tabAnimation = value;
73
- }
74
- get Type() {
75
- return this._type;
76
- }
77
- _setPosition(value) { }
78
- _setClassMap() { }
79
- clickLabel(index) {
80
- if (this._tabs[index].Disabled) {
81
- }
82
- else {
83
- this.SelectedIndex = index;
84
- this._tabs[index].pgClick.emit();
85
- }
86
- }
87
- ngOnInit() {
88
- this._setClassMap();
89
- }
90
- ngAfterContentChecked() {
91
- // Clamp the next selected index to the bounds of 0 and the tabs length. Note the `|| 0`, which
92
- // ensures that values like NaN can't get through and which would otherwise throw the
93
- // component into an infinite loop (since Math.max(NaN, 0) === NaN).
94
- const indexToSelect = (this._indexToSelect = Math.min(this._tabs.length - 1, Math.max(this._indexToSelect || 0, 0)));
95
- // If there is a change in selected index, emit a change event. Should not trigger if
96
- // the selected index has not yet been initialized.
97
- if (this._selectedIndex !== indexToSelect && this._selectedIndex != null) {
98
- this.SelectChange.emit(this._createChangeEvent(indexToSelect));
99
- }
100
- // Setup the position for each tab and optionally setup an origin on the next selected tab.
101
- this._tabs.forEach((tab, index) => {
102
- tab.position = index - indexToSelect;
103
- // If there is already a selected tab, then set up an origin for the next selected tab
104
- // if it doesn't have one already.
105
- if (this._selectedIndex != null && tab.position === 0 && !tab.origin) {
106
- tab.origin = indexToSelect - this._selectedIndex;
107
- }
108
- });
109
- this._selectedIndex = indexToSelect;
110
- }
111
- ngAfterViewInit() {
112
- this._isViewInit = true;
113
- }
114
- _createChangeEvent(index) {
115
- const event = new TabChangeEvent();
116
- event.index = index;
117
- if (this._tabs && this._tabs.length) {
118
- event.tab = this._tabs[index];
119
- this._tabs.forEach((item, i) => {
120
- if (i !== index) {
121
- item.pgDeselect.emit();
122
- }
123
- });
124
- event.tab.pgSelect.emit();
125
- }
126
- return event;
127
- }
128
- get inkBarAnimated() {
129
- return this.Animated === true || this.Animated.inkBar === true;
130
- }
131
- get tabPaneAnimated() {
132
- return this.Animated === true || this.Animated.tabPane === true;
133
- }
134
- }
135
- MefDevTabSetComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: MefDevTabSetComponent, deps: [{ token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Component });
136
- MefDevTabSetComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: MefDevTabSetComponent, selector: "mefdev-tabset", inputs: { TabBarExtraTemplate: "TabBarExtraTemplate", Animated: "Animated", ShowPagination: "ShowPagination", Hide: "Hide", SelectedIndex: "SelectedIndex", Size: "Size", TabPosition: "TabPosition", extraTabClass: "extraTabClass", extraTabContentClass: "extraTabContentClass", Type: "Type", tabAnimation: "tabAnimation" }, outputs: { SelectedIndexChange: "SelectedIndexChange", SelectChange: "SelectChange" }, queries: [{ propertyName: "TabBarExtraContent", first: true, predicate: ["TabBarExtraContent"], descendants: true, static: true }], viewQueries: [{ propertyName: "_tabNav", first: true, predicate: ["tabNav"], descendants: true, static: true }, { propertyName: "_tabContent", first: true, predicate: ["tabContent"], descendants: true, static: true }, { propertyName: "_hostContent", first: true, predicate: ["hostContent"], descendants: true, static: true }], ngImport: i0, template: "<div class=\"tab-wrapper tab-{{ _tabPositionMode }} {{ _tabPosition }} {{ _type }} {{ _extra_tab_class }}\" #hostContent>\r\n <mefdev-tabs-nav\r\n #tabNav\r\n [Size]=\"Size\"\r\n [Type]=\"Type\"\r\n [ShowPagination]=\"ShowPagination\"\r\n [PositionMode]=\"_tabPositionMode\"\r\n [Position]=\"_tabPosition\"\r\n [Animated]=\"inkBarAnimated\"\r\n [HideBar]=\"Hide\"\r\n [selectedIndex]=\"SelectedIndex\"\r\n >\r\n <ng-template #tabBarExtraContent>\r\n <ng-template [ngTemplateOutlet]=\"TabBarExtraTemplate || TabBarExtraContent\"></ng-template>\r\n </ng-template>\r\n <li pg-tab-label [disabled]=\"tab.disabled\" (click)=\"clickLabel(i)\" *ngFor=\"let tab of _tabs; let i = index\">\r\n <a href=\"javascript:void(0);\" class=\"\" [class.active]=\"SelectedIndex == i && !Hide\">\r\n <ng-template [ngTemplateOutlet]=\"tab._tabHeading\"></ng-template>\r\n </a>\r\n </mefdev-tabs-nav>\r\n <div class=\"tab-content-wrapper {{ _extra_tabcontent_class }}\">\r\n <div\r\n class=\"tab-content {{ _tabAnimation }}\"\r\n #tabContent\r\n [class.animated]=\"tabPaneAnimated\"\r\n [class.not-animated]=\"!tabPaneAnimated\"\r\n [style.margin-left.%]=\"tabPaneAnimated && -(SelectedIndex ?? -1) * 100\"\r\n >\r\n <mefdev-tab-body\r\n class=\"tab-pane\"\r\n [class.active]=\"SelectedIndex == i && !Hide\"\r\n [class.inactive]=\"SelectedIndex != i || Hide\"\r\n [content]=\"tab.content\"\r\n *ngFor=\"let tab of _tabs; let i = index\"\r\n >\r\n </mefdev-tab-body>\r\n </div>\r\n </div>\r\n </div>", dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i2.MefDevTabsNavComponent, selector: "mefdev-tabs-nav", inputs: ["Size", "Animated", "Position", "HideBar", "Type", "ShowPagination", "PositionMode", "selectedIndex"] }, { kind: "directive", type: i3.MefDevTabLabelDirective, selector: "[pg-tab-label]", inputs: ["disabled"] }, { kind: "component", type: i4.MefDevTabBodyComponent, selector: "mefdev-tab-body", inputs: ["content"] }], encapsulation: i0.ViewEncapsulation.None });
137
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: MefDevTabSetComponent, decorators: [{
138
- type: Component,
139
- args: [{ selector: 'mefdev-tabset', encapsulation: ViewEncapsulation.None, template: "<div class=\"tab-wrapper tab-{{ _tabPositionMode }} {{ _tabPosition }} {{ _type }} {{ _extra_tab_class }}\" #hostContent>\r\n <mefdev-tabs-nav\r\n #tabNav\r\n [Size]=\"Size\"\r\n [Type]=\"Type\"\r\n [ShowPagination]=\"ShowPagination\"\r\n [PositionMode]=\"_tabPositionMode\"\r\n [Position]=\"_tabPosition\"\r\n [Animated]=\"inkBarAnimated\"\r\n [HideBar]=\"Hide\"\r\n [selectedIndex]=\"SelectedIndex\"\r\n >\r\n <ng-template #tabBarExtraContent>\r\n <ng-template [ngTemplateOutlet]=\"TabBarExtraTemplate || TabBarExtraContent\"></ng-template>\r\n </ng-template>\r\n <li pg-tab-label [disabled]=\"tab.disabled\" (click)=\"clickLabel(i)\" *ngFor=\"let tab of _tabs; let i = index\">\r\n <a href=\"javascript:void(0);\" class=\"\" [class.active]=\"SelectedIndex == i && !Hide\">\r\n <ng-template [ngTemplateOutlet]=\"tab._tabHeading\"></ng-template>\r\n </a>\r\n </mefdev-tabs-nav>\r\n <div class=\"tab-content-wrapper {{ _extra_tabcontent_class }}\">\r\n <div\r\n class=\"tab-content {{ _tabAnimation }}\"\r\n #tabContent\r\n [class.animated]=\"tabPaneAnimated\"\r\n [class.not-animated]=\"!tabPaneAnimated\"\r\n [style.margin-left.%]=\"tabPaneAnimated && -(SelectedIndex ?? -1) * 100\"\r\n >\r\n <mefdev-tab-body\r\n class=\"tab-pane\"\r\n [class.active]=\"SelectedIndex == i && !Hide\"\r\n [class.inactive]=\"SelectedIndex != i || Hide\"\r\n [content]=\"tab.content\"\r\n *ngFor=\"let tab of _tabs; let i = index\"\r\n >\r\n </mefdev-tab-body>\r\n </div>\r\n </div>\r\n </div>" }]
140
- }], ctorParameters: function () { return [{ type: i0.Renderer2 }]; }, propDecorators: { TabBarExtraTemplate: [{
141
- type: Input
142
- }], TabBarExtraContent: [{
143
- type: ContentChild,
144
- args: ['TabBarExtraContent', { static: true }]
145
- }], _tabNav: [{
146
- type: ViewChild,
147
- args: ['tabNav', { static: true }]
148
- }], _tabContent: [{
149
- type: ViewChild,
150
- args: ['tabContent', { static: true }]
151
- }], _hostContent: [{
152
- type: ViewChild,
153
- args: ['hostContent', { static: true }]
154
- }], Animated: [{
155
- type: Input
156
- }], ShowPagination: [{
157
- type: Input
158
- }], Hide: [{
159
- type: Input
160
- }], SelectedIndex: [{
161
- type: Input
162
- }], SelectedIndexChange: [{
163
- type: Output
164
- }], SelectChange: [{
165
- type: Output
166
- }], Size: [{
167
- type: Input
168
- }], TabPosition: [{
169
- type: Input
170
- }], extraTabClass: [{
171
- type: Input
172
- }], extraTabContentClass: [{
173
- type: Input
174
- }], Type: [{
175
- type: Input
176
- }], tabAnimation: [{
177
- type: Input
178
- }] } });
179
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFic2V0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3VpLWtpdC1saWIvc3JjL2xpYi9wZy1jb21wb25lbnRzL3RhYnMvdGFic2V0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3VpLWtpdC1saWIvc3JjL2xpYi9wZy1jb21wb25lbnRzL3RhYnMvdGFic2V0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLHFEQUFxRDtBQUVyRCxPQUFPLEVBR0wsU0FBUyxFQUNULFlBQVksRUFFWixZQUFZLEVBQ1osS0FBSyxFQUVMLE1BQU0sRUFHTixTQUFTLEVBQ1QsaUJBQWlCLEVBQ2xCLE1BQU0sZUFBZSxDQUFDO0FBRXZCLE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7Ozs7O0FBVXJDLE1BQU0sT0FBTyxjQUFjO0NBRzFCO0FBT0Q7OztJQUdJO0FBTUosTUFBTSxPQUFPLHFCQUFxQjtJQXlKaEMsWUFBb0IsU0FBb0I7UUFBcEIsY0FBUyxHQUFULFNBQVMsQ0FBVztRQXRKeEMsZUFBVSxHQUFHLFVBQVUsQ0FBQztRQUV4QixpQkFBWSxHQUFnQixLQUFLLENBQUM7UUFDbEMscUJBQWdCLEdBQW9CLFlBQVksQ0FBQztRQUNqRCxtQkFBYyxHQUFrQixDQUFDLENBQUM7UUFDbEMsbUJBQWMsR0FBa0IsSUFBSSxDQUFDO1FBQ3JDLGdCQUFXLEdBQUcsS0FBSyxDQUFDO1FBQ3BCLFVBQUssR0FBeUIsRUFBRSxDQUFDO1FBQ2pDLGtCQUFhLEdBQUcsRUFBRSxDQUFDO1FBQ25CLHFCQUFnQixHQUFHLEVBQUUsQ0FBQztRQUN0Qiw0QkFBdUIsR0FBRyxFQUFFLENBQUM7UUFPcEIsYUFBUSxHQUFnQyxJQUFJLENBQUM7UUFDN0MsbUJBQWMsR0FBRyxJQUFJLENBQUM7UUFDdEIsU0FBSSxHQUFHLEtBQUssQ0FBQztRQWlC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S0FBSztnQkFNRixJQUFJO3NCQURQLEtBQUs7Z0JBVUYsWUFBWTtzQkFEZixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiLyoqIGNvZGUgZnJvbSBodHRwczovL2dpdGh1Yi5jb20vYW5ndWxhci9tYXRlcmlhbDIgKi9cclxuXHJcbmltcG9ydCB7XHJcbiAgQWZ0ZXJDb250ZW50Q2hlY2tlZCxcclxuICBBZnRlclZpZXdJbml0LFxyXG4gIENvbXBvbmVudCxcclxuICBDb250ZW50Q2hpbGQsXHJcbiAgRWxlbWVudFJlZixcclxuICBFdmVudEVtaXR0ZXIsXHJcbiAgSW5wdXQsXHJcbiAgT25Jbml0LFxyXG4gIE91dHB1dCxcclxuICBSZW5kZXJlcjIsXHJcbiAgVGVtcGxhdGVSZWYsXHJcbiAgVmlld0NoaWxkLFxyXG4gIFZpZXdFbmNhcHN1bGF0aW9uXHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgbWFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5pbXBvcnQgeyB0b0Jvb2xlYW4gfSBmcm9tICcuLi91dGlsL2NvbnZlcnQnO1xyXG5pbXBvcnQgeyBNZWZEZXZUYWJDb21wb25lbnQgfSBmcm9tICcuL3RhYi5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBNZWZEZXZUYWJzTmF2Q29tcG9uZW50IH0gZnJvbSAnLi90YWJzLW5hdi5jb21wb25lbnQnO1xyXG5cclxuZXhwb3J0IGludGVyZmFjZSBBbmltYXRlZEludGVyZmFjZSB7XHJcbiAgaW5rQmFyOiBib29sZWFuO1xyXG4gIHRhYlBhbmU6IGJvb2xlYW47XHJcbn1cclxuXHJcbmV4cG9ydCBjbGFzcyBUYWJDaGFuZ2VFdmVudCB7XHJcbiAgaW5kZXg6IG51bWJlcjtcclxuICB0YWI6IE1lZkRldlRhYkNvbXBvbmVudDtcclxufVxyXG5cclxuZXhwb3J0IHR5cGUgVGFiUG9zaXRpb24gPSAndG9wJyB8ICdib3R0b20nIHwgJ2xlZnQnIHwgJ3JpZ2h0JztcclxuZXhwb3J0IHR5cGUgVGFiUG9zaXRpb25Nb2RlID0gJ2hvcml6b250YWwnIHwgJ3ZlcnRpY2FsJztcclxuZXhwb3J0IHR5cGUgVGFiVHlwZSA9ICdsaW5lJyB8ICdmaWxsdXAnIHwgJ2xpbmV0cmlhbmdsZSc7XHJcblxyXG5cclxuLyoqXHJcbiAgKiBFeGFtcGxlIG9mIHVzYWdlOlxyXG4gICogPGV4YW1wbGUtdXJsPmh0dHBzOi8vbWVmLmRldi91aV9raXRfZGVtby92aWV3L3RhYnNldDwvZXhhbXBsZS11cmw+XHJcbiAgKi9cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdtZWZkZXYtdGFic2V0JyxcclxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxyXG4gIHRlbXBsYXRlVXJsOiBcIi4vdGFic2V0LmNvbXBvbmVudC5odG1sXCIsXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBNZWZEZXZUYWJTZXRDb21wb25lbnQgaW1wbGVtZW50cyBBZnRlckNvbnRlbnRDaGVja2VkLCBPbkluaXQsIEFmdGVyVmlld0luaXQge1xyXG4gIF9lbDphbnk7XHJcbiAgX2NsYXNzTWFwOmFueTtcclxuICBfcHJlZml4Q2xzID0gJ25hdi10YWJzJztcclxuICBfd2lkdGg6YW55O1xyXG4gIF90YWJQb3NpdGlvbjogVGFiUG9zaXRpb24gPSAndG9wJztcclxuICBfdGFiUG9zaXRpb25Nb2RlOiBUYWJQb3NpdGlvbk1vZGUgPSAnaG9yaXpvbnRhbCc7XHJcbiAgX2luZGV4VG9TZWxlY3Q6IG51bWJlciB8IG51bGwgPSAwO1xyXG4gIF9zZWxlY3RlZEluZGV4OiBudW1iZXIgfCBudWxsID0gbnVsbDtcclxuICBfaXNWaWV3SW5pdCA9IGZhbHNlO1xyXG4gIF90YWJzOiBNZWZEZXZUYWJDb21wb25lbnRbXSA9IFtdO1xyXG4gIF90YWJBbmltYXRpb24gPSAnJztcclxuICBfZXh0cmFfdGFiX2NsYXNzID0gJyc7XHJcbiAgX2V4dHJhX3RhYmNvbnRlbnRfY2xhc3MgPSAnJztcclxuXHJcbiAgQElucHV0KCkgVGFiQmFyRXh0cmFUZW1wbGF0ZTogVGVtcGxhdGVSZWY8dm9pZD47XHJcbiAgQENvbnRlbnRDaGlsZCgnVGFiQmFyRXh0cmFDb250ZW50JywgeyBzdGF0aWM6IHRydWUgfSkgVGFiQmFyRXh0cmFDb250ZW50OiBUZW1wbGF0ZVJlZjx2b2lkPjtcclxuICBAVmlld0NoaWxkKCd0YWJOYXYnLCB7IHN0YXRpYzogdHJ1ZSB9KSBfdGFiTmF2OiBNZWZEZXZUYWJzTmF2Q29tcG9uZW50O1xyXG4gIEBWaWV3Q2hpbGQoJ3RhYkNvbnRlbnQnLCB7IHN0YXRpYzogdHJ1ZSB9KSBfdGFiQ29udGVudDogRWxlbWVudFJlZjtcclxuICBAVmlld0NoaWxkKCdob3N0Q29udGVudCcsIHsgc3RhdGljOiB0cnVlIH0pIF9ob3N0Q29udGVudDogRWxlbWVudFJlZjtcclxuICBASW5wdXQoKSBBbmltYXRlZDogQW5pbWF0ZWRJbnRlcmZhY2UgfCBib29sZWFuID0gdHJ1ZTtcclxuICBASW5wdXQoKSBTaG93UGFnaW5hdGlvbiA9IHRydWU7XHJcbiAgQElucHV0KCkgSGlkZSA9IGZhbHNlO1xyXG5cclxuICBASW5wdXQoKVxyXG4gIHNldCBTZWxlY3RlZEluZGV4KHZhbHVlOiBudW1iZXIgfCBudWxsKSB7XHJcbiAgICB0aGlzLl9pbmRleFRvU2VsZWN0ID0gdmFsdWU7XHJcbiAgfVxyXG5cclxuICBnZXQgU2VsZWN0ZWRJbmRleCgpOiBudW1iZXIgfCBudWxsIHtcclxuICAgIHJldHVybiB0aGlzLl9zZWxlY3RlZEluZGV4O1xyXG4gIH1cclxuXHJcbiAgQE91dHB1dCgpXHJcbiAgZ2V0IFNlbGVjdGVkSW5kZXhDaGFuZ2UoKTogT2JzZXJ2YWJsZTxudW1iZXI+IHtcclxuICAgIC8vQHRzLWlnbm9yZVxyXG4gICAgcmV0dXJuIHRoaXMuU2VsZWN0Q2hhbmdlLnBpcGUobWFwKChldmVudDphbnkpID0+IGV2ZW50LmluZGV4KSk7XHJcbiAgfVxyXG5cclxuICBAT3V0cHV0KCkgU2VsZWN0Q2hhbmdlOiBFdmVudEVtaXR0ZXI8VGFiQ2hhbmdlRXZlbnQ+ID0gbmV3IEV2ZW50RW1pdHRlcjxUYWJDaGFuZ2VFdmVudD4odHJ1ZSk7XHJcblxyXG4gIEBJbnB1dCgpIFNpemUgPSAnZGVmYXVsdCc7XHJcbiAgX3R5cGU6IFRhYlR5cGUgPSAnbGluZSc7XHJcbiAgdGFiczogTWVmRGV2VGFiQ29tcG9uZW50W10gPSBbXTtcclxuXHJcbiAgQElucHV0KClcclxuICBzZXQgVGFiUG9zaXRpb24odmFsdWU6IFRhYlBvc2l0aW9uKSB7XHJcbiAgICB0aGlzLl90YWJQb3NpdGlvbiA9IHZhbHVlO1xyXG4gICAgaWYgKHRoaXMuX3RhYlBvc2l0aW9uID09PSAndG9wJyB8fCB0aGlzLl90YWJQb3NpdGlvbiA9PT0gJ2JvdHRvbScpIHtcclxuICAgICAgdGhpcy5fdGFiUG9zaXRpb25Nb2RlID0gJ2hvcml6b250YWwnO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5fdGFiUG9zaXRpb25Nb2RlID0gJ3ZlcnRpY2FsJztcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGdldCBUYWJQb3NpdGlvbigpOiBUYWJQb3NpdGlvbiB7XHJcbiAgICByZXR1cm4gdGhpcy5fdGFiUG9zaXRpb247XHJcbiAgfVxyXG5cclxuICBASW5wdXQoKVxyXG4gIHNldCBleHRyYVRhYkNsYXNzKHZhbHVlOiBzdHJpbmcpIHtcclxuICAgIHRoaXMuX2V4dHJhX3RhYl9jbGFzcyA9IHZhbHVlO1xyXG4gIH1cclxuICBASW5wdXQoKVxyXG4gIHNldCBleHRyYVRhYkNvbnRlbnRDbGFzcyh2YWx1ZTogc3RyaW5nKSB7XHJcbiAgICB0aGlzLl9leHRyYV90YWJjb250ZW50X2NsYXNzID0gdmFsdWU7XHJcbiAgfVxyXG5cclxuICBASW5wdXQoKVxyXG4gIHNldCBUeXBlKHZhbHVlOiBUYWJUeXBlKSB7XHJcbiAgICBpZiAodGhpcy5fdHlwZSA9PT0gdmFsdWUpIHtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgdGhpcy5fdHlwZSA9IHZhbHVlO1xyXG4gICAgdGhpcy5fc2V0Q2xhc3NNYXAoKTtcclxuICB9XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgc2V0IHRhYkFuaW1hdGlvbih2YWx1ZTogc3RyaW5nKSB7XHJcbiAgICB0aGlzLl90YWJBbmltYXRpb24gPSB2YWx1ZTtcclxuICB9XHJcblxyXG4gIGdldCBUeXBlKCk6IFRhYlR5cGUge1xyXG4gICAgcmV0dXJuIHRoaXMuX3R5cGU7XHJcbiAgfVxyXG5cclxuICBfc2V0UG9zaXRpb24odmFsdWU6IFRhYlBvc2l0aW9uKTogdm9pZCB7fVxyXG5cclxuICBfc2V0Q2xhc3NNYXAoKTogdm9pZCB7fVxyXG5cclxuICBjbGlja0xhYmVsKGluZGV4OiBudW1iZXIpOiB2b2lkIHtcclxuICAgIGlmICh0aGlzLl90YWJzW2luZGV4XS5EaXNhYmxlZCkge1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5TZWxlY3RlZEluZGV4ID0gaW5kZXg7XHJcbiAgICAgIHRoaXMuX3RhYnNbaW5kZXhdLnBnQ2xpY2suZW1pdCgpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICB0aGlzLl9zZXRDbGFzc01hcCgpO1xyXG4gIH1cclxuXHJcbiAgbmdBZnRlckNvbnRlbnRDaGVja2VkKCk6IHZvaWQge1xyXG4gICAgLy8gQ2xhbXAgdGhlIG5leHQgc2VsZWN0ZWQgaW5kZXggdG8gdGhlIGJvdW5kcyBvZiAwIGFuZCB0aGUgdGFicyBsZW5ndGguIE5vdGUgdGhlIGB8fCAwYCwgd2hpY2hcclxuICAgIC8vIGVuc3VyZXMgdGhhdCB2YWx1ZXMgbGlrZSBOYU4gY2FuJ3QgZ2V0IHRocm91Z2ggYW5kIHdoaWNoIHdvdWxkIG90aGVyd2lzZSB0aHJvdyB0aGVcclxuICAgIC8vIGNvbXBvbmVudCBpbnRvIGFuIGluZmluaXRlIGxvb3AgKHNpbmNlIE1hdGgubWF4KE5hTiwgMCkgPT09IE5hTikuXHJcbiAgICBjb25zdCBpbmRleFRvU2VsZWN0ID0gKHRoaXMuX2luZGV4VG9TZWxlY3QgPSBNYXRoLm1pbih0aGlzLl90YWJzLmxlbmd0aCAtIDEsIE1hdGgubWF4KHRoaXMuX2luZGV4VG9TZWxlY3QgfHwgMCwgMCkpKTtcclxuXHJcbiAgICAvLyBJZiB0aGVyZSBpcyBhIGNoYW5nZSBpbiBzZWxlY3RlZCBpbmRleCwgZW1pdCBhIGNoYW5nZSBldmVudC4gU2hvdWxkIG5vdCB0cmlnZ2VyIGlmXHJcbiAgICAvLyB0aGUgc2VsZWN0ZWQgaW5kZXggaGFzIG5vdCB5ZXQgYmVlbiBpbml0aWFsaXplZC5cclxuICAgIGlmICh0aGlzLl9zZWxlY3RlZEluZGV4ICE9PSBpbmRleFRvU2VsZWN0ICYmIHRoaXMuX3NlbGVjdGVkSW5kZXggIT0gbnVsbCkge1xyXG4gICAgICB0aGlzLlNlbGVjdENoYW5nZS5lbWl0KHRoaXMuX2NyZWF0ZUNoYW5nZUV2ZW50KGluZGV4VG9TZWxlY3QpKTtcclxuICAgIH1cclxuXHJcbiAgICAvLyBTZXR1cCB0aGUgcG9zaXRpb24gZm9yIGVhY2ggdGFiIGFuZCBvcHRpb25hbGx5IHNldHVwIGFuIG9yaWdpbiBvbiB0aGUgbmV4dCBzZWxlY3RlZCB0YWIuXHJcbiAgICB0aGlzLl90YWJzLmZvckVhY2goKHRhYjogTWVmRGV2VGFiQ29tcG9uZW50LCBpbmRleDogbnVtYmVyKSA9PiB7XHJcbiAgICAgIHRhYi5wb3NpdGlvbiA9IGluZGV4IC0gaW5kZXhUb1NlbGVjdDtcclxuICAgICAgLy8gSWYgdGhlcmUgaXMgYWxyZWFkeSBhIHNlbGVjdGVkIHRhYiwgdGhlbiBzZXQgdXAgYW4gb3JpZ2luIGZvciB0aGUgbmV4dCBzZWxlY3RlZCB0YWJcclxuICAgICAgLy8gaWYgaXQgZG9lc24ndCBoYXZlIG9uZSBhbHJlYWR5LlxyXG4gICAgICBpZiAodGhpcy5fc2VsZWN0ZWRJbmRleCAhPSBudWxsICYmIHRhYi5wb3NpdGlvbiA9PT0gMCAmJiAhdGFiLm9yaWdpbikge1xyXG4gICAgICAgIHRhYi5vcmlnaW4gPSBpbmRleFRvU2VsZWN0IC0gdGhpcy5fc2VsZWN0ZWRJbmRleDtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgICB0aGlzLl9zZWxlY3RlZEluZGV4ID0gaW5kZXhUb1NlbGVjdDtcclxuICB9XHJcblxyXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcclxuICAgIHRoaXMuX2lzVmlld0luaXQgPSB0cnVlO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBfY3JlYXRlQ2hhbmdlRXZlbnQoaW5kZXg6IG51bWJlcik6IFRhYkNoYW5nZUV2ZW50IHtcclxuICAgIGNvbnN0IGV2ZW50ID0gbmV3IFRhYkNoYW5nZUV2ZW50KCk7XHJcbiAgICBldmVudC5pbmRleCA9IGluZGV4O1xyXG4gICAgaWYgKHRoaXMuX3RhYnMgJiYgdGhpcy5fdGFicy5sZW5ndGgpIHtcclxuICAgICAgZXZlbnQudGFiID0gdGhpcy5fdGFic1tpbmRleF07XHJcbiAgICAgIHRoaXMuX3RhYnMuZm9yRWFjaCgoaXRlbSwgaSkgPT4ge1xyXG4gICAgICAgIGlmIChpICE9PSBpbmRleCkge1xyXG4gICAgICAgICAgaXRlbS5wZ0Rlc2VsZWN0LmVtaXQoKTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gICAgICBldmVudC50YWIucGdTZWxlY3QuZW1pdCgpO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIGV2ZW50O1xyXG4gIH1cclxuXHJcbiAgZ2V0IGlua0JhckFuaW1hdGVkKCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIHRoaXMuQW5pbWF0ZWQgPT09IHRydWUgfHwgKHRoaXMuQW5pbWF0ZWQgYXMgQW5pbWF0ZWRJbnRlcmZhY2UpLmlua0JhciA9PT0gdHJ1ZTtcclxuICB9XHJcblxyXG4gIGdldCB0YWJQYW5lQW5pbWF0ZWQoKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gdGhpcy5BbmltYXRlZCA9PT0gdHJ1ZSB8fCAodGhpcy5BbmltYXRlZCBhcyBBbmltYXRlZEludGVyZmFjZSkudGFiUGFuZSA9PT0gdHJ1ZTtcclxuICB9XHJcblxyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgX3JlbmRlcmVyOiBSZW5kZXJlcjIpIHt9XHJcbn1cclxuIiwiPGRpdiBjbGFzcz1cInRhYi13cmFwcGVyIHRhYi17eyBfdGFiUG9zaXRpb25Nb2RlIH19IHt7IF90YWJQb3NpdGlvbiB9fSB7eyBfdHlwZSB9fSB7eyBfZXh0cmFfdGFiX2NsYXNzIH19XCIgI2hvc3RDb250ZW50PlxyXG4gICAgPG1lZmRldi10YWJzLW5hdlxyXG4gICAgICAjdGFiTmF2XHJcbiAgICAgIFtTaXplXT1cIlNpemVcIlxyXG4gICAgICBbVHlwZV09XCJUeXBlXCJcclxuICAgICAgW1Nob3dQYWdpbmF0aW9uXT1cIlNob3dQYWdpbmF0aW9uXCJcclxuICAgICAgW1Bvc2l0aW9uTW9kZV09XCJfdGFiUG9zaXRpb25Nb2RlXCJcclxuICAgICAgW1Bvc2l0aW9uXT1cIl90YWJQb3NpdGlvblwiXHJcbiAgICAgIFtBbmltYXRlZF09XCJpbmtCYXJBbmltYXRlZFwiXHJcbiAgICAgIFtIaWRlQmFyXT1cIkhpZGVcIlxyXG4gICAgICBbc2VsZWN0ZWRJbmRleF09XCJTZWxlY3RlZEluZGV4XCJcclxuICAgID5cclxuICAgICAgPG5nLXRlbXBsYXRlICN0YWJCYXJFeHRyYUNvbnRlbnQ+XHJcbiAgICAgICAgPG5nLXRlbXBsYXRlIFtuZ1RlbXBsYXRlT3V0bGV0XT1cIlRhYkJhckV4dHJhVGVtcGxhdGUgfHwgVGFiQmFyRXh0cmFDb250ZW50XCI+PC9uZy10ZW1wbGF0ZT5cclxuICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgICAgPGxpIHBnLXRhYi1sYWJlbCBbZGlzYWJsZWRdPVwidGFiLmRpc2FibGVkXCIgKGNsaWNrKT1cImNsaWNrTGFiZWwoaSlcIiAqbmdGb3I9XCJsZXQgdGFiIG9mIF90YWJzOyBsZXQgaSA9IGluZGV4XCI+XHJcbiAgICAgICAgPGEgaHJlZj1cImphdmFzY3JpcHQ6dm9pZCgwKTtcIiBjbGFzcz1cIlwiIFtjbGFzcy5hY3RpdmVdPVwiU2VsZWN0ZWRJbmRleCA9PSBpICYmICFIaWRlXCI+XHJcbiAgICAgICAgICA8bmctdGVtcGxhdGUgW25nVGVtcGxhdGVPdXRsZXRdPVwidGFiLl90YWJIZWFkaW5nXCI+PC9uZy10ZW1wbGF0ZT5cclxuICAgICAgICA8L2E+XHJcbiAgICAgIDwvbWVmZGV2LXRhYnMtbmF2PlxyXG4gICAgPGRpdiBjbGFzcz1cInRhYi1jb250ZW50LXdyYXBwZXIge3sgX2V4dHJhX3RhYmNvbnRlbnRfY2xhc3MgfX1cIj5cclxuICAgICAgPGRpdlxyXG4gICAgICAgIGNsYXNzPVwidGFiLWNvbnRlbnQge3sgX3RhYkFuaW1hdGlvbiB9fVwiXHJcbiAgICAgICAgI3RhYkNvbnRlbnRcclxuICAgICAgICBbY2xhc3MuYW5pbWF0ZWRdPVwidGFiUGFuZUFuaW1hdGVkXCJcclxuICAgICAgICBbY2xhc3Mubm90LWFuaW1hdGVkXT1cIiF0YWJQYW5lQW5pbWF0ZWRcIlxyXG4gICAgICAgIFtzdHlsZS5tYXJnaW4tbGVmdC4lXT1cInRhYlBhbmVBbmltYXRlZCAmJiAtKFNlbGVjdGVkSW5kZXggPz8gLTEpICogMTAwXCJcclxuICAgICAgPlxyXG4gICAgICAgIDxtZWZkZXYtdGFiLWJvZHlcclxuICAgICAgICAgIGNsYXNzPVwidGFiLXBhbmVcIlxyXG4gICAgICAgICAgW2NsYXNzLmFjdGl2ZV09XCJTZWxlY3RlZEluZGV4ID09IGkgJiYgIUhpZGVcIlxyXG4gICAgICAgICAgW2NsYXNzLmluYWN0aXZlXT1cIlNlbGVjdGVkSW5kZXggIT0gaSB8fCBIaWRlXCJcclxuICAgICAgICAgIFtjb250ZW50XT1cInRhYi5jb250ZW50XCJcclxuICAgICAgICAgICpuZ0Zvcj1cImxldCB0YWIgb2YgX3RhYnM7IGxldCBpID0gaW5kZXhcIlxyXG4gICAgICAgID5cclxuICAgICAgICA8L21lZmRldi10YWItYm9keT5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuICA8L2Rpdj4iXX0=