@energinet/watt 3.0.15 → 3.0.16

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.
@@ -15,18 +15,28 @@
15
15
  * limitations under the License.
16
16
  */
17
17
  import { OnDestroy } from '@angular/core';
18
+ import { CdkVirtualScrollViewport } from '@angular/cdk/scrolling';
18
19
  import * as i0 from "@angular/core";
19
20
  export declare class WattCodeComponent implements OnDestroy {
20
21
  private highlightWorkerFactory;
21
22
  private worker;
23
+ viewport: import("@angular/core").Signal<CdkVirtualScrollViewport>;
22
24
  code: import("@angular/core").InputSignal<string | null | undefined>;
25
+ language: import("@angular/core").InputSignal<"xml" | "json" | "auto">;
23
26
  /** @ignore */
24
27
  formattedCode: import("@angular/core").WritableSignal<string>;
25
28
  /** @ignore */
26
29
  loading: import("@angular/core").WritableSignal<boolean>;
30
+ searchTerm: import("@angular/core").WritableSignal<string>;
31
+ matchIndices: import("@angular/core").WritableSignal<number[]>;
32
+ currentMatchIndex: import("@angular/core").WritableSignal<number>;
33
+ chunks: import("@angular/core").Signal<string[]>;
34
+ constructor();
35
+ isLineHighlighted(index: number): boolean;
36
+ searchNext(): void;
37
+ trackByFn(index: number): number;
27
38
  /** @ignore */
28
39
  ngOnDestroy(): void;
29
- constructor();
30
40
  static ɵfac: i0.ɵɵFactoryDeclaration<WattCodeComponent, never>;
31
- static ɵcmp: i0.ɵɵComponentDeclaration<WattCodeComponent, "watt-code", never, { "code": { "alias": "code"; "required": true; "isSignal": true; }; }, {}, never, never, true, never>;
41
+ static ɵcmp: i0.ɵɵComponentDeclaration<WattCodeComponent, "watt-code", never, { "code": { "alias": "code"; "required": true; "isSignal": true; }; "language": { "alias": "language"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
32
42
  }
@@ -16,26 +16,39 @@
16
16
  * limitations under the License.
17
17
  */
18
18
  //#endregion
19
- import { Component, ChangeDetectionStrategy, ViewEncapsulation, signal, input, inject, effect, linkedSignal, } from '@angular/core';
20
- import { WattSpinnerComponent } from '@energinet/watt/spinner';
19
+ import { input, signal, inject, effect, computed, viewChild, Component, ViewEncapsulation, ChangeDetectionStrategy, } from '@angular/core';
20
+ import { ScrollingModule, CdkVirtualScrollViewport } from '@angular/cdk/scrolling';
21
21
  import { VaterStackComponent } from '@energinet/watt/vater';
22
+ import { WattSearchComponent } from '@energinet/watt/search';
23
+ import { WattSpinnerComponent } from '@energinet/watt/spinner';
22
24
  import { WATT_CODE_HIGHLIGHT_WORKER_FACTORY } from './watt-code.worker.token';
23
25
  import * as i0 from "@angular/core";
26
+ import * as i1 from "@angular/cdk/scrolling";
24
27
  export class WattCodeComponent {
25
28
  highlightWorkerFactory = inject(WATT_CODE_HIGHLIGHT_WORKER_FACTORY);
26
29
  worker = this.highlightWorkerFactory?.();
30
+ viewport = viewChild.required(CdkVirtualScrollViewport);
27
31
  code = input.required(...(ngDevMode ? [{ debugName: "code" }] : []));
32
+ language = input('auto', ...(ngDevMode ? [{ debugName: "language" }] : []));
28
33
  /** @ignore */
29
- formattedCode = linkedSignal(() => this.code() ?? '');
34
+ formattedCode = signal('', ...(ngDevMode ? [{ debugName: "formattedCode" }] : []));
30
35
  /** @ignore */
31
36
  loading = signal(false, ...(ngDevMode ? [{ debugName: "loading" }] : []));
32
- /** @ignore */
33
- ngOnDestroy() {
34
- this.worker?.terminate();
35
- }
37
+ // Search functionality
38
+ searchTerm = signal('', ...(ngDevMode ? [{ debugName: "searchTerm" }] : []));
39
+ matchIndices = signal([], ...(ngDevMode ? [{ debugName: "matchIndices" }] : []));
40
+ currentMatchIndex = signal(-1, ...(ngDevMode ? [{ debugName: "currentMatchIndex" }] : []));
41
+ chunks = computed(() => {
42
+ const code = this.formattedCode();
43
+ if (!code)
44
+ return [''];
45
+ const lines = code.split('\n');
46
+ return lines.length === 0 ? [''] : lines;
47
+ }, ...(ngDevMode ? [{ debugName: "chunks" }] : []));
36
48
  constructor() {
37
49
  effect(() => {
38
50
  const code = this.code();
51
+ this.formattedCode.set('');
39
52
  if (!code)
40
53
  return;
41
54
  if (!this.worker)
@@ -45,30 +58,103 @@ export class WattCodeComponent {
45
58
  this.formattedCode.set(event.data);
46
59
  this.loading.set(false);
47
60
  };
48
- this.worker.postMessage(code);
61
+ this.worker.postMessage({ data: code, language: this.language() });
62
+ });
63
+ effect(() => {
64
+ const term = this.searchTerm();
65
+ if (!term)
66
+ return;
67
+ const newMatchIndices = this.chunks()
68
+ .map((chunk, index) => (chunk.toLowerCase().includes(term.toLowerCase()) ? index : -1))
69
+ .filter((index) => index !== -1);
70
+ this.matchIndices.set(newMatchIndices);
71
+ if (newMatchIndices.length > 0 && this.currentMatchIndex() === -1) {
72
+ this.currentMatchIndex.set(0);
73
+ }
74
+ else if (newMatchIndices.length === 0) {
75
+ this.currentMatchIndex.set(-1);
76
+ }
49
77
  });
50
78
  }
79
+ isLineHighlighted(index) {
80
+ const matchIndex = this.currentMatchIndex();
81
+ if (matchIndex === -1)
82
+ return false;
83
+ return this.matchIndices()[matchIndex] === index;
84
+ }
85
+ searchNext() {
86
+ const viewport = this.viewport();
87
+ const matches = this.matchIndices();
88
+ if (matches.length === 0)
89
+ return;
90
+ let nextIndex = this.currentMatchIndex() + 1;
91
+ if (nextIndex >= matches.length) {
92
+ nextIndex = 0;
93
+ }
94
+ this.currentMatchIndex.set(nextIndex);
95
+ const lineIndex = matches[nextIndex];
96
+ if (lineIndex !== undefined) {
97
+ viewport.scrollToIndex(lineIndex);
98
+ }
99
+ }
100
+ trackByFn(index) {
101
+ return index;
102
+ }
103
+ /** @ignore */
104
+ ngOnDestroy() {
105
+ this.worker?.terminate();
106
+ }
51
107
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.3", ngImport: i0, type: WattCodeComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
52
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.1.3", type: WattCodeComponent, isStandalone: true, selector: "watt-code", inputs: { code: { classPropertyName: "code", publicName: "code", isSignal: true, isRequired: true, transformFunction: null } }, ngImport: i0, template: `
108
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.1.3", type: WattCodeComponent, isStandalone: true, selector: "watt-code", inputs: { code: { classPropertyName: "code", publicName: "code", isSignal: true, isRequired: true, transformFunction: null }, language: { classPropertyName: "language", publicName: "language", isSignal: true, isRequired: false, transformFunction: null } }, viewQueries: [{ propertyName: "viewport", first: true, predicate: CdkVirtualScrollViewport, descendants: true, isSignal: true }], ngImport: i0, template: `
53
109
  @if (loading()) {
54
- <vater-stack fill="horizontal" align="center"><watt-spinner /></vater-stack>
110
+ <vater-stack fill="horizontal" align="center">
111
+ <watt-spinner />
112
+ </vater-stack>
55
113
  } @else {
114
+ <div class="search-container">
115
+ <watt-search (search)="searchTerm.set($event)" (keyup.enter)="searchNext()" />
116
+ </div>
56
117
  <pre>
57
- <code class="watt-code-content" [innerHTML]="formattedCode()"></code>
118
+ <cdk-virtual-scroll-viewport
119
+ [itemSize]="20"
120
+ minBufferPx="500"
121
+ maxBufferPx="1000"
122
+ class="viewport"
123
+ style="height: 100%; width: 100%;">
124
+ <code *cdkVirtualFor="let item of chunks(); let i = index; trackBy: trackByFn"
125
+ [attr.data-index]="i"
126
+ [innerHTML]="item"
127
+ [class.highlight]="isLineHighlighted(i)"></code>
128
+ </cdk-virtual-scroll-viewport>
58
129
  </pre>
59
130
  }
60
- `, isInline: true, styles: ["watt-tabs watt-code pre code.watt-code-content{padding:0}watt-code{display:block;overflow:auto}watt-code pre{display:flex;margin-top:0;margin-bottom:0;word-wrap:break-word}watt-code pre code{flex:1;line-height:1.8em;font-size:14px;min-height:100%;padding:1em 1.2em;text-wrap:balance}\n"], dependencies: [{ kind: "component", type: WattSpinnerComponent, selector: "watt-spinner", inputs: ["diameter", "strokeWidth"] }, { kind: "component", type: VaterStackComponent, selector: "vater-stack, [vater-stack]" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
131
+ `, isInline: true, styles: ["watt-tabs watt-code pre code.watt-code-content{padding:0}watt-code{display:block;height:100%;width:100%}watt-code .viewport{height:100%;width:100%}watt-code pre{display:flex;margin:0;padding:0;height:calc(100% - 60px);width:100%;word-wrap:break-word}watt-code pre .cdk-virtual-scroll-content-wrapper{width:100%}watt-code pre .cdk-virtual-scroll-content-wrapper code{padding:2px 8px;line-height:20px;font-family:monospace;white-space:pre;width:100%;display:block;font-size:14px}watt-code pre .cdk-virtual-scroll-content-wrapper code.highlight{background-color:#ffeb3b4d;font-weight:700}\n"], dependencies: [{ kind: "component", type: WattSpinnerComponent, selector: "watt-spinner", inputs: ["diameter", "strokeWidth"] }, { kind: "component", type: VaterStackComponent, selector: "vater-stack, [vater-stack]" }, { kind: "ngmodule", type: ScrollingModule }, { kind: "directive", type: i1.CdkFixedSizeVirtualScroll, selector: "cdk-virtual-scroll-viewport[itemSize]", inputs: ["itemSize", "minBufferPx", "maxBufferPx"] }, { kind: "directive", type: i1.CdkVirtualForOf, selector: "[cdkVirtualFor][cdkVirtualForOf]", inputs: ["cdkVirtualForOf", "cdkVirtualForTrackBy", "cdkVirtualForTemplate", "cdkVirtualForTemplateCacheSize"] }, { kind: "component", type: i1.CdkVirtualScrollViewport, selector: "cdk-virtual-scroll-viewport", inputs: ["orientation", "appendOnly"], outputs: ["scrolledIndexChange"] }, { kind: "component", type: WattSearchComponent, selector: "watt-search", inputs: ["label", "debounceTime", "trim"], outputs: ["search"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
61
132
  }
62
133
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.3", ngImport: i0, type: WattCodeComponent, decorators: [{
63
134
  type: Component,
64
135
  args: [{ selector: 'watt-code', template: `
65
136
  @if (loading()) {
66
- <vater-stack fill="horizontal" align="center"><watt-spinner /></vater-stack>
137
+ <vater-stack fill="horizontal" align="center">
138
+ <watt-spinner />
139
+ </vater-stack>
67
140
  } @else {
141
+ <div class="search-container">
142
+ <watt-search (search)="searchTerm.set($event)" (keyup.enter)="searchNext()" />
143
+ </div>
68
144
  <pre>
69
- <code class="watt-code-content" [innerHTML]="formattedCode()"></code>
145
+ <cdk-virtual-scroll-viewport
146
+ [itemSize]="20"
147
+ minBufferPx="500"
148
+ maxBufferPx="1000"
149
+ class="viewport"
150
+ style="height: 100%; width: 100%;">
151
+ <code *cdkVirtualFor="let item of chunks(); let i = index; trackBy: trackByFn"
152
+ [attr.data-index]="i"
153
+ [innerHTML]="item"
154
+ [class.highlight]="isLineHighlighted(i)"></code>
155
+ </cdk-virtual-scroll-viewport>
70
156
  </pre>
71
157
  }
72
- `, changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, imports: [WattSpinnerComponent, VaterStackComponent], styles: ["watt-tabs watt-code pre code.watt-code-content{padding:0}watt-code{display:block;overflow:auto}watt-code pre{display:flex;margin-top:0;margin-bottom:0;word-wrap:break-word}watt-code pre code{flex:1;line-height:1.8em;font-size:14px;min-height:100%;padding:1em 1.2em;text-wrap:balance}\n"] }]
158
+ `, changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, imports: [WattSpinnerComponent, VaterStackComponent, ScrollingModule, WattSearchComponent], styles: ["watt-tabs watt-code pre code.watt-code-content{padding:0}watt-code{display:block;height:100%;width:100%}watt-code .viewport{height:100%;width:100%}watt-code pre{display:flex;margin:0;padding:0;height:calc(100% - 60px);width:100%;word-wrap:break-word}watt-code pre .cdk-virtual-scroll-content-wrapper{width:100%}watt-code pre .cdk-virtual-scroll-content-wrapper code{padding:2px 8px;line-height:20px;font-family:monospace;white-space:pre;width:100%;display:block;font-size:14px}watt-code pre .cdk-virtual-scroll-content-wrapper code.highlight{background-color:#ffeb3b4d;font-weight:700}\n"] }]
73
159
  }], ctorParameters: () => [] });
74
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2F0dC1jb2RlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2xpYnMvd2F0dC9wYWNrYWdlL2NvZGUvd2F0dC1jb2RlLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxpQkFBaUI7QUFDakI7Ozs7Ozs7Ozs7Ozs7OztHQWVHO0FBQ0gsWUFBWTtBQUNaLE9BQU8sRUFDTCxTQUFTLEVBQ1QsdUJBQXVCLEVBQ3ZCLGlCQUFpQixFQUNqQixNQUFNLEVBQ04sS0FBSyxFQUVMLE1BQU0sRUFDTixNQUFNLEVBQ04sWUFBWSxHQUNiLE1BQU0sZUFBZSxDQUFDO0FBRXZCLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQy9ELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBRTVELE9BQU8sRUFBRSxrQ0FBa0MsRUFBRSxNQUFNLDBCQUEwQixDQUFDOztBQWtCOUUsTUFBTSxPQUFPLGlCQUFpQjtJQUNwQixzQkFBc0IsR0FBRyxNQUFNLENBQUMsa0NBQWtDLENBQUMsQ0FBQztJQUNwRSxNQUFNLEdBQUcsSUFBSSxDQUFDLHNCQUFzQixFQUFFLEVBQUUsQ0FBQztJQUVqRCxJQUFJLEdBQUcsS0FBSyxDQUFDLFFBQVEsK0NBQTZCLENBQUM7SUFFbkQsY0FBYztJQUNkLGFBQWEsR0FBRyxZQUFZLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO0lBRXRELGNBQWM7SUFDZCxPQUFPLEdBQUcsTUFBTSxDQUFDLEtBQUssbURBQUMsQ0FBQztJQUV4QixjQUFjO0lBQ2QsV0FBVztRQUNULElBQUksQ0FBQyxNQUFNLEVBQUUsU0FBUyxFQUFFLENBQUM7SUFDM0IsQ0FBQztJQUVEO1FBQ0UsTUFBTSxDQUFDLEdBQUcsRUFBRTtZQUNWLE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQztZQUN6QixJQUFJLENBQUMsSUFBSTtnQkFBRSxPQUFPO1lBQ2xCLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTTtnQkFBRSxPQUFPO1lBQ3pCLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQ3ZCLElBQUksQ0FBQyxNQUFNLENBQUMsU0FBUyxHQUFHLENBQUMsS0FBSyxFQUFFLEVBQUU7Z0JBQ2hDLElBQUksQ0FBQyxhQUFhLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQztnQkFDbkMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDMUIsQ0FBQyxDQUFDO1lBQ0YsSUFBSSxDQUFDLE1BQU0sQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDaEMsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO3VHQTdCVSxpQkFBaUI7MkZBQWpCLGlCQUFpQixxTUFkbEI7Ozs7Ozs7O0dBUVQsdVdBSVMsb0JBQW9CLDhGQUFFLG1CQUFtQjs7MkZBRXhDLGlCQUFpQjtrQkFoQjdCLFNBQVM7K0JBQ0UsV0FBVyxZQUNYOzs7Ozs7OztHQVFULG1CQUVnQix1QkFBdUIsQ0FBQyxNQUFNLGlCQUNoQyxpQkFBaUIsQ0FBQyxJQUFJLFdBQzVCLENBQUMsb0JBQW9CLEVBQUUsbUJBQW1CLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyNyZWdpb24gTGljZW5zZVxuLyoqXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IDIwMjAgRW5lcmdpbmV0IERhdGFIdWIgQS9TXG4gKlxuICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZTJcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuLy8jZW5kcmVnaW9uXG5pbXBvcnQge1xuICBDb21wb25lbnQsXG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBWaWV3RW5jYXBzdWxhdGlvbixcbiAgc2lnbmFsLFxuICBpbnB1dCxcbiAgT25EZXN0cm95LFxuICBpbmplY3QsXG4gIGVmZmVjdCxcbiAgbGlua2VkU2lnbmFsLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgV2F0dFNwaW5uZXJDb21wb25lbnQgfSBmcm9tICdAZW5lcmdpbmV0L3dhdHQvc3Bpbm5lcic7XG5pbXBvcnQgeyBWYXRlclN0YWNrQ29tcG9uZW50IH0gZnJvbSAnQGVuZXJnaW5ldC93YXR0L3ZhdGVyJztcblxuaW1wb3J0IHsgV0FUVF9DT0RFX0hJR0hMSUdIVF9XT1JLRVJfRkFDVE9SWSB9IGZyb20gJy4vd2F0dC1jb2RlLndvcmtlci50b2tlbic7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3dhdHQtY29kZScsXG4gIHRlbXBsYXRlOiBgXG4gICAgQGlmIChsb2FkaW5nKCkpIHtcbiAgICAgIDx2YXRlci1zdGFjayBmaWxsPVwiaG9yaXpvbnRhbFwiIGFsaWduPVwiY2VudGVyXCI+PHdhdHQtc3Bpbm5lciAvPjwvdmF0ZXItc3RhY2s+XG4gICAgfSBAZWxzZSB7XG4gICAgICA8cHJlPlxuICAgICAgICA8Y29kZSBjbGFzcz1cIndhdHQtY29kZS1jb250ZW50XCIgW2lubmVySFRNTF09XCJmb3JtYXR0ZWRDb2RlKClcIj48L2NvZGU+XG4gICAgICA8L3ByZT5cbiAgICB9XG4gIGAsXG4gIHN0eWxlVXJsczogWycuL3dhdHQtY29kZS5jb21wb25lbnQuc2NzcyddLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgaW1wb3J0czogW1dhdHRTcGlubmVyQ29tcG9uZW50LCBWYXRlclN0YWNrQ29tcG9uZW50XSxcbn0pXG5leHBvcnQgY2xhc3MgV2F0dENvZGVDb21wb25lbnQgaW1wbGVtZW50cyBPbkRlc3Ryb3kge1xuICBwcml2YXRlIGhpZ2hsaWdodFdvcmtlckZhY3RvcnkgPSBpbmplY3QoV0FUVF9DT0RFX0hJR0hMSUdIVF9XT1JLRVJfRkFDVE9SWSk7XG4gIHByaXZhdGUgd29ya2VyID0gdGhpcy5oaWdobGlnaHRXb3JrZXJGYWN0b3J5Py4oKTtcblxuICBjb2RlID0gaW5wdXQucmVxdWlyZWQ8c3RyaW5nIHwgbnVsbCB8IHVuZGVmaW5lZD4oKTtcblxuICAvKiogQGlnbm9yZSAqL1xuICBmb3JtYXR0ZWRDb2RlID0gbGlua2VkU2lnbmFsKCgpID0+IHRoaXMuY29kZSgpID8/ICcnKTtcblxuICAvKiogQGlnbm9yZSAqL1xuICBsb2FkaW5nID0gc2lnbmFsKGZhbHNlKTtcblxuICAvKiogQGlnbm9yZSAqL1xuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLndvcmtlcj8udGVybWluYXRlKCk7XG4gIH1cblxuICBjb25zdHJ1Y3RvcigpIHtcbiAgICBlZmZlY3QoKCkgPT4ge1xuICAgICAgY29uc3QgY29kZSA9IHRoaXMuY29kZSgpO1xuICAgICAgaWYgKCFjb2RlKSByZXR1cm47XG4gICAgICBpZiAoIXRoaXMud29ya2VyKSByZXR1cm47XG4gICAgICB0aGlzLmxvYWRpbmcuc2V0KHRydWUpO1xuICAgICAgdGhpcy53b3JrZXIub25tZXNzYWdlID0gKGV2ZW50KSA9PiB7XG4gICAgICAgIHRoaXMuZm9ybWF0dGVkQ29kZS5zZXQoZXZlbnQuZGF0YSk7XG4gICAgICAgIHRoaXMubG9hZGluZy5zZXQoZmFsc2UpO1xuICAgICAgfTtcbiAgICAgIHRoaXMud29ya2VyLnBvc3RNZXNzYWdlKGNvZGUpO1xuICAgIH0pO1xuICB9XG59XG4iXX0=
160
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2F0dC1jb2RlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2xpYnMvd2F0dC9wYWNrYWdlL2NvZGUvd2F0dC1jb2RlLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxpQkFBaUI7QUFDakI7Ozs7Ozs7Ozs7Ozs7OztHQWVHO0FBQ0gsWUFBWTtBQUNaLE9BQU8sRUFDTCxLQUFLLEVBQ0wsTUFBTSxFQUNOLE1BQU0sRUFDTixNQUFNLEVBQ04sUUFBUSxFQUNSLFNBQVMsRUFDVCxTQUFTLEVBRVQsaUJBQWlCLEVBQ2pCLHVCQUF1QixHQUN4QixNQUFNLGVBQWUsQ0FBQztBQUV2QixPQUFPLEVBQUUsZUFBZSxFQUFFLHdCQUF3QixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFFbkYsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDNUQsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDN0QsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFFL0QsT0FBTyxFQUFFLGtDQUFrQyxFQUFFLE1BQU0sMEJBQTBCLENBQUM7OztBQWlDOUUsTUFBTSxPQUFPLGlCQUFpQjtJQUNwQixzQkFBc0IsR0FBRyxNQUFNLENBQUMsa0NBQWtDLENBQUMsQ0FBQztJQUNwRSxNQUFNLEdBQUcsSUFBSSxDQUFDLHNCQUFzQixFQUFFLEVBQUUsQ0FBQztJQUVqRCxRQUFRLEdBQUcsU0FBUyxDQUFDLFFBQVEsQ0FBQyx3QkFBd0IsQ0FBQyxDQUFDO0lBRXhELElBQUksR0FBRyxLQUFLLENBQUMsUUFBUSwrQ0FBNkIsQ0FBQztJQUNuRCxRQUFRLEdBQUcsS0FBSyxDQUEwQixNQUFNLG9EQUFDLENBQUM7SUFFbEQsY0FBYztJQUNkLGFBQWEsR0FBRyxNQUFNLENBQVMsRUFBRSx5REFBQyxDQUFDO0lBQ25DLGNBQWM7SUFDZCxPQUFPLEdBQUcs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Qjs7MkZBRTlFLGlCQUFpQjtrQkEvQjdCLFNBQVM7K0JBQ0UsV0FBVyxZQUNYOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQXVCVCxtQkFFZ0IsdUJBQXVCLENBQUMsTUFBTSxpQkFDaEMsaUJBQWlCLENBQUMsSUFBSSxXQUM1QixDQUFDLG9CQUFvQixFQUFFLG1CQUFtQixFQUFFLGVBQWUsRUFBRSxtQkFBbUIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8vI3JlZ2lvbiBMaWNlbnNlXG4vKipcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgMjAyMCBFbmVyZ2luZXQgRGF0YUh1YiBBL1NcbiAqXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlMlwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG4vLyNlbmRyZWdpb25cbmltcG9ydCB7XG4gIGlucHV0LFxuICBzaWduYWwsXG4gIGluamVjdCxcbiAgZWZmZWN0LFxuICBjb21wdXRlZCxcbiAgdmlld0NoaWxkLFxuICBDb21wb25lbnQsXG4gIE9uRGVzdHJveSxcbiAgVmlld0VuY2Fwc3VsYXRpb24sXG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgU2Nyb2xsaW5nTW9kdWxlLCBDZGtWaXJ0dWFsU2Nyb2xsVmlld3BvcnQgfSBmcm9tICdAYW5ndWxhci9jZGsvc2Nyb2xsaW5nJztcblxuaW1wb3J0IHsgVmF0ZXJTdGFja0NvbXBvbmVudCB9IGZyb20gJ0BlbmVyZ2luZXQvd2F0dC92YXRlcic7XG5pbXBvcnQgeyBXYXR0U2VhcmNoQ29tcG9uZW50IH0gZnJvbSAnQGVuZXJnaW5ldC93YXR0L3NlYXJjaCc7XG5pbXBvcnQgeyBXYXR0U3Bpbm5lckNvbXBvbmVudCB9IGZyb20gJ0BlbmVyZ2luZXQvd2F0dC9zcGlubmVyJztcblxuaW1wb3J0IHsgV0FUVF9DT0RFX0hJR0hMSUdIVF9XT1JLRVJfRkFDVE9SWSB9IGZyb20gJy4vd2F0dC1jb2RlLndvcmtlci50b2tlbic7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3dhdHQtY29kZScsXG4gIHRlbXBsYXRlOiBgXG4gICAgQGlmIChsb2FkaW5nKCkpIHtcbiAgICAgIDx2YXRlci1zdGFjayBmaWxsPVwiaG9yaXpvbnRhbFwiIGFsaWduPVwiY2VudGVyXCI+XG4gICAgICAgIDx3YXR0LXNwaW5uZXIgLz5cbiAgICAgIDwvdmF0ZXItc3RhY2s+XG4gICAgfSBAZWxzZSB7XG4gICAgICA8ZGl2IGNsYXNzPVwic2VhcmNoLWNvbnRhaW5lclwiPlxuICAgICAgICA8d2F0dC1zZWFyY2ggKHNlYXJjaCk9XCJzZWFyY2hUZXJtLnNldCgkZXZlbnQpXCIgKGtleXVwLmVudGVyKT1cInNlYXJjaE5leHQoKVwiIC8+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxwcmU+XG4gICAgICAgIDxjZGstdmlydHVhbC1zY3JvbGwtdmlld3BvcnQgXG4gICAgICAgICAgW2l0ZW1TaXplXT1cIjIwXCIgXG4gICAgICAgICAgbWluQnVmZmVyUHg9XCI1MDBcIlxuICAgICAgICAgIG1heEJ1ZmZlclB4PVwiMTAwMFwiXG4gICAgICAgICAgY2xhc3M9XCJ2aWV3cG9ydFwiIFxuICAgICAgICAgIHN0eWxlPVwiaGVpZ2h0OiAxMDAlOyB3aWR0aDogMTAwJTtcIj5cbiAgICAgICAgICAgPGNvZGUgKmNka1ZpcnR1YWxGb3I9XCJsZXQgaXRlbSBvZiBjaHVua3MoKTsgbGV0IGkgPSBpbmRleDsgdHJhY2tCeTogdHJhY2tCeUZuXCIgXG4gICAgICAgICAgICAgICAgW2F0dHIuZGF0YS1pbmRleF09XCJpXCJcbiAgICAgICAgICAgICAgICBbaW5uZXJIVE1MXT1cIml0ZW1cIiBcbiAgICAgICAgICAgICAgICBbY2xhc3MuaGlnaGxpZ2h0XT1cImlzTGluZUhpZ2hsaWdodGVkKGkpXCI+PC9jb2RlPlxuICAgICAgICA8L2Nkay12aXJ0dWFsLXNjcm9sbC12aWV3cG9ydD5cbiAgICAgIDwvcHJlPlxuICAgIH1cbiAgYCxcbiAgc3R5bGVVcmxzOiBbJy4vd2F0dC1jb2RlLmNvbXBvbmVudC5zY3NzJ10sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICBpbXBvcnRzOiBbV2F0dFNwaW5uZXJDb21wb25lbnQsIFZhdGVyU3RhY2tDb21wb25lbnQsIFNjcm9sbGluZ01vZHVsZSwgV2F0dFNlYXJjaENvbXBvbmVudF0sXG59KVxuZXhwb3J0IGNsYXNzIFdhdHRDb2RlQ29tcG9uZW50IGltcGxlbWVudHMgT25EZXN0cm95IHtcbiAgcHJpdmF0ZSBoaWdobGlnaHRXb3JrZXJGYWN0b3J5ID0gaW5qZWN0KFdBVFRfQ09ERV9ISUdITElHSFRfV09SS0VSX0ZBQ1RPUlkpO1xuICBwcml2YXRlIHdvcmtlciA9IHRoaXMuaGlnaGxpZ2h0V29ya2VyRmFjdG9yeT8uKCk7XG5cbiAgdmlld3BvcnQgPSB2aWV3Q2hpbGQucmVxdWlyZWQoQ2RrVmlydHVhbFNjcm9sbFZpZXdwb3J0KTtcblxuICBjb2RlID0gaW5wdXQucmVxdWlyZWQ8c3RyaW5nIHwgbnVsbCB8IHVuZGVmaW5lZD4oKTtcbiAgbGFuZ3VhZ2UgPSBpbnB1dDwneG1sJyB8ICdqc29uJyB8ICdhdXRvJz4oJ2F1dG8nKTtcblxuICAvKiogQGlnbm9yZSAqL1xuICBmb3JtYXR0ZWRDb2RlID0gc2lnbmFsPHN0cmluZz4oJycpO1xuICAvKiogQGlnbm9yZSAqL1xuICBsb2FkaW5nID0gc2lnbmFsKGZhbHNlKTtcblxuICAvLyBTZWFyY2ggZnVuY3Rpb25hbGl0eVxuICBzZWFyY2hUZXJtID0gc2lnbmFsKCcnKTtcbiAgbWF0Y2hJbmRpY2VzID0gc2lnbmFsPG51bWJlcltdPihbXSk7XG4gIGN1cnJlbnRNYXRjaEluZGV4ID0gc2lnbmFsPG51bWJlcj4oLTEpO1xuXG4gIGNodW5rcyA9IGNvbXB1dGVkKCgpID0+IHtcbiAgICBjb25zdCBjb2RlID0gdGhpcy5mb3JtYXR0ZWRDb2RlKCk7XG4gICAgaWYgKCFjb2RlKSByZXR1cm4gWycnXTtcbiAgICBjb25zdCBsaW5lcyA9IGNvZGUuc3BsaXQoJ1xcbicpO1xuICAgIHJldHVybiBsaW5lcy5sZW5ndGggPT09IDAgPyBbJyddIDogbGluZXM7XG4gIH0pO1xuXG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIGVmZmVjdCgoKSA9PiB7XG4gICAgICBjb25zdCBjb2RlID0gdGhpcy5jb2RlKCk7XG4gICAgICB0aGlzLmZvcm1hdHRlZENvZGUuc2V0KCcnKTtcblxuICAgICAgaWYgKCFjb2RlKSByZXR1cm47XG4gICAgICBpZiAoIXRoaXMud29ya2VyKSByZXR1cm47XG4gICAgICB0aGlzLmxvYWRpbmcuc2V0KHRydWUpO1xuICAgICAgdGhpcy53b3JrZXIub25tZXNzYWdlID0gKGV2ZW50KSA9PiB7XG4gICAgICAgIHRoaXMuZm9ybWF0dGVkQ29kZS5zZXQoZXZlbnQuZGF0YSk7XG4gICAgICAgIHRoaXMubG9hZGluZy5zZXQoZmFsc2UpO1xuICAgICAgfTtcbiAgICAgIHRoaXMud29ya2VyLnBvc3RNZXNzYWdlKHsgZGF0YTogY29kZSwgbGFuZ3VhZ2U6IHRoaXMubGFuZ3VhZ2UoKSB9IGFzIGNvbnN0KTtcbiAgICB9KTtcblxuICAgIGVmZmVjdCgoKSA9PiB7XG4gICAgICBjb25zdCB0ZXJtID0gdGhpcy5zZWFyY2hUZXJtKCk7XG5cbiAgICAgIGlmICghdGVybSkgcmV0dXJuO1xuXG4gICAgICBjb25zdCBuZXdNYXRjaEluZGljZXMgPSB0aGlzLmNodW5rcygpXG4gICAgICAgIC5tYXAoKGNodW5rLCBpbmRleCkgPT4gKGNodW5rLnRvTG93ZXJDYXNlKCkuaW5jbHVkZXModGVybS50b0xvd2VyQ2FzZSgpKSA/IGluZGV4IDogLTEpKVxuICAgICAgICAuZmlsdGVyKChpbmRleCkgPT4gaW5kZXggIT09IC0xKTtcblxuICAgICAgdGhpcy5tYXRjaEluZGljZXMuc2V0KG5ld01hdGNoSW5kaWNlcyk7XG4gICAgICBpZiAobmV3TWF0Y2hJbmRpY2VzLmxlbmd0aCA+IDAgJiYgdGhpcy5jdXJyZW50TWF0Y2hJbmRleCgpID09PSAtMSkge1xuICAgICAgICB0aGlzLmN1cnJlbnRNYXRjaEluZGV4LnNldCgwKTtcbiAgICAgIH0gZWxzZSBpZiAobmV3TWF0Y2hJbmRpY2VzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICB0aGlzLmN1cnJlbnRNYXRjaEluZGV4LnNldCgtMSk7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICBpc0xpbmVIaWdobGlnaHRlZChpbmRleDogbnVtYmVyKTogYm9vbGVhbiB7XG4gICAgY29uc3QgbWF0Y2hJbmRleCA9IHRoaXMuY3VycmVudE1hdGNoSW5kZXgoKTtcbiAgICBpZiAobWF0Y2hJbmRleCA9PT0gLTEpIHJldHVybiBmYWxzZTtcbiAgICByZXR1cm4gdGhpcy5tYXRjaEluZGljZXMoKVttYXRjaEluZGV4XSA9PT0gaW5kZXg7XG4gIH1cblxuICBzZWFyY2hOZXh0KCk6IHZvaWQge1xuICAgIGNvbnN0IHZpZXdwb3J0ID0gdGhpcy52aWV3cG9ydCgpO1xuICAgIGNvbnN0IG1hdGNoZXMgPSB0aGlzLm1hdGNoSW5kaWNlcygpO1xuICAgIGlmIChtYXRjaGVzLmxlbmd0aCA9PT0gMCkgcmV0dXJuO1xuXG4gICAgbGV0IG5leHRJbmRleCA9IHRoaXMuY3VycmVudE1hdGNoSW5kZXgoKSArIDE7XG4gICAgaWYgKG5leHRJbmRleCA+PSBtYXRjaGVzLmxlbmd0aCkge1xuICAgICAgbmV4dEluZGV4ID0gMDtcbiAgICB9XG5cbiAgICB0aGlzLmN1cnJlbnRNYXRjaEluZGV4LnNldChuZXh0SW5kZXgpO1xuXG4gICAgY29uc3QgbGluZUluZGV4ID0gbWF0Y2hlc1tuZXh0SW5kZXhdO1xuICAgIGlmIChsaW5lSW5kZXggIT09IHVuZGVmaW5lZCkge1xuICAgICAgdmlld3BvcnQuc2Nyb2xsVG9JbmRleChsaW5lSW5kZXgpO1xuICAgIH1cbiAgfVxuXG4gIHRyYWNrQnlGbihpbmRleDogbnVtYmVyKTogbnVtYmVyIHtcbiAgICByZXR1cm4gaW5kZXg7XG4gIH1cblxuICAvKiogQGlnbm9yZSAqL1xuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLndvcmtlcj8udGVybWluYXRlKCk7XG4gIH1cbn1cbiJdfQ==
@@ -48,11 +48,11 @@ export class WattTabsComponent {
48
48
  this.emitSelectedTabChange(this.activeTabIndex);
49
49
  }
50
50
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.3", ngImport: i0, type: WattTabsComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
51
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.1.3", type: WattTabsComponent, isStandalone: true, selector: "watt-tabs", inputs: { variant: { classPropertyName: "variant", publicName: "variant", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class": "this.hostClass" } }, queries: [{ propertyName: "tabElements", predicate: WattTabComponent, isSignal: true }, { propertyName: "actionsTab", first: true, predicate: WattTabsActionComponent, descendants: true, isSignal: true }], viewQueries: [{ propertyName: "tabGroup", first: true, predicate: MatTabGroup, descendants: true, isSignal: true }], ngImport: i0, template: "<!--\n@license\nCopyright 2020 Energinet DataHub A/S\n\nLicensed under the Apache License, Version 2.0 (the \"License2\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n-->\n<mat-tab-group\n [mat-stretch-tabs]=\"false\"\n dynamicHeight\n animationDuration=\"0ms\"\n [disableRipple]=\"true\"\n (selectedIndexChange)=\"emitSelectedTabChange($event)\"\n>\n @for (tab of tabElements(); track tab) {\n <mat-tab [label]=\"tab.label()\">\n <ng-container *ngTemplateOutlet=\"tab.templateRef()\" />\n </mat-tab>\n }\n\n @if (actionsTab()) {\n <mat-tab labelClass=\"watt-tabs-action\" [disabled]=\"true\">\n <ng-template mat-tab-label>\n <ng-content />\n </ng-template>\n </mat-tab>\n }\n</mat-tab-group>\n", styles: ["watt-drawer watt-tabs .mat-mdc-tab-group,watt-drawer watt-tabs .mat-mdc-tab-body-wrapper{height:auto}watt-tabs.watt-tabs-secondary .mat-mdc-tab.mat-mdc-tab:hover{border-bottom:none}watt-tabs.watt-tabs-secondary .mdc-tab{padding-left:var(--watt-space-m);padding-right:var(--watt-space-m);height:32px}watt-tabs.watt-tabs-secondary .mat-mdc-tab-group.mat-primary .mdc-tab.cdk-focused.cdk-keyboard-focused:focus{background-color:transparent}watt-tabs.watt-tabs-secondary .mat-mdc-tab-group,watt-tabs.watt-tabs-secondary .mat-mdc-tab-nav-bar{--mat-tab-active-focus-indicator-color: var(--watt-color-secondary);--mat-tab-active-focus-label-text-color: var(--watt-color-neutral-black);--mat-tab-active-hover-indicator-color: var(--watt-color-secondary);--mat-tab-active-hover-label-text-color: var(--watt-color-neutral-black);--mat-tab-active-label-text-color: var(--watt-color-neutral-black);--mat-tab-inactive-label-text-color: var(--watt-on-light-low-emphasis);--mat-tab-inactive-ripple-color: none;--mat-tab-disabled-ripple-color: none;--mat-tab-active-indicator-color: var(--watt-color-secondary);--mat-tab-active-indicator-height: 3px;--mat-tab-active-indicator-shape: 99999px;--mat-tab-active-ripple-color: transparent}watt-tabs.watt-tabs-secondary .mat-mdc-tab-header{background:none;box-shadow:none}watt-tabs.watt-tabs-secondary .mat-mdc-tab-labels{flex-wrap:wrap;padding-left:0}watt-tabs.watt-tabs-secondary .mdc-tab-indicator__content--underline{width:43px}watt-tabs.watt-tabs-secondary .mat-mdc-tab-body-wrapper{padding:var(--watt-space-s);padding-top:var(--watt-space-m)}watt-tabs .mat-mdc-tab.mdc-tab.watt-tabs-action{flex-grow:1;justify-content:flex-end;cursor:default;height:auto}watt-tabs .mat-mdc-tab.mdc-tab.watt-tabs-action.mat-mdc-tab-disabled{opacity:1}watt-tabs .mat-mdc-tab.mdc-tab.watt-tabs-action.mat-mdc-tab-disabled,watt-tabs .mat-mdc-tab.mdc-tab.watt-tabs-action .mdc-tab__content{pointer-events:initial}watt-tabs .mat-mdc-tab.mdc-tab.watt-tabs-action:hover{border-bottom:none}watt-tabs .mat-mdc-tab.mdc-tab.watt-tabs-action:hover .mdc-tab__ripple{display:none}watt-tabs .mat-mdc-tab-body{width:100%}watt-tabs .mat-mdc-tab-group,watt-tabs .mat-mdc-tab-body-wrapper{height:100%}watt-tabs .mat-mdc-tab-group.mat-primary .mdc-tab.cdk-focused.cdk-keyboard-focused:focus{background-color:var(--watt-color-primary-ultralight)}watt-tabs .mat-mdc-tab-labels{padding-left:var(--watt-space-ml)}watt-tabs .mat-mdc-tab{min-width:120px;opacity:1}watt-tabs .mat-mdc-tab .mdc-tab__content{color:var(--watt-typography-button-color);font-size:1rem;line-height:1.5rem;font-weight:600;text-transform:none;letter-spacing:0;color:var(--watt-on-light-medium-emphasis)}watt-tabs .mat-mdc-tab.mat-mdc-tab-active{border-bottom:2px solid var(--watt-color-primary)}watt-tabs .mat-mdc-tab.mat-mdc-tab:hover{border-bottom:2px solid var(--watt-color-primary)}watt-tabs .mat-mdc-tab.mat-mdc-tab-active,watt-tabs .mat-mdc-tab.mat-mdc-tab:hover{color:var(--watt-on-light-medium-emphasis)}watt-tabs .mat-mdc-tab.mat-mdc-tab-active .mdc-tab__content,watt-tabs .mat-mdc-tab.mat-mdc-tab:hover .mdc-tab__content{color:var(--watt-color-primary)}watt-tabs .mat-mdc-tab-body-wrapper{padding:var(--watt-space-ml)}watt-tabs .mat-mdc-tab-body.mat-mdc-tab-body-active,watt-tabs .mat-mdc-tab-group.mat-mdc-tab-group-dynamic-height .mat-mdc-tab-body.mat-mdc-tab-body-active,watt-tabs .mat-mdc-tab-group-dynamic-height .mat-mdc-tab-body-content{position:relative;overflow:initial}watt-tabs .mat-tab-label-container{padding-left:var(--watt-space-ml)}watt-tabs .mat-mdc-tab-header-pagination-controls-enabled .mat-mdc-tab-header-pagination{display:none}watt-tabs .mat-mdc-tab-header{box-shadow:var(--watt-bottom-box-shadow);background-color:var(--watt-color-neutral-white)}watt-tabs .mat-ink-bar{display:none}\n"], dependencies: [{ kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "ngmodule", type: MatTabsModule }, { kind: "directive", type: i1.MatTabLabel, selector: "[mat-tab-label], [matTabLabel]" }, { kind: "component", type: i1.MatTab, selector: "mat-tab", inputs: ["disabled", "label", "aria-label", "aria-labelledby", "labelClass", "bodyClass", "id"], exportAs: ["matTab"] }, { kind: "component", type: i1.MatTabGroup, selector: "mat-tab-group", inputs: ["color", "fitInkBarToContent", "mat-stretch-tabs", "mat-align-tabs", "dynamicHeight", "selectedIndex", "headerPosition", "animationDuration", "contentTabIndex", "disablePagination", "disableRipple", "preserveContent", "backgroundColor", "aria-label", "aria-labelledby"], outputs: ["selectedIndexChange", "focusChange", "animationDone", "selectedTabChange"], exportAs: ["matTabGroup"] }], changeDetection: i0.ChangeDetectionStrategy.Default, encapsulation: i0.ViewEncapsulation.None });
51
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.1.3", type: WattTabsComponent, isStandalone: true, selector: "watt-tabs", inputs: { variant: { classPropertyName: "variant", publicName: "variant", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class": "this.hostClass" } }, queries: [{ propertyName: "tabElements", predicate: WattTabComponent, isSignal: true }, { propertyName: "actionsTab", first: true, predicate: WattTabsActionComponent, descendants: true, isSignal: true }], viewQueries: [{ propertyName: "tabGroup", first: true, predicate: MatTabGroup, descendants: true, isSignal: true }], ngImport: i0, template: "<!--\n@license\nCopyright 2020 Energinet DataHub A/S\n\nLicensed under the Apache License, Version 2.0 (the \"License2\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n-->\n<mat-tab-group\n [mat-stretch-tabs]=\"false\"\n dynamicHeight\n animationDuration=\"0ms\"\n [disableRipple]=\"true\"\n (selectedIndexChange)=\"emitSelectedTabChange($event)\"\n>\n @for (tab of tabElements(); track tab) {\n <mat-tab [label]=\"tab.label()\">\n <ng-container *ngTemplateOutlet=\"tab.templateRef()\" />\n </mat-tab>\n }\n\n @if (actionsTab()) {\n <mat-tab labelClass=\"watt-tabs-action\" [disabled]=\"true\">\n <ng-template mat-tab-label>\n <ng-content />\n </ng-template>\n </mat-tab>\n }\n</mat-tab-group>\n", styles: ["watt-drawer watt-tabs .mat-mdc-tab-group,watt-drawer watt-tabs .mat-mdc-tab-body-wrapper{height:100%}watt-tabs.watt-tabs-secondary .mat-mdc-tab.mat-mdc-tab:hover{border-bottom:none}watt-tabs.watt-tabs-secondary .mdc-tab{padding-left:var(--watt-space-m);padding-right:var(--watt-space-m);height:32px}watt-tabs.watt-tabs-secondary .mat-mdc-tab-group.mat-primary .mdc-tab.cdk-focused.cdk-keyboard-focused:focus{background-color:transparent}watt-tabs.watt-tabs-secondary .mat-mdc-tab-group,watt-tabs.watt-tabs-secondary .mat-mdc-tab-nav-bar{--mat-tab-active-focus-indicator-color: var(--watt-color-secondary);--mat-tab-active-focus-label-text-color: var(--watt-color-neutral-black);--mat-tab-active-hover-indicator-color: var(--watt-color-secondary);--mat-tab-active-hover-label-text-color: var(--watt-color-neutral-black);--mat-tab-active-label-text-color: var(--watt-color-neutral-black);--mat-tab-inactive-label-text-color: var(--watt-on-light-low-emphasis);--mat-tab-inactive-ripple-color: none;--mat-tab-disabled-ripple-color: none;--mat-tab-active-indicator-color: var(--watt-color-secondary);--mat-tab-active-indicator-height: 3px;--mat-tab-active-indicator-shape: 99999px;--mat-tab-active-ripple-color: transparent}watt-tabs.watt-tabs-secondary .mat-mdc-tab-header{background:none;box-shadow:none}watt-tabs.watt-tabs-secondary .mat-mdc-tab-labels{flex-wrap:wrap;padding-left:0}watt-tabs.watt-tabs-secondary .mdc-tab-indicator__content--underline{width:43px}watt-tabs.watt-tabs-secondary .mat-mdc-tab-body-wrapper{padding:var(--watt-space-s);padding-top:var(--watt-space-m)}watt-tabs .mat-mdc-tab.mdc-tab.watt-tabs-action{flex-grow:1;justify-content:flex-end;cursor:default;height:auto}watt-tabs .mat-mdc-tab.mdc-tab.watt-tabs-action.mat-mdc-tab-disabled{opacity:1}watt-tabs .mat-mdc-tab.mdc-tab.watt-tabs-action.mat-mdc-tab-disabled,watt-tabs .mat-mdc-tab.mdc-tab.watt-tabs-action .mdc-tab__content{pointer-events:initial}watt-tabs .mat-mdc-tab.mdc-tab.watt-tabs-action:hover{border-bottom:none}watt-tabs .mat-mdc-tab.mdc-tab.watt-tabs-action:hover .mdc-tab__ripple{display:none}watt-tabs .mat-mdc-tab-body{width:100%}watt-tabs .mat-mdc-tab-group,watt-tabs .mat-mdc-tab-body-wrapper{height:100%}watt-tabs .mat-mdc-tab-group.mat-primary .mdc-tab.cdk-focused.cdk-keyboard-focused:focus{background-color:var(--watt-color-primary-ultralight)}watt-tabs .mat-mdc-tab-labels{padding-left:var(--watt-space-ml)}watt-tabs .mat-mdc-tab{min-width:120px;opacity:1}watt-tabs .mat-mdc-tab .mdc-tab__content{color:var(--watt-typography-button-color);font-size:1rem;line-height:1.5rem;font-weight:600;text-transform:none;letter-spacing:0;color:var(--watt-on-light-medium-emphasis)}watt-tabs .mat-mdc-tab.mat-mdc-tab-active{border-bottom:2px solid var(--watt-color-primary)}watt-tabs .mat-mdc-tab.mat-mdc-tab:hover{border-bottom:2px solid var(--watt-color-primary)}watt-tabs .mat-mdc-tab.mat-mdc-tab-active,watt-tabs .mat-mdc-tab.mat-mdc-tab:hover{color:var(--watt-on-light-medium-emphasis)}watt-tabs .mat-mdc-tab.mat-mdc-tab-active .mdc-tab__content,watt-tabs .mat-mdc-tab.mat-mdc-tab:hover .mdc-tab__content{color:var(--watt-color-primary)}watt-tabs .mat-mdc-tab-body-wrapper{padding:var(--watt-space-ml)}watt-tabs .mat-mdc-tab-body.mat-mdc-tab-body-active,watt-tabs .mat-mdc-tab-group.mat-mdc-tab-group-dynamic-height .mat-mdc-tab-body.mat-mdc-tab-body-active,watt-tabs .mat-mdc-tab-group-dynamic-height .mat-mdc-tab-body-content{position:relative;overflow:initial}watt-tabs .mat-tab-label-container{padding-left:var(--watt-space-ml)}watt-tabs .mat-mdc-tab-header-pagination-controls-enabled .mat-mdc-tab-header-pagination{display:none}watt-tabs .mat-mdc-tab-header{box-shadow:var(--watt-bottom-box-shadow);background-color:var(--watt-color-neutral-white)}watt-tabs .mat-ink-bar{display:none}\n"], dependencies: [{ kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "ngmodule", type: MatTabsModule }, { kind: "directive", type: i1.MatTabLabel, selector: "[mat-tab-label], [matTabLabel]" }, { kind: "component", type: i1.MatTab, selector: "mat-tab", inputs: ["disabled", "label", "aria-label", "aria-labelledby", "labelClass", "bodyClass", "id"], exportAs: ["matTab"] }, { kind: "component", type: i1.MatTabGroup, selector: "mat-tab-group", inputs: ["color", "fitInkBarToContent", "mat-stretch-tabs", "mat-align-tabs", "dynamicHeight", "selectedIndex", "headerPosition", "animationDuration", "contentTabIndex", "disablePagination", "disableRipple", "preserveContent", "backgroundColor", "aria-label", "aria-labelledby"], outputs: ["selectedIndexChange", "focusChange", "animationDone", "selectedTabChange"], exportAs: ["matTabGroup"] }], changeDetection: i0.ChangeDetectionStrategy.Default, encapsulation: i0.ViewEncapsulation.None });
52
52
  }
53
53
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.3", ngImport: i0, type: WattTabsComponent, decorators: [{
54
54
  type: Component,
55
- args: [{ selector: 'watt-tabs', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.Default, imports: [NgTemplateOutlet, MatTabsModule], template: "<!--\n@license\nCopyright 2020 Energinet DataHub A/S\n\nLicensed under the Apache License, Version 2.0 (the \"License2\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n-->\n<mat-tab-group\n [mat-stretch-tabs]=\"false\"\n dynamicHeight\n animationDuration=\"0ms\"\n [disableRipple]=\"true\"\n (selectedIndexChange)=\"emitSelectedTabChange($event)\"\n>\n @for (tab of tabElements(); track tab) {\n <mat-tab [label]=\"tab.label()\">\n <ng-container *ngTemplateOutlet=\"tab.templateRef()\" />\n </mat-tab>\n }\n\n @if (actionsTab()) {\n <mat-tab labelClass=\"watt-tabs-action\" [disabled]=\"true\">\n <ng-template mat-tab-label>\n <ng-content />\n </ng-template>\n </mat-tab>\n }\n</mat-tab-group>\n", styles: ["watt-drawer watt-tabs .mat-mdc-tab-group,watt-drawer watt-tabs .mat-mdc-tab-body-wrapper{height:auto}watt-tabs.watt-tabs-secondary .mat-mdc-tab.mat-mdc-tab:hover{border-bottom:none}watt-tabs.watt-tabs-secondary .mdc-tab{padding-left:var(--watt-space-m);padding-right:var(--watt-space-m);height:32px}watt-tabs.watt-tabs-secondary .mat-mdc-tab-group.mat-primary .mdc-tab.cdk-focused.cdk-keyboard-focused:focus{background-color:transparent}watt-tabs.watt-tabs-secondary .mat-mdc-tab-group,watt-tabs.watt-tabs-secondary .mat-mdc-tab-nav-bar{--mat-tab-active-focus-indicator-color: var(--watt-color-secondary);--mat-tab-active-focus-label-text-color: var(--watt-color-neutral-black);--mat-tab-active-hover-indicator-color: var(--watt-color-secondary);--mat-tab-active-hover-label-text-color: var(--watt-color-neutral-black);--mat-tab-active-label-text-color: var(--watt-color-neutral-black);--mat-tab-inactive-label-text-color: var(--watt-on-light-low-emphasis);--mat-tab-inactive-ripple-color: none;--mat-tab-disabled-ripple-color: none;--mat-tab-active-indicator-color: var(--watt-color-secondary);--mat-tab-active-indicator-height: 3px;--mat-tab-active-indicator-shape: 99999px;--mat-tab-active-ripple-color: transparent}watt-tabs.watt-tabs-secondary .mat-mdc-tab-header{background:none;box-shadow:none}watt-tabs.watt-tabs-secondary .mat-mdc-tab-labels{flex-wrap:wrap;padding-left:0}watt-tabs.watt-tabs-secondary .mdc-tab-indicator__content--underline{width:43px}watt-tabs.watt-tabs-secondary .mat-mdc-tab-body-wrapper{padding:var(--watt-space-s);padding-top:var(--watt-space-m)}watt-tabs .mat-mdc-tab.mdc-tab.watt-tabs-action{flex-grow:1;justify-content:flex-end;cursor:default;height:auto}watt-tabs .mat-mdc-tab.mdc-tab.watt-tabs-action.mat-mdc-tab-disabled{opacity:1}watt-tabs .mat-mdc-tab.mdc-tab.watt-tabs-action.mat-mdc-tab-disabled,watt-tabs .mat-mdc-tab.mdc-tab.watt-tabs-action .mdc-tab__content{pointer-events:initial}watt-tabs .mat-mdc-tab.mdc-tab.watt-tabs-action:hover{border-bottom:none}watt-tabs .mat-mdc-tab.mdc-tab.watt-tabs-action:hover .mdc-tab__ripple{display:none}watt-tabs .mat-mdc-tab-body{width:100%}watt-tabs .mat-mdc-tab-group,watt-tabs .mat-mdc-tab-body-wrapper{height:100%}watt-tabs .mat-mdc-tab-group.mat-primary .mdc-tab.cdk-focused.cdk-keyboard-focused:focus{background-color:var(--watt-color-primary-ultralight)}watt-tabs .mat-mdc-tab-labels{padding-left:var(--watt-space-ml)}watt-tabs .mat-mdc-tab{min-width:120px;opacity:1}watt-tabs .mat-mdc-tab .mdc-tab__content{color:var(--watt-typography-button-color);font-size:1rem;line-height:1.5rem;font-weight:600;text-transform:none;letter-spacing:0;color:var(--watt-on-light-medium-emphasis)}watt-tabs .mat-mdc-tab.mat-mdc-tab-active{border-bottom:2px solid var(--watt-color-primary)}watt-tabs .mat-mdc-tab.mat-mdc-tab:hover{border-bottom:2px solid var(--watt-color-primary)}watt-tabs .mat-mdc-tab.mat-mdc-tab-active,watt-tabs .mat-mdc-tab.mat-mdc-tab:hover{color:var(--watt-on-light-medium-emphasis)}watt-tabs .mat-mdc-tab.mat-mdc-tab-active .mdc-tab__content,watt-tabs .mat-mdc-tab.mat-mdc-tab:hover .mdc-tab__content{color:var(--watt-color-primary)}watt-tabs .mat-mdc-tab-body-wrapper{padding:var(--watt-space-ml)}watt-tabs .mat-mdc-tab-body.mat-mdc-tab-body-active,watt-tabs .mat-mdc-tab-group.mat-mdc-tab-group-dynamic-height .mat-mdc-tab-body.mat-mdc-tab-body-active,watt-tabs .mat-mdc-tab-group-dynamic-height .mat-mdc-tab-body-content{position:relative;overflow:initial}watt-tabs .mat-tab-label-container{padding-left:var(--watt-space-ml)}watt-tabs .mat-mdc-tab-header-pagination-controls-enabled .mat-mdc-tab-header-pagination{display:none}watt-tabs .mat-mdc-tab-header{box-shadow:var(--watt-bottom-box-shadow);background-color:var(--watt-color-neutral-white)}watt-tabs .mat-ink-bar{display:none}\n"] }]
55
+ args: [{ selector: 'watt-tabs', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.Default, imports: [NgTemplateOutlet, MatTabsModule], template: "<!--\n@license\nCopyright 2020 Energinet DataHub A/S\n\nLicensed under the Apache License, Version 2.0 (the \"License2\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n-->\n<mat-tab-group\n [mat-stretch-tabs]=\"false\"\n dynamicHeight\n animationDuration=\"0ms\"\n [disableRipple]=\"true\"\n (selectedIndexChange)=\"emitSelectedTabChange($event)\"\n>\n @for (tab of tabElements(); track tab) {\n <mat-tab [label]=\"tab.label()\">\n <ng-container *ngTemplateOutlet=\"tab.templateRef()\" />\n </mat-tab>\n }\n\n @if (actionsTab()) {\n <mat-tab labelClass=\"watt-tabs-action\" [disabled]=\"true\">\n <ng-template mat-tab-label>\n <ng-content />\n </ng-template>\n </mat-tab>\n }\n</mat-tab-group>\n", styles: ["watt-drawer watt-tabs .mat-mdc-tab-group,watt-drawer watt-tabs .mat-mdc-tab-body-wrapper{height:100%}watt-tabs.watt-tabs-secondary .mat-mdc-tab.mat-mdc-tab:hover{border-bottom:none}watt-tabs.watt-tabs-secondary .mdc-tab{padding-left:var(--watt-space-m);padding-right:var(--watt-space-m);height:32px}watt-tabs.watt-tabs-secondary .mat-mdc-tab-group.mat-primary .mdc-tab.cdk-focused.cdk-keyboard-focused:focus{background-color:transparent}watt-tabs.watt-tabs-secondary .mat-mdc-tab-group,watt-tabs.watt-tabs-secondary .mat-mdc-tab-nav-bar{--mat-tab-active-focus-indicator-color: var(--watt-color-secondary);--mat-tab-active-focus-label-text-color: var(--watt-color-neutral-black);--mat-tab-active-hover-indicator-color: var(--watt-color-secondary);--mat-tab-active-hover-label-text-color: var(--watt-color-neutral-black);--mat-tab-active-label-text-color: var(--watt-color-neutral-black);--mat-tab-inactive-label-text-color: var(--watt-on-light-low-emphasis);--mat-tab-inactive-ripple-color: none;--mat-tab-disabled-ripple-color: none;--mat-tab-active-indicator-color: var(--watt-color-secondary);--mat-tab-active-indicator-height: 3px;--mat-tab-active-indicator-shape: 99999px;--mat-tab-active-ripple-color: transparent}watt-tabs.watt-tabs-secondary .mat-mdc-tab-header{background:none;box-shadow:none}watt-tabs.watt-tabs-secondary .mat-mdc-tab-labels{flex-wrap:wrap;padding-left:0}watt-tabs.watt-tabs-secondary .mdc-tab-indicator__content--underline{width:43px}watt-tabs.watt-tabs-secondary .mat-mdc-tab-body-wrapper{padding:var(--watt-space-s);padding-top:var(--watt-space-m)}watt-tabs .mat-mdc-tab.mdc-tab.watt-tabs-action{flex-grow:1;justify-content:flex-end;cursor:default;height:auto}watt-tabs .mat-mdc-tab.mdc-tab.watt-tabs-action.mat-mdc-tab-disabled{opacity:1}watt-tabs .mat-mdc-tab.mdc-tab.watt-tabs-action.mat-mdc-tab-disabled,watt-tabs .mat-mdc-tab.mdc-tab.watt-tabs-action .mdc-tab__content{pointer-events:initial}watt-tabs .mat-mdc-tab.mdc-tab.watt-tabs-action:hover{border-bottom:none}watt-tabs .mat-mdc-tab.mdc-tab.watt-tabs-action:hover .mdc-tab__ripple{display:none}watt-tabs .mat-mdc-tab-body{width:100%}watt-tabs .mat-mdc-tab-group,watt-tabs .mat-mdc-tab-body-wrapper{height:100%}watt-tabs .mat-mdc-tab-group.mat-primary .mdc-tab.cdk-focused.cdk-keyboard-focused:focus{background-color:var(--watt-color-primary-ultralight)}watt-tabs .mat-mdc-tab-labels{padding-left:var(--watt-space-ml)}watt-tabs .mat-mdc-tab{min-width:120px;opacity:1}watt-tabs .mat-mdc-tab .mdc-tab__content{color:var(--watt-typography-button-color);font-size:1rem;line-height:1.5rem;font-weight:600;text-transform:none;letter-spacing:0;color:var(--watt-on-light-medium-emphasis)}watt-tabs .mat-mdc-tab.mat-mdc-tab-active{border-bottom:2px solid var(--watt-color-primary)}watt-tabs .mat-mdc-tab.mat-mdc-tab:hover{border-bottom:2px solid var(--watt-color-primary)}watt-tabs .mat-mdc-tab.mat-mdc-tab-active,watt-tabs .mat-mdc-tab.mat-mdc-tab:hover{color:var(--watt-on-light-medium-emphasis)}watt-tabs .mat-mdc-tab.mat-mdc-tab-active .mdc-tab__content,watt-tabs .mat-mdc-tab.mat-mdc-tab:hover .mdc-tab__content{color:var(--watt-color-primary)}watt-tabs .mat-mdc-tab-body-wrapper{padding:var(--watt-space-ml)}watt-tabs .mat-mdc-tab-body.mat-mdc-tab-body-active,watt-tabs .mat-mdc-tab-group.mat-mdc-tab-group-dynamic-height .mat-mdc-tab-body.mat-mdc-tab-body-active,watt-tabs .mat-mdc-tab-group-dynamic-height .mat-mdc-tab-body-content{position:relative;overflow:initial}watt-tabs .mat-tab-label-container{padding-left:var(--watt-space-ml)}watt-tabs .mat-mdc-tab-header-pagination-controls-enabled .mat-mdc-tab-header-pagination{display:none}watt-tabs .mat-mdc-tab-header{box-shadow:var(--watt-bottom-box-shadow);background-color:var(--watt-color-neutral-white)}watt-tabs .mat-ink-bar{display:none}\n"] }]
56
56
  }], propDecorators: { hostClass: [{
57
57
  type: HostBinding,
58
58
  args: ['class']
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "type": "module",
3
3
  "name": "@energinet/watt",
4
- "version": "3.0.15",
4
+ "version": "3.0.16",
5
5
  "license": "Apache-2.0",
6
6
  "exports": {
7
7
  ".": {