@energinet/watt 4.3.1 → 4.3.3

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.
@@ -1,6 +1,5 @@
1
1
  import * as _angular_core from '@angular/core';
2
2
  import { TemplateRef } from '@angular/core';
3
- import * as i1 from '@angular/common';
4
3
 
5
4
  declare class WattDescriptionListItemComponent<T> {
6
5
  templateRef: _angular_core.Signal<TemplateRef<unknown>>;
@@ -8,7 +7,7 @@ declare class WattDescriptionListItemComponent<T> {
8
7
  value: _angular_core.InputSignal<T | null>;
9
8
  forceNewRow: _angular_core.InputSignal<boolean>;
10
9
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<WattDescriptionListItemComponent<any>, never>;
11
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<WattDescriptionListItemComponent<any>, "watt-description-list-item", never, { "label": { "alias": "label"; "required": false; "isSignal": true; }; "value": { "alias": "value"; "required": false; "isSignal": true; }; "forceNewRow": { "alias": "forceNewRow"; "required": false; "isSignal": true; }; }, {}, never, ["*"], true, [{ directive: typeof i1.NgClass; inputs: {}; outputs: {}; }]>;
10
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<WattDescriptionListItemComponent<any>, "watt-description-list-item", never, { "label": { "alias": "label"; "required": false; "isSignal": true; }; "value": { "alias": "value"; "required": false; "isSignal": true; }; "forceNewRow": { "alias": "forceNewRow"; "required": false; "isSignal": true; }; }, {}, never, ["*"], true, never>;
12
11
  }
13
12
 
14
13
  /**
@@ -16,15 +15,13 @@ declare class WattDescriptionListItemComponent<T> {
16
15
  * `import { WattDescriptionListComponent } from '@energinet/watt/description-list';`
17
16
  */
18
17
  declare class WattDescriptionListComponent<T> {
19
- private ngClass;
20
18
  descriptionItems: _angular_core.Signal<readonly WattDescriptionListItemComponent<T>[]>;
21
19
  variant: _angular_core.InputSignal<"flow" | "inline-flow" | "stack" | "compact">;
22
- descriptionVariant: _angular_core.Signal<string>;
23
20
  groupsPerRow: _angular_core.InputSignal<number>;
24
21
  itemSeparators: _angular_core.InputSignal<boolean>;
25
- constructor();
22
+ descriptionVariant: _angular_core.Signal<string>;
26
23
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<WattDescriptionListComponent<any>, never>;
27
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<WattDescriptionListComponent<any>, "watt-description-list", never, { "variant": { "alias": "variant"; "required": false; "isSignal": true; }; "groupsPerRow": { "alias": "groupsPerRow"; "required": false; "isSignal": true; }; "itemSeparators": { "alias": "itemSeparators"; "required": false; "isSignal": true; }; }, {}, ["descriptionItems"], never, true, [{ directive: typeof i1.NgClass; inputs: {}; outputs: {}; }]>;
24
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<WattDescriptionListComponent<any>, "watt-description-list", never, { "variant": { "alias": "variant"; "required": false; "isSignal": true; }; "groupsPerRow": { "alias": "groupsPerRow"; "required": false; "isSignal": true; }; "itemSeparators": { "alias": "itemSeparators"; "required": false; "isSignal": true; }; }, {}, ["descriptionItems"], never, true, never>;
28
25
  }
29
26
 
30
27
  declare const WATT_DESCRIPTION_LIST: readonly [typeof WattDescriptionListComponent, typeof WattDescriptionListItemComponent];
@@ -1,7 +1,6 @@
1
- import * as i1 from '@angular/common';
2
- import { NgClass, NgTemplateOutlet } from '@angular/common';
1
+ import { NgTemplateOutlet } from '@angular/common';
3
2
  import * as i0 from '@angular/core';
4
- import { viewChild, input, ChangeDetectionStrategy, Component, inject, contentChildren, computed, effect, ViewEncapsulation } from '@angular/core';
3
+ import { viewChild, input, ChangeDetectionStrategy, Component, contentChildren, computed, ViewEncapsulation } from '@angular/core';
5
4
 
6
5
  //#region License
7
6
  /**
@@ -27,21 +26,19 @@ class WattDescriptionListItemComponent {
27
26
  value = input(null, ...(ngDevMode ? [{ debugName: "value" }] : []));
28
27
  forceNewRow = input(false, ...(ngDevMode ? [{ debugName: "forceNewRow" }] : []));
29
28
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: WattDescriptionListItemComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
30
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "20.3.15", type: WattDescriptionListItemComponent, isStandalone: true, selector: "watt-description-list-item", inputs: { label: { classPropertyName: "label", publicName: "label", isSignal: true, isRequired: false, transformFunction: null }, value: { classPropertyName: "value", publicName: "value", isSignal: true, isRequired: false, transformFunction: null }, forceNewRow: { classPropertyName: "forceNewRow", publicName: "forceNewRow", isSignal: true, isRequired: false, transformFunction: null } }, viewQueries: [{ propertyName: "templateRef", first: true, predicate: ["templateRef"], descendants: true, isSignal: true }], hostDirectives: [{ directive: i1.NgClass }], ngImport: i0, template: `<ng-template #templateRef
31
- ><div [ngClass]="{ 'force-new-row': forceNewRow() }">
29
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "20.3.15", type: WattDescriptionListItemComponent, isStandalone: true, selector: "watt-description-list-item", inputs: { label: { classPropertyName: "label", publicName: "label", isSignal: true, isRequired: false, transformFunction: null }, value: { classPropertyName: "value", publicName: "value", isSignal: true, isRequired: false, transformFunction: null }, forceNewRow: { classPropertyName: "forceNewRow", publicName: "forceNewRow", isSignal: true, isRequired: false, transformFunction: null } }, viewQueries: [{ propertyName: "templateRef", first: true, predicate: ["templateRef"], descendants: true, isSignal: true }], ngImport: i0, template: `<ng-template #templateRef
30
+ ><div [class.force-new-row]="forceNewRow()">
32
31
  <dt class="watt-label watt-on-light--high-emphasis">{{ label() }}</dt>
33
32
  <dd class="watt-text-s">{{ value() }}<ng-content /></dd></div
34
- ></ng-template>`, isInline: true, dependencies: [{ kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
33
+ ></ng-template>`, isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
35
34
  }
36
35
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: WattDescriptionListItemComponent, decorators: [{
37
36
  type: Component,
38
37
  args: [{
39
- imports: [NgClass],
40
38
  selector: 'watt-description-list-item',
41
39
  changeDetection: ChangeDetectionStrategy.OnPush,
42
- hostDirectives: [NgClass],
43
40
  template: `<ng-template #templateRef
44
- ><div [ngClass]="{ 'force-new-row': forceNewRow() }">
41
+ ><div [class.force-new-row]="forceNewRow()">
45
42
  <dt class="watt-label watt-on-light--high-emphasis">{{ label() }}</dt>
46
43
  <dd class="watt-text-s">{{ value() }}<ng-content /></dd></div
47
44
  ></ng-template>`,
@@ -71,21 +68,13 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImpo
71
68
  * `import { WattDescriptionListComponent } from '@energinet/watt/description-list';`
72
69
  */
73
70
  class WattDescriptionListComponent {
74
- ngClass = inject(NgClass);
75
71
  descriptionItems = contentChildren((WattDescriptionListItemComponent), ...(ngDevMode ? [{ debugName: "descriptionItems" }] : []));
76
72
  variant = input('flow', ...(ngDevMode ? [{ debugName: "variant" }] : []));
77
- descriptionVariant = computed(() => `watt-description-list-${this.variant()}`, ...(ngDevMode ? [{ debugName: "descriptionVariant" }] : []));
78
73
  groupsPerRow = input(3, ...(ngDevMode ? [{ debugName: "groupsPerRow" }] : []));
79
74
  itemSeparators = input(true, ...(ngDevMode ? [{ debugName: "itemSeparators" }] : []));
80
- constructor() {
81
- effect(() => {
82
- this.ngClass.ngClass = {
83
- [`item-separators`]: this.itemSeparators(),
84
- };
85
- });
86
- }
75
+ descriptionVariant = computed(() => `watt-description-list-${this.variant()}`, ...(ngDevMode ? [{ debugName: "descriptionVariant" }] : []));
87
76
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: WattDescriptionListComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
88
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.15", type: WattDescriptionListComponent, isStandalone: true, selector: "watt-description-list", inputs: { variant: { classPropertyName: "variant", publicName: "variant", isSignal: true, isRequired: false, transformFunction: null }, groupsPerRow: { classPropertyName: "groupsPerRow", publicName: "groupsPerRow", isSignal: true, isRequired: false, transformFunction: null }, itemSeparators: { classPropertyName: "itemSeparators", publicName: "itemSeparators", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "style.--watt-description-list-groups-per-row": "groupsPerRow()", "class": "descriptionVariant()" } }, queries: [{ propertyName: "descriptionItems", predicate: (WattDescriptionListItemComponent), isSignal: true }], hostDirectives: [{ directive: i1.NgClass }], ngImport: i0, template: `<dl>
77
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.15", type: WattDescriptionListComponent, isStandalone: true, selector: "watt-description-list", inputs: { variant: { classPropertyName: "variant", publicName: "variant", isSignal: true, isRequired: false, transformFunction: null }, groupsPerRow: { classPropertyName: "groupsPerRow", publicName: "groupsPerRow", isSignal: true, isRequired: false, transformFunction: null }, itemSeparators: { classPropertyName: "itemSeparators", publicName: "itemSeparators", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "style.--watt-description-list-groups-per-row": "groupsPerRow()", "class": "descriptionVariant()", "class.item-separators": "itemSeparators()" } }, queries: [{ propertyName: "descriptionItems", predicate: (WattDescriptionListItemComponent), isSignal: true }], ngImport: i0, template: `<dl>
89
78
  @for (item of descriptionItems(); track item) {
90
79
  <ng-container *ngTemplateOutlet="item.templateRef()" />
91
80
  }
@@ -97,11 +86,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImpo
97
86
  @for (item of descriptionItems(); track item) {
98
87
  <ng-container *ngTemplateOutlet="item.templateRef()" />
99
88
  }
100
- </dl>`, hostDirectives: [NgClass], host: {
89
+ </dl>`, host: {
101
90
  '[style.--watt-description-list-groups-per-row]': 'groupsPerRow()',
102
91
  '[class]': 'descriptionVariant()',
92
+ '[class.item-separators]': 'itemSeparators()',
103
93
  }, styles: ["watt-description-list{display:block}watt-description-list.watt-description-list-flow dl{display:grid;gap:var(--watt-space-ml);grid-template-columns:repeat(var(--watt-description-list-groups-per-row, 3),1fr)}watt-description-list.watt-description-list-flow dl dd{margin:0}watt-description-list.watt-description-list-flow dl .force-new-row{grid-column-start:1}watt-description-list.watt-description-list-inline-flow dl{display:flex;gap:var(--watt-space-ml)}watt-description-list.watt-description-list-inline-flow dl dd{margin:0}watt-description-list.watt-description-list-inline-flow dl div{display:flex;gap:var(--watt-space-xs);width:max-content}watt-description-list.watt-description-list-stack dl{display:grid;gap:var(--watt-space-m);grid-template-columns:1fr}watt-description-list.watt-description-list-stack dl dd{margin:0;flex:1}watt-description-list.watt-description-list-stack dl dt{width:240px}watt-description-list.watt-description-list-stack dl div{display:flex;align-items:baseline}watt-description-list.watt-description-list-stack.item-separators dl div{border-bottom:1px solid var(--watt-color-neutral-grey-300);padding-bottom:var(--watt-space-m)}watt-description-list.watt-description-list-compact dl{display:grid;gap:var(--watt-space-m) var(--watt-space-l);grid-template-columns:max-content auto}watt-description-list.watt-description-list-compact dl dd{margin:0}watt-description-list.watt-description-list-compact dl div{display:contents}\n"] }]
104
- }], ctorParameters: () => [], propDecorators: { descriptionItems: [{ type: i0.ContentChildren, args: [i0.forwardRef(() => WattDescriptionListItemComponent), { isSignal: true }] }], variant: [{ type: i0.Input, args: [{ isSignal: true, alias: "variant", required: false }] }], groupsPerRow: [{ type: i0.Input, args: [{ isSignal: true, alias: "groupsPerRow", required: false }] }], itemSeparators: [{ type: i0.Input, args: [{ isSignal: true, alias: "itemSeparators", required: false }] }] } });
94
+ }], propDecorators: { descriptionItems: [{ type: i0.ContentChildren, args: [i0.forwardRef(() => WattDescriptionListItemComponent), { isSignal: true }] }], variant: [{ type: i0.Input, args: [{ isSignal: true, alias: "variant", required: false }] }], groupsPerRow: [{ type: i0.Input, args: [{ isSignal: true, alias: "groupsPerRow", required: false }] }], itemSeparators: [{ type: i0.Input, args: [{ isSignal: true, alias: "itemSeparators", required: false }] }] } });
105
95
  const WATT_DESCRIPTION_LIST = [
106
96
  WattDescriptionListComponent,
107
97
  WattDescriptionListItemComponent,
@@ -1 +1 @@
1
- {"version":3,"file":"energinet-watt-description-list.mjs","sources":["../../../libs/watt/package/description-list/watt-description-list-item.component.ts","../../../libs/watt/package/description-list/watt-description-list.component.ts","../../../libs/watt/package/description-list/index.ts","../../../libs/watt/package/description-list/energinet-watt-description-list.ts"],"sourcesContent":["//#region License\n/**\n * @license\n * Copyright 2020 Energinet DataHub A/S\n *\n * Licensed under the Apache License, Version 2.0 (the \"License2\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n//#endregion\nimport { ChangeDetectionStrategy, Component, input, TemplateRef, viewChild } from '@angular/core';\nimport { NgClass } from '@angular/common';\n\n@Component({\n imports: [NgClass],\n selector: 'watt-description-list-item',\n changeDetection: ChangeDetectionStrategy.OnPush,\n hostDirectives: [NgClass],\n template: `<ng-template #templateRef\n ><div [ngClass]=\"{ 'force-new-row': forceNewRow() }\">\n <dt class=\"watt-label watt-on-light--high-emphasis\">{{ label() }}</dt>\n <dd class=\"watt-text-s\">{{ value() }}<ng-content /></dd></div\n ></ng-template>`,\n})\nexport class WattDescriptionListItemComponent<T> {\n templateRef = viewChild.required<TemplateRef<unknown | null>>('templateRef');\n label = input<string>('');\n value = input<T | null>(null);\n forceNewRow = input(false);\n}\n","//#region License\n/**\n * @license\n * Copyright 2020 Energinet DataHub A/S\n *\n * Licensed under the Apache License, Version 2.0 (the \"License2\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n//#endregion\nimport { NgClass, NgTemplateOutlet } from '@angular/common';\nimport {\n Component,\n computed,\n contentChildren,\n effect,\n inject,\n input,\n ViewEncapsulation,\n} from '@angular/core';\n\nimport { WattDescriptionListItemComponent } from './watt-description-list-item.component';\n/**\n * Usage:\n * `import { WattDescriptionListComponent } from '@energinet/watt/description-list';`\n */\n@Component({\n encapsulation: ViewEncapsulation.None,\n selector: 'watt-description-list',\n styleUrls: ['./watt-description-list.component.scss'],\n imports: [NgTemplateOutlet],\n template: `<dl>\n @for (item of descriptionItems(); track item) {\n <ng-container *ngTemplateOutlet=\"item.templateRef()\" />\n }\n </dl>`,\n hostDirectives: [NgClass],\n host: {\n '[style.--watt-description-list-groups-per-row]': 'groupsPerRow()',\n '[class]': 'descriptionVariant()',\n },\n})\nclass WattDescriptionListComponent<T> {\n private ngClass = inject(NgClass);\n descriptionItems = contentChildren(WattDescriptionListItemComponent<T>);\n variant = input<'flow' | 'inline-flow' | 'stack' | 'compact'>('flow');\n descriptionVariant = computed(() => `watt-description-list-${this.variant()}`);\n groupsPerRow = input<number>(3);\n itemSeparators = input(true);\n\n constructor() {\n effect(() => {\n this.ngClass.ngClass = {\n [`item-separators`]: this.itemSeparators(),\n };\n });\n }\n}\n\nexport { WattDescriptionListItemComponent, WattDescriptionListComponent };\nexport const WATT_DESCRIPTION_LIST = [\n WattDescriptionListComponent,\n WattDescriptionListItemComponent,\n] as const;\n","//#region License\n/**\n * @license\n * Copyright 2020 Energinet DataHub A/S\n *\n * Licensed under the Apache License, Version 2.0 (the \"License2\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n//#endregion\nexport {\n WattDescriptionListComponent,\n WattDescriptionListItemComponent,\n WATT_DESCRIPTION_LIST,\n} from './watt-description-list.component';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"energinet-watt-description-list.mjs","sources":["../../../libs/watt/package/description-list/watt-description-list-item.component.ts","../../../libs/watt/package/description-list/watt-description-list.component.ts","../../../libs/watt/package/description-list/index.ts","../../../libs/watt/package/description-list/energinet-watt-description-list.ts"],"sourcesContent":["//#region License\n/**\n * @license\n * Copyright 2020 Energinet DataHub A/S\n *\n * Licensed under the Apache License, Version 2.0 (the \"License2\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n//#endregion\nimport { ChangeDetectionStrategy, Component, input, TemplateRef, viewChild } from '@angular/core';\n\n@Component({\n selector: 'watt-description-list-item',\n changeDetection: ChangeDetectionStrategy.OnPush,\n template: `<ng-template #templateRef\n ><div [class.force-new-row]=\"forceNewRow()\">\n <dt class=\"watt-label watt-on-light--high-emphasis\">{{ label() }}</dt>\n <dd class=\"watt-text-s\">{{ value() }}<ng-content /></dd></div\n ></ng-template>`,\n})\nexport class WattDescriptionListItemComponent<T> {\n templateRef = viewChild.required<TemplateRef<unknown | null>>('templateRef');\n\n label = input<string>('');\n value = input<T | null>(null);\n forceNewRow = input(false);\n}\n","//#region License\n/**\n * @license\n * Copyright 2020 Energinet DataHub A/S\n *\n * Licensed under the Apache License, Version 2.0 (the \"License2\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n//#endregion\nimport { NgTemplateOutlet } from '@angular/common';\nimport { Component, computed, contentChildren, input, ViewEncapsulation } from '@angular/core';\n\nimport { WattDescriptionListItemComponent } from './watt-description-list-item.component';\n/**\n * Usage:\n * `import { WattDescriptionListComponent } from '@energinet/watt/description-list';`\n */\n@Component({\n encapsulation: ViewEncapsulation.None,\n selector: 'watt-description-list',\n styleUrls: ['./watt-description-list.component.scss'],\n imports: [NgTemplateOutlet],\n template: `<dl>\n @for (item of descriptionItems(); track item) {\n <ng-container *ngTemplateOutlet=\"item.templateRef()\" />\n }\n </dl>`,\n host: {\n '[style.--watt-description-list-groups-per-row]': 'groupsPerRow()',\n '[class]': 'descriptionVariant()',\n '[class.item-separators]': 'itemSeparators()',\n },\n})\nclass WattDescriptionListComponent<T> {\n descriptionItems = contentChildren(WattDescriptionListItemComponent<T>);\n\n variant = input<'flow' | 'inline-flow' | 'stack' | 'compact'>('flow');\n groupsPerRow = input<number>(3);\n itemSeparators = input(true);\n\n descriptionVariant = computed(() => `watt-description-list-${this.variant()}`);\n}\n\nexport { WattDescriptionListItemComponent, WattDescriptionListComponent };\nexport const WATT_DESCRIPTION_LIST = [\n WattDescriptionListComponent,\n WattDescriptionListItemComponent,\n] as const;\n","//#region License\n/**\n * @license\n * Copyright 2020 Energinet DataHub A/S\n *\n * Licensed under the Apache License, Version 2.0 (the \"License2\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n//#endregion\nexport {\n WattDescriptionListComponent,\n WattDescriptionListItemComponent,\n WATT_DESCRIPTION_LIST,\n} from './watt-description-list.component';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
@@ -2,7 +2,6 @@ import * as i0 from '@angular/core';
2
2
  import { inject, DestroyRef, signal, viewChild, input, model, computed, effect, ViewEncapsulation, Component } from '@angular/core';
3
3
  import * as i2 from '@angular/forms';
4
4
  import { NgControl, FormControl, UntypedFormControl, ReactiveFormsModule } from '@angular/forms';
5
- import { NgClass } from '@angular/common';
6
5
  import { RxPush } from '@rx-angular/template/push';
7
6
  import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
8
7
  import { ReplaySubject, mergeWith, take, map, of } from 'rxjs';
@@ -325,13 +324,12 @@ class WattDropdownComponent {
325
324
  });
326
325
  }
327
326
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: WattDropdownComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
328
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.15", type: WattDropdownComponent, isStandalone: true, selector: "watt-dropdown", inputs: { hideSearch: { classPropertyName: "hideSearch", publicName: "hideSearch", isSignal: true, isRequired: false, transformFunction: null }, panelWidth: { classPropertyName: "panelWidth", publicName: "panelWidth", isSignal: true, isRequired: false, transformFunction: null }, getCustomTrigger: { classPropertyName: "getCustomTrigger", publicName: "getCustomTrigger", isSignal: true, isRequired: false, transformFunction: null }, chipMode: { classPropertyName: "chipMode", publicName: "chipMode", isSignal: true, isRequired: false, transformFunction: null }, disableSelectedMode: { classPropertyName: "disableSelectedMode", publicName: "disableSelectedMode", isSignal: true, isRequired: false, transformFunction: null }, sortDirection: { classPropertyName: "sortDirection", publicName: "sortDirection", isSignal: true, isRequired: false, transformFunction: null }, options: { classPropertyName: "options", publicName: "options", isSignal: true, isRequired: false, transformFunction: null }, multiple: { classPropertyName: "multiple", publicName: "multiple", isSignal: true, isRequired: false, transformFunction: null }, showResetOption: { classPropertyName: "showResetOption", publicName: "showResetOption", isSignal: true, isRequired: false, transformFunction: null }, placeholder: { classPropertyName: "placeholder", publicName: "placeholder", isSignal: true, isRequired: false, transformFunction: null }, label: { classPropertyName: "label", publicName: "label", isSignal: true, isRequired: false, transformFunction: null }, noOptionsFoundLabel: { classPropertyName: "noOptionsFoundLabel", publicName: "noOptionsFoundLabel", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { options: "optionsChange" }, host: { properties: { "attr.watt-field-disabled": "isDisabled()", "class.watt-chip-mode": "chipMode()" } }, viewQueries: [{ propertyName: "matSelect", first: true, predicate: ["matSelect"], 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<watt-field\n [control]=\"parentControl\"\n [chipMode]=\"chipMode()\"\n [label]=\"label()\"\n (click)=\"matSelect.open()\"\n>\n @if (chipMode()) {\n <watt-menu-chip\n [opened]=\"matSelect.panelOpen\"\n (toggleChange)=\"matSelect.open()\"\n [selected]=\"!!matSelect?.triggerValue && !disableSelectedMode()\"\n [disabled]=\"matSelectControl.disabled\"\n >\n {{ placeholder() }}\n @if (showTriggerValue) {\n <span>\n @if (placeholder()) {\n :\n }\n {{ getCustomTrigger()?.(matSelect.value) ?? matSelect?.triggerValue }}\n </span>\n }\n @if (showChipLabel) {\n <span class=\"watt-chip-label\">{{ matSelectControl.value?.length }}</span>\n }\n </watt-menu-chip>\n }\n\n <mat-select\n [attr.aria-label]=\"label()\"\n [formControl]=\"matSelectControl\"\n [placeholder]=\"placeholder()\"\n #matSelect\n [panelWidth]=\"panelWidth()\"\n [multiple]=\"multiple()\"\n [ngClass]=\"{ chip: chipMode(), 'mat-mdc-select-multiple': multiple() }\"\n [panelClass]=\"{\n 'watt-dropdown-panel': true,\n 'watt-dropdown-panel-chip-mode': chipMode(),\n 'mat-mdc-select-panel-multiple': multiple(),\n }\"\n >\n <!-- We use this instead of ngIf, since it will trigger a NG0100: ExpressionChangedAfterItHasBeenCheckedError: Expression has changed after it was checked. -->\n <mat-option [style.display]=\"!hideSearch() ? 'block' : 'none'\">\n <ngx-mat-select-search\n [formControl]=\"filterControl\"\n [placeholderLabel]=\"placeholder()\"\n closeIcon=\"close\"\n [showToggleAllCheckbox]=\"multiple()\"\n (toggleAll)=\"onToggleAll($event)\"\n [toggleAllCheckboxChecked]=\"isToggleAllChecked\"\n [toggleAllCheckboxIndeterminate]=\"isToggleAllIndeterminate\"\n [noEntriesFoundLabel]=\"noOptionsFoundLabel()\"\n >\n <watt-icon ngxMatSelectSearchClear name=\"close\" size=\"s\" />\n </ngx-mat-select-search>\n </mat-option>\n\n @if (!multiple() && showResetOption()) {\n <mat-option>{{ emDash }}</mat-option>\n }\n\n @if (hasGroups()) {\n @for (item of filteredGroupedOptions$ | push; track item) {\n @if (\"options\" in item) {\n <mat-optgroup [label]=\"item.label\" [disabled]=\"item.disabled\">\n @for (option of item.options; track option) {\n <mat-option\n [value]=\"option.value\"\n [disabled]=\"option.disabled\"\n [class.mat-mdc-option-multiple]=\"multiple()\"\n >\n {{ option.displayValue }}\n </mat-option>\n }\n </mat-optgroup>\n }\n }\n } @else {\n @for (option of filteredOptions$ | push; track option) {\n <mat-option\n [value]=\"option.value\"\n [disabled]=\"option.disabled\"\n [class.mat-mdc-option-multiple]=\"multiple()\"\n >\n {{ option.displayValue }}\n </mat-option>\n }\n }\n </mat-select>\n <ng-content />\n <ng-content ngProjectAs=\"watt-field-hint\" select=\"watt-field-hint\" />\n <ng-content ngProjectAs=\"watt-field-error\" select=\"watt-field-error\" />\n</watt-field>\n", styles: ["watt-dropdown:not(.watt-chip-mode){width:100%}watt-dropdown{--watt-input-color: var(--watt-typography-text-color);--watt-input-placeholder-color: var(--watt-on-light-high-emphasis);display:block;width:auto}watt-dropdown watt-field label .watt-field-wrapper{padding:0;position:relative}watt-dropdown.watt-chip-mode.ng-dirty.ng-invalid .watt-field-wrapper watt-chip label{border:1px solid var(--watt-color-state-danger)}watt-dropdown.watt-chip-mode[disabled=true] watt-field label .watt-field-wrapper{background-color:transparent}watt-dropdown .mat-input-element{font-size:.875rem;line-height:1.25rem;font-weight:400;text-transform:none;letter-spacing:0;color:var(--watt-input-color);caret-color:var(--watt-color-neutral-grey-900)!important;padding:0 12px}watt-dropdown .mat-mdc-select-arrow{color:var(--watt-dropdown-arrow-color, rgba(0, 0, 0, .54));border:none;width:auto;height:auto}watt-dropdown .mat-mdc-select-arrow:before{width:.6em;height:.6em;bottom:.2em;position:relative;display:inline-block;border-style:solid;border-width:0 0 .15em .15em;transform:rotate(315deg);border-color:var(--watt-color-primary);content:\"\"}watt-dropdown .mat-mdc-select-arrow svg{display:none}watt-dropdown .mat-mdc-select-trigger{font-size:.875rem;line-height:1.25rem;font-weight:400;text-transform:none;letter-spacing:0;padding:0 var(--watt-space-m)}watt-dropdown .mat-mdc-select-value{color:var(--watt-color-neutral-black);padding-right:var(--watt-space-m)}watt-dropdown .mat-mdc-select.mat-mdc-select-invalid.ng-pristine .mat-mdc-select-arrow{color:currentColor}watt-dropdown .watt-chip-label{float:right;margin-left:var(--watt-space-s);background:var(--watt-color-neutral-white)}watt-dropdown .watt-field--chip .mat-mdc-select{visibility:hidden;position:absolute;width:100%}watt-dropdown .mat-mdc-select-placeholder{color:var(--watt-input-placeholder-color)}watt-dropdown watt-field label .watt-field-wrapper{background-color:transparent}.watt-dropdown-panel{--watt-input-color: var(--watt-typography-text-color);padding:0}.watt-dropdown-panel .mat-select-search-inner-row .mat-select-search-input,.watt-dropdown-panel mat-option.contains-mat-select-search{height:48px}.watt-dropdown-panel:not(.watt-dropdown-panel-chip-mode){min-width:calc(100% + 2px)!important;margin-top:-36px;margin-left:-1px;min-height:48px}.watt-dropdown-panel .mat-mdc-checkbox.mat-select-search-toggle-all-checkbox{padding:0;margin:0 var(--watt-space-m)}.watt-dropdown-panel .mat-datepicker-content .mat-mdc-icon-button{--mat-mdc-button-persistent-ripple-color: transparent;--mat-mdc-button-ripple-color: transparent}.watt-dropdown-panel.watt-dropdown-panel-chip-mode{margin-top:4px}.watt-dropdown-panel.mat-mdc-select-search-panel{transform:scaleY(1)!important}.watt-dropdown-panel .mat-mdc-option.mdc-list-item.contains-mat-select-search.mat-mdc-option-multiple{background-color:transparent}.watt-dropdown-panel ngx-mat-select-search .mat-select-search-inner-multiple .mat-select-search-inner-row{margin-left:5px}.watt-dropdown-panel ngx-mat-select-search .mat-mdc-checkbox.mat-select-search-toggle-all-checkbox{margin:0}.watt-dropdown-panel .mdc-list-item .mat-select-search-input,.watt-dropdown-panel .mat-mdc-option.mdc-list-item,.watt-dropdown-panel .mat-select-search-no-entries-found{font-size:.875rem;line-height:1.25rem;font-weight:400;text-transform:none;letter-spacing:0;color:var(--watt-input-color)}.watt-dropdown-panel .mat-mdc-optgroup-label{font-size:.875rem;line-height:1.25rem;font-weight:600;text-transform:none;letter-spacing:0;color:var(--watt-input-color)}.watt-dropdown-panel .mat-mdc-option.mdc-list-item .mat-select-search-no-entries-found{padding:var(--watt-space-s)}.watt-dropdown-panel .mat-checkbox-frame,.watt-dropdown-panel .mat-mdc-checkbox{border-color:var(--watt-color-primary)}.watt-dropdown-panel :not(.mat-mdc-option-multiple) .mat-pseudo-checkbox{display:none}.watt-dropdown-panel .mat-mdc-option-multiple .mat-pseudo-checkbox{display:inline-block}.watt-dropdown-panel .mat-pseudo-checkbox,.watt-dropdown-panel .mat-mdc-checkbox{color:var(--watt-color-primary)}.watt-dropdown-panel .mat-mdc-option{color:var(--watt-color-neutral-black);min-height:42px}.watt-dropdown-panel .mat-mdc-option[aria-disabled=true].contains-mat-select-search{margin-top:0;top:auto}.watt-dropdown-panel .mat-mdc-option.mdc-list-item.mat-mdc-option-active,.watt-dropdown-panel .mat-mdc-option.mdc-list-item.mdc-list-item--selected.mat-mdc-option-active:not(.mat-mdc-option-multiple),.watt-dropdown-panel .mat-mdc-option:hover:not(.mat-mdc-option-disabled,.contains-mat-select-search),.watt-dropdown-panel .mat-mdc-option:focus:not(.mat-mdc-option-disabled){background-color:var(--watt-color-primary-light)}.watt-dropdown-panel .mat-mdc-option .mat-mdc-select-search-no-entries-found{text-align:center;padding:0}.watt-dropdown-panel .mat-mdc-option.mat-mdc-option-disabled{color:var(--watt-color-neutral-grey-400);cursor:not-allowed}.watt-dropdown-panel .mat-mdc-select-search-input:not(.mat-mdc-select-search-hidden){color:var(--watt-color-neutral-black)}.watt-dropdown-panel .mat-mdc-select-search-clear{background-color:var(--watt-color-neutral-white);color:var(--watt-color-neutral-grey-400)}.watt-dropdown-panel .mat-mdc-select-search-clear mat-icon{line-height:20px!important}\n"], dependencies: [{ kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "ngmodule", type: MatSelectModule }, { kind: "component", type: i1.MatSelect, selector: "mat-select", inputs: ["aria-describedby", "panelClass", "disabled", "disableRipple", "tabIndex", "hideSingleSelectionIndicator", "placeholder", "required", "multiple", "disableOptionCentering", "compareWith", "value", "aria-label", "aria-labelledby", "errorStateMatcher", "typeaheadDebounceInterval", "sortComparator", "id", "panelWidth", "canSelectNullableOptions"], outputs: ["openedChange", "opened", "closed", "selectionChange", "valueChange"], exportAs: ["matSelect"] }, { kind: "component", type: i1.MatOption, selector: "mat-option", inputs: ["value", "id", "disabled"], outputs: ["onSelectionChange"], exportAs: ["matOption"] }, { kind: "component", type: i1.MatOptgroup, selector: "mat-optgroup", inputs: ["label", "disabled"], exportAs: ["matOptgroup"] }, { kind: "ngmodule", type: MatOptionModule }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "ngmodule", type: NgxMatSelectSearchModule }, { kind: "component", type: i3.MatSelectSearchComponent, selector: "ngx-mat-select-search", inputs: ["placeholderLabel", "type", "closeIcon", "closeSvgIcon", "noEntriesFoundLabel", "clearSearchInput", "searching", "disableInitialFocus", "enableClearOnEscapePressed", "preventHomeEndKeyPropagation", "disableScrollToActiveOnOptionsChanged", "ariaLabel", "showToggleAllCheckbox", "toggleAllCheckboxChecked", "toggleAllCheckboxIndeterminate", "toggleAllCheckboxTooltipMessage", "toggleAllCheckboxTooltipPosition", "hideClearSearchButton", "alwaysRestoreSelectedOptionsMulti", "recreateValuesArray"], outputs: ["toggleAll"] }, { kind: "directive", type: i3.MatSelectSearchClearDirective, selector: "[ngxMatSelectSearchClear]" }, { kind: "component", type: WattIconComponent, selector: "watt-icon", inputs: ["name", "label", "size", "state"] }, { kind: "component", type: WattFieldComponent, selector: "watt-field", inputs: ["control", "label", "id", "chipMode", "tooltip", "placeholder", "anchorName", "displayMode", "autoFocus", "showErrors"] }, { kind: "component", type: WattMenuChipComponent, selector: "watt-menu-chip", inputs: ["opened", "disabled", "name", "value", "selected", "hasPopup"], outputs: ["toggleChange"] }, { kind: "pipe", type: RxPush, name: "push" }], encapsulation: i0.ViewEncapsulation.None });
327
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.15", type: WattDropdownComponent, isStandalone: true, selector: "watt-dropdown", inputs: { hideSearch: { classPropertyName: "hideSearch", publicName: "hideSearch", isSignal: true, isRequired: false, transformFunction: null }, panelWidth: { classPropertyName: "panelWidth", publicName: "panelWidth", isSignal: true, isRequired: false, transformFunction: null }, getCustomTrigger: { classPropertyName: "getCustomTrigger", publicName: "getCustomTrigger", isSignal: true, isRequired: false, transformFunction: null }, chipMode: { classPropertyName: "chipMode", publicName: "chipMode", isSignal: true, isRequired: false, transformFunction: null }, disableSelectedMode: { classPropertyName: "disableSelectedMode", publicName: "disableSelectedMode", isSignal: true, isRequired: false, transformFunction: null }, sortDirection: { classPropertyName: "sortDirection", publicName: "sortDirection", isSignal: true, isRequired: false, transformFunction: null }, options: { classPropertyName: "options", publicName: "options", isSignal: true, isRequired: false, transformFunction: null }, multiple: { classPropertyName: "multiple", publicName: "multiple", isSignal: true, isRequired: false, transformFunction: null }, showResetOption: { classPropertyName: "showResetOption", publicName: "showResetOption", isSignal: true, isRequired: false, transformFunction: null }, placeholder: { classPropertyName: "placeholder", publicName: "placeholder", isSignal: true, isRequired: false, transformFunction: null }, label: { classPropertyName: "label", publicName: "label", isSignal: true, isRequired: false, transformFunction: null }, noOptionsFoundLabel: { classPropertyName: "noOptionsFoundLabel", publicName: "noOptionsFoundLabel", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { options: "optionsChange" }, host: { properties: { "attr.watt-field-disabled": "isDisabled()", "class.watt-chip-mode": "chipMode()" } }, viewQueries: [{ propertyName: "matSelect", first: true, predicate: ["matSelect"], 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<watt-field\n [control]=\"parentControl\"\n [chipMode]=\"chipMode()\"\n [label]=\"label()\"\n (click)=\"matSelect.open()\"\n>\n @if (chipMode()) {\n <watt-menu-chip\n [opened]=\"matSelect.panelOpen\"\n (toggleChange)=\"matSelect.open()\"\n [selected]=\"!!matSelect?.triggerValue && !disableSelectedMode()\"\n [disabled]=\"matSelectControl.disabled\"\n >\n {{ placeholder() }}\n @if (showTriggerValue) {\n <span>\n @if (placeholder()) {\n :\n }\n {{ getCustomTrigger()?.(matSelect.value) ?? matSelect?.triggerValue }}\n </span>\n }\n @if (showChipLabel) {\n <span class=\"watt-chip-label\">{{ matSelectControl.value?.length }}</span>\n }\n </watt-menu-chip>\n }\n\n <mat-select\n [attr.aria-label]=\"label()\"\n [formControl]=\"matSelectControl\"\n [placeholder]=\"placeholder()\"\n #matSelect\n [panelWidth]=\"panelWidth()\"\n [multiple]=\"multiple()\"\n [class]=\"{ chip: chipMode(), 'mat-mdc-select-multiple': multiple() }\"\n [panelClass]=\"{\n 'watt-dropdown-panel': true,\n 'watt-dropdown-panel-chip-mode': chipMode(),\n 'mat-mdc-select-panel-multiple': multiple(),\n }\"\n >\n <!-- We use this instead of ngIf, since it will trigger a NG0100: ExpressionChangedAfterItHasBeenCheckedError: Expression has changed after it was checked. -->\n <mat-option [style.display]=\"!hideSearch() ? 'block' : 'none'\">\n <ngx-mat-select-search\n [formControl]=\"filterControl\"\n [placeholderLabel]=\"placeholder()\"\n closeIcon=\"close\"\n [showToggleAllCheckbox]=\"multiple()\"\n (toggleAll)=\"onToggleAll($event)\"\n [toggleAllCheckboxChecked]=\"isToggleAllChecked\"\n [toggleAllCheckboxIndeterminate]=\"isToggleAllIndeterminate\"\n [noEntriesFoundLabel]=\"noOptionsFoundLabel()\"\n >\n <watt-icon ngxMatSelectSearchClear name=\"close\" size=\"s\" />\n </ngx-mat-select-search>\n </mat-option>\n\n @if (!multiple() && showResetOption()) {\n <mat-option>{{ emDash }}</mat-option>\n }\n\n @if (hasGroups()) {\n @for (item of filteredGroupedOptions$ | push; track item) {\n @if (\"options\" in item) {\n <mat-optgroup [label]=\"item.label\" [disabled]=\"item.disabled\">\n @for (option of item.options; track option) {\n <mat-option\n [value]=\"option.value\"\n [disabled]=\"option.disabled\"\n [class.mat-mdc-option-multiple]=\"multiple()\"\n >\n {{ option.displayValue }}\n </mat-option>\n }\n </mat-optgroup>\n }\n }\n } @else {\n @for (option of filteredOptions$ | push; track option) {\n <mat-option\n [value]=\"option.value\"\n [disabled]=\"option.disabled\"\n [class.mat-mdc-option-multiple]=\"multiple()\"\n >\n {{ option.displayValue }}\n </mat-option>\n }\n }\n </mat-select>\n <ng-content />\n <ng-content ngProjectAs=\"watt-field-hint\" select=\"watt-field-hint\" />\n <ng-content ngProjectAs=\"watt-field-error\" select=\"watt-field-error\" />\n</watt-field>\n", styles: ["watt-dropdown:not(.watt-chip-mode){width:100%}watt-dropdown{--watt-input-color: var(--watt-typography-text-color);--watt-input-placeholder-color: var(--watt-on-light-high-emphasis);display:block;width:auto}watt-dropdown watt-field label .watt-field-wrapper{padding:0;position:relative}watt-dropdown.watt-chip-mode.ng-dirty.ng-invalid .watt-field-wrapper watt-chip label{border:1px solid var(--watt-color-state-danger)}watt-dropdown.watt-chip-mode[disabled=true] watt-field label .watt-field-wrapper{background-color:transparent}watt-dropdown .mat-input-element{font-size:.875rem;line-height:1.25rem;font-weight:400;text-transform:none;letter-spacing:0;color:var(--watt-input-color);caret-color:var(--watt-color-neutral-grey-900)!important;padding:0 12px}watt-dropdown .mat-mdc-select-arrow{color:var(--watt-dropdown-arrow-color, rgba(0, 0, 0, .54));border:none;width:auto;height:auto}watt-dropdown .mat-mdc-select-arrow:before{width:.6em;height:.6em;bottom:.2em;position:relative;display:inline-block;border-style:solid;border-width:0 0 .15em .15em;transform:rotate(315deg);border-color:var(--watt-color-primary);content:\"\"}watt-dropdown .mat-mdc-select-arrow svg{display:none}watt-dropdown .mat-mdc-select-trigger{font-size:.875rem;line-height:1.25rem;font-weight:400;text-transform:none;letter-spacing:0;padding:0 var(--watt-space-m)}watt-dropdown .mat-mdc-select-value{color:var(--watt-color-neutral-black);padding-right:var(--watt-space-m)}watt-dropdown .mat-mdc-select.mat-mdc-select-invalid.ng-pristine .mat-mdc-select-arrow{color:currentColor}watt-dropdown .watt-chip-label{float:right;margin-left:var(--watt-space-s);background:var(--watt-color-neutral-white)}watt-dropdown .watt-field--chip .mat-mdc-select{visibility:hidden;position:absolute;width:100%}watt-dropdown .mat-mdc-select-placeholder{color:var(--watt-input-placeholder-color)}watt-dropdown watt-field label .watt-field-wrapper{background-color:transparent}.watt-dropdown-panel{--watt-input-color: var(--watt-typography-text-color);padding:0}.watt-dropdown-panel .mat-select-search-inner-row .mat-select-search-input,.watt-dropdown-panel mat-option.contains-mat-select-search{height:48px}.watt-dropdown-panel:not(.watt-dropdown-panel-chip-mode){min-width:calc(100% + 2px)!important;margin-top:-36px;margin-left:-1px;min-height:48px}.watt-dropdown-panel .mat-mdc-checkbox.mat-select-search-toggle-all-checkbox{padding:0;margin:0 var(--watt-space-m)}.watt-dropdown-panel .mat-datepicker-content .mat-mdc-icon-button{--mat-mdc-button-persistent-ripple-color: transparent;--mat-mdc-button-ripple-color: transparent}.watt-dropdown-panel.watt-dropdown-panel-chip-mode{margin-top:4px}.watt-dropdown-panel.mat-mdc-select-search-panel{transform:scaleY(1)!important}.watt-dropdown-panel .mat-mdc-option.mdc-list-item.contains-mat-select-search.mat-mdc-option-multiple{background-color:transparent}.watt-dropdown-panel ngx-mat-select-search .mat-select-search-inner-multiple .mat-select-search-inner-row{margin-left:5px}.watt-dropdown-panel ngx-mat-select-search .mat-mdc-checkbox.mat-select-search-toggle-all-checkbox{margin:0}.watt-dropdown-panel .mdc-list-item .mat-select-search-input,.watt-dropdown-panel .mat-mdc-option.mdc-list-item,.watt-dropdown-panel .mat-select-search-no-entries-found{font-size:.875rem;line-height:1.25rem;font-weight:400;text-transform:none;letter-spacing:0;color:var(--watt-input-color)}.watt-dropdown-panel .mat-mdc-optgroup-label{font-size:.875rem;line-height:1.25rem;font-weight:600;text-transform:none;letter-spacing:0;color:var(--watt-input-color)}.watt-dropdown-panel .mat-mdc-option.mdc-list-item .mat-select-search-no-entries-found{padding:var(--watt-space-s)}.watt-dropdown-panel .mat-checkbox-frame,.watt-dropdown-panel .mat-mdc-checkbox{border-color:var(--watt-color-primary)}.watt-dropdown-panel :not(.mat-mdc-option-multiple) .mat-pseudo-checkbox{display:none}.watt-dropdown-panel .mat-mdc-option-multiple .mat-pseudo-checkbox{display:inline-block}.watt-dropdown-panel .mat-pseudo-checkbox,.watt-dropdown-panel .mat-mdc-checkbox{color:var(--watt-color-primary)}.watt-dropdown-panel .mat-mdc-option{color:var(--watt-color-neutral-black);min-height:42px}.watt-dropdown-panel .mat-mdc-option[aria-disabled=true].contains-mat-select-search{margin-top:0;top:auto}.watt-dropdown-panel .mat-mdc-option.mdc-list-item.mat-mdc-option-active,.watt-dropdown-panel .mat-mdc-option.mdc-list-item.mdc-list-item--selected.mat-mdc-option-active:not(.mat-mdc-option-multiple),.watt-dropdown-panel .mat-mdc-option:hover:not(.mat-mdc-option-disabled,.contains-mat-select-search),.watt-dropdown-panel .mat-mdc-option:focus:not(.mat-mdc-option-disabled){background-color:var(--watt-color-primary-light)}.watt-dropdown-panel .mat-mdc-option .mat-mdc-select-search-no-entries-found{text-align:center;padding:0}.watt-dropdown-panel .mat-mdc-option.mat-mdc-option-disabled{color:var(--watt-color-neutral-grey-400);cursor:not-allowed}.watt-dropdown-panel .mat-mdc-select-search-input:not(.mat-mdc-select-search-hidden){color:var(--watt-color-neutral-black)}.watt-dropdown-panel .mat-mdc-select-search-clear{background-color:var(--watt-color-neutral-white);color:var(--watt-color-neutral-grey-400)}.watt-dropdown-panel .mat-mdc-select-search-clear mat-icon{line-height:20px!important}\n"], dependencies: [{ kind: "ngmodule", type: MatSelectModule }, { kind: "component", type: i1.MatSelect, selector: "mat-select", inputs: ["aria-describedby", "panelClass", "disabled", "disableRipple", "tabIndex", "hideSingleSelectionIndicator", "placeholder", "required", "multiple", "disableOptionCentering", "compareWith", "value", "aria-label", "aria-labelledby", "errorStateMatcher", "typeaheadDebounceInterval", "sortComparator", "id", "panelWidth", "canSelectNullableOptions"], outputs: ["openedChange", "opened", "closed", "selectionChange", "valueChange"], exportAs: ["matSelect"] }, { kind: "component", type: i1.MatOption, selector: "mat-option", inputs: ["value", "id", "disabled"], outputs: ["onSelectionChange"], exportAs: ["matOption"] }, { kind: "component", type: i1.MatOptgroup, selector: "mat-optgroup", inputs: ["label", "disabled"], exportAs: ["matOptgroup"] }, { kind: "ngmodule", type: MatOptionModule }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "ngmodule", type: NgxMatSelectSearchModule }, { kind: "component", type: i3.MatSelectSearchComponent, selector: "ngx-mat-select-search", inputs: ["placeholderLabel", "type", "closeIcon", "closeSvgIcon", "noEntriesFoundLabel", "clearSearchInput", "searching", "disableInitialFocus", "enableClearOnEscapePressed", "preventHomeEndKeyPropagation", "disableScrollToActiveOnOptionsChanged", "ariaLabel", "showToggleAllCheckbox", "toggleAllCheckboxChecked", "toggleAllCheckboxIndeterminate", "toggleAllCheckboxTooltipMessage", "toggleAllCheckboxTooltipPosition", "hideClearSearchButton", "alwaysRestoreSelectedOptionsMulti", "recreateValuesArray"], outputs: ["toggleAll"] }, { kind: "directive", type: i3.MatSelectSearchClearDirective, selector: "[ngxMatSelectSearchClear]" }, { kind: "component", type: WattIconComponent, selector: "watt-icon", inputs: ["name", "label", "size", "state"] }, { kind: "component", type: WattFieldComponent, selector: "watt-field", inputs: ["control", "label", "id", "chipMode", "tooltip", "placeholder", "anchorName", "displayMode", "autoFocus", "showErrors"] }, { kind: "component", type: WattMenuChipComponent, selector: "watt-menu-chip", inputs: ["opened", "disabled", "name", "value", "selected", "hasPopup"], outputs: ["toggleChange"] }, { kind: "pipe", type: RxPush, name: "push" }], encapsulation: i0.ViewEncapsulation.None });
329
328
  }
330
329
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: WattDropdownComponent, decorators: [{
331
330
  type: Component,
332
331
  args: [{ selector: 'watt-dropdown', encapsulation: ViewEncapsulation.None, imports: [
333
332
  RxPush,
334
- NgClass,
335
333
  MatSelectModule,
336
334
  MatOptionModule,
337
335
  ReactiveFormsModule,
@@ -342,7 +340,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImpo
342
340
  ], host: {
343
341
  '[attr.watt-field-disabled]': 'isDisabled()',
344
342
  '[class.watt-chip-mode]': 'chipMode()',
345
- }, 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<watt-field\n [control]=\"parentControl\"\n [chipMode]=\"chipMode()\"\n [label]=\"label()\"\n (click)=\"matSelect.open()\"\n>\n @if (chipMode()) {\n <watt-menu-chip\n [opened]=\"matSelect.panelOpen\"\n (toggleChange)=\"matSelect.open()\"\n [selected]=\"!!matSelect?.triggerValue && !disableSelectedMode()\"\n [disabled]=\"matSelectControl.disabled\"\n >\n {{ placeholder() }}\n @if (showTriggerValue) {\n <span>\n @if (placeholder()) {\n :\n }\n {{ getCustomTrigger()?.(matSelect.value) ?? matSelect?.triggerValue }}\n </span>\n }\n @if (showChipLabel) {\n <span class=\"watt-chip-label\">{{ matSelectControl.value?.length }}</span>\n }\n </watt-menu-chip>\n }\n\n <mat-select\n [attr.aria-label]=\"label()\"\n [formControl]=\"matSelectControl\"\n [placeholder]=\"placeholder()\"\n #matSelect\n [panelWidth]=\"panelWidth()\"\n [multiple]=\"multiple()\"\n [ngClass]=\"{ chip: chipMode(), 'mat-mdc-select-multiple': multiple() }\"\n [panelClass]=\"{\n 'watt-dropdown-panel': true,\n 'watt-dropdown-panel-chip-mode': chipMode(),\n 'mat-mdc-select-panel-multiple': multiple(),\n }\"\n >\n <!-- We use this instead of ngIf, since it will trigger a NG0100: ExpressionChangedAfterItHasBeenCheckedError: Expression has changed after it was checked. -->\n <mat-option [style.display]=\"!hideSearch() ? 'block' : 'none'\">\n <ngx-mat-select-search\n [formControl]=\"filterControl\"\n [placeholderLabel]=\"placeholder()\"\n closeIcon=\"close\"\n [showToggleAllCheckbox]=\"multiple()\"\n (toggleAll)=\"onToggleAll($event)\"\n [toggleAllCheckboxChecked]=\"isToggleAllChecked\"\n [toggleAllCheckboxIndeterminate]=\"isToggleAllIndeterminate\"\n [noEntriesFoundLabel]=\"noOptionsFoundLabel()\"\n >\n <watt-icon ngxMatSelectSearchClear name=\"close\" size=\"s\" />\n </ngx-mat-select-search>\n </mat-option>\n\n @if (!multiple() && showResetOption()) {\n <mat-option>{{ emDash }}</mat-option>\n }\n\n @if (hasGroups()) {\n @for (item of filteredGroupedOptions$ | push; track item) {\n @if (\"options\" in item) {\n <mat-optgroup [label]=\"item.label\" [disabled]=\"item.disabled\">\n @for (option of item.options; track option) {\n <mat-option\n [value]=\"option.value\"\n [disabled]=\"option.disabled\"\n [class.mat-mdc-option-multiple]=\"multiple()\"\n >\n {{ option.displayValue }}\n </mat-option>\n }\n </mat-optgroup>\n }\n }\n } @else {\n @for (option of filteredOptions$ | push; track option) {\n <mat-option\n [value]=\"option.value\"\n [disabled]=\"option.disabled\"\n [class.mat-mdc-option-multiple]=\"multiple()\"\n >\n {{ option.displayValue }}\n </mat-option>\n }\n }\n </mat-select>\n <ng-content />\n <ng-content ngProjectAs=\"watt-field-hint\" select=\"watt-field-hint\" />\n <ng-content ngProjectAs=\"watt-field-error\" select=\"watt-field-error\" />\n</watt-field>\n", styles: ["watt-dropdown:not(.watt-chip-mode){width:100%}watt-dropdown{--watt-input-color: var(--watt-typography-text-color);--watt-input-placeholder-color: var(--watt-on-light-high-emphasis);display:block;width:auto}watt-dropdown watt-field label .watt-field-wrapper{padding:0;position:relative}watt-dropdown.watt-chip-mode.ng-dirty.ng-invalid .watt-field-wrapper watt-chip label{border:1px solid var(--watt-color-state-danger)}watt-dropdown.watt-chip-mode[disabled=true] watt-field label .watt-field-wrapper{background-color:transparent}watt-dropdown .mat-input-element{font-size:.875rem;line-height:1.25rem;font-weight:400;text-transform:none;letter-spacing:0;color:var(--watt-input-color);caret-color:var(--watt-color-neutral-grey-900)!important;padding:0 12px}watt-dropdown .mat-mdc-select-arrow{color:var(--watt-dropdown-arrow-color, rgba(0, 0, 0, .54));border:none;width:auto;height:auto}watt-dropdown .mat-mdc-select-arrow:before{width:.6em;height:.6em;bottom:.2em;position:relative;display:inline-block;border-style:solid;border-width:0 0 .15em .15em;transform:rotate(315deg);border-color:var(--watt-color-primary);content:\"\"}watt-dropdown .mat-mdc-select-arrow svg{display:none}watt-dropdown .mat-mdc-select-trigger{font-size:.875rem;line-height:1.25rem;font-weight:400;text-transform:none;letter-spacing:0;padding:0 var(--watt-space-m)}watt-dropdown .mat-mdc-select-value{color:var(--watt-color-neutral-black);padding-right:var(--watt-space-m)}watt-dropdown .mat-mdc-select.mat-mdc-select-invalid.ng-pristine .mat-mdc-select-arrow{color:currentColor}watt-dropdown .watt-chip-label{float:right;margin-left:var(--watt-space-s);background:var(--watt-color-neutral-white)}watt-dropdown .watt-field--chip .mat-mdc-select{visibility:hidden;position:absolute;width:100%}watt-dropdown .mat-mdc-select-placeholder{color:var(--watt-input-placeholder-color)}watt-dropdown watt-field label .watt-field-wrapper{background-color:transparent}.watt-dropdown-panel{--watt-input-color: var(--watt-typography-text-color);padding:0}.watt-dropdown-panel .mat-select-search-inner-row .mat-select-search-input,.watt-dropdown-panel mat-option.contains-mat-select-search{height:48px}.watt-dropdown-panel:not(.watt-dropdown-panel-chip-mode){min-width:calc(100% + 2px)!important;margin-top:-36px;margin-left:-1px;min-height:48px}.watt-dropdown-panel .mat-mdc-checkbox.mat-select-search-toggle-all-checkbox{padding:0;margin:0 var(--watt-space-m)}.watt-dropdown-panel .mat-datepicker-content .mat-mdc-icon-button{--mat-mdc-button-persistent-ripple-color: transparent;--mat-mdc-button-ripple-color: transparent}.watt-dropdown-panel.watt-dropdown-panel-chip-mode{margin-top:4px}.watt-dropdown-panel.mat-mdc-select-search-panel{transform:scaleY(1)!important}.watt-dropdown-panel .mat-mdc-option.mdc-list-item.contains-mat-select-search.mat-mdc-option-multiple{background-color:transparent}.watt-dropdown-panel ngx-mat-select-search .mat-select-search-inner-multiple .mat-select-search-inner-row{margin-left:5px}.watt-dropdown-panel ngx-mat-select-search .mat-mdc-checkbox.mat-select-search-toggle-all-checkbox{margin:0}.watt-dropdown-panel .mdc-list-item .mat-select-search-input,.watt-dropdown-panel .mat-mdc-option.mdc-list-item,.watt-dropdown-panel .mat-select-search-no-entries-found{font-size:.875rem;line-height:1.25rem;font-weight:400;text-transform:none;letter-spacing:0;color:var(--watt-input-color)}.watt-dropdown-panel .mat-mdc-optgroup-label{font-size:.875rem;line-height:1.25rem;font-weight:600;text-transform:none;letter-spacing:0;color:var(--watt-input-color)}.watt-dropdown-panel .mat-mdc-option.mdc-list-item .mat-select-search-no-entries-found{padding:var(--watt-space-s)}.watt-dropdown-panel .mat-checkbox-frame,.watt-dropdown-panel .mat-mdc-checkbox{border-color:var(--watt-color-primary)}.watt-dropdown-panel :not(.mat-mdc-option-multiple) .mat-pseudo-checkbox{display:none}.watt-dropdown-panel .mat-mdc-option-multiple .mat-pseudo-checkbox{display:inline-block}.watt-dropdown-panel .mat-pseudo-checkbox,.watt-dropdown-panel .mat-mdc-checkbox{color:var(--watt-color-primary)}.watt-dropdown-panel .mat-mdc-option{color:var(--watt-color-neutral-black);min-height:42px}.watt-dropdown-panel .mat-mdc-option[aria-disabled=true].contains-mat-select-search{margin-top:0;top:auto}.watt-dropdown-panel .mat-mdc-option.mdc-list-item.mat-mdc-option-active,.watt-dropdown-panel .mat-mdc-option.mdc-list-item.mdc-list-item--selected.mat-mdc-option-active:not(.mat-mdc-option-multiple),.watt-dropdown-panel .mat-mdc-option:hover:not(.mat-mdc-option-disabled,.contains-mat-select-search),.watt-dropdown-panel .mat-mdc-option:focus:not(.mat-mdc-option-disabled){background-color:var(--watt-color-primary-light)}.watt-dropdown-panel .mat-mdc-option .mat-mdc-select-search-no-entries-found{text-align:center;padding:0}.watt-dropdown-panel .mat-mdc-option.mat-mdc-option-disabled{color:var(--watt-color-neutral-grey-400);cursor:not-allowed}.watt-dropdown-panel .mat-mdc-select-search-input:not(.mat-mdc-select-search-hidden){color:var(--watt-color-neutral-black)}.watt-dropdown-panel .mat-mdc-select-search-clear{background-color:var(--watt-color-neutral-white);color:var(--watt-color-neutral-grey-400)}.watt-dropdown-panel .mat-mdc-select-search-clear mat-icon{line-height:20px!important}\n"] }]
343
+ }, 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<watt-field\n [control]=\"parentControl\"\n [chipMode]=\"chipMode()\"\n [label]=\"label()\"\n (click)=\"matSelect.open()\"\n>\n @if (chipMode()) {\n <watt-menu-chip\n [opened]=\"matSelect.panelOpen\"\n (toggleChange)=\"matSelect.open()\"\n [selected]=\"!!matSelect?.triggerValue && !disableSelectedMode()\"\n [disabled]=\"matSelectControl.disabled\"\n >\n {{ placeholder() }}\n @if (showTriggerValue) {\n <span>\n @if (placeholder()) {\n :\n }\n {{ getCustomTrigger()?.(matSelect.value) ?? matSelect?.triggerValue }}\n </span>\n }\n @if (showChipLabel) {\n <span class=\"watt-chip-label\">{{ matSelectControl.value?.length }}</span>\n }\n </watt-menu-chip>\n }\n\n <mat-select\n [attr.aria-label]=\"label()\"\n [formControl]=\"matSelectControl\"\n [placeholder]=\"placeholder()\"\n #matSelect\n [panelWidth]=\"panelWidth()\"\n [multiple]=\"multiple()\"\n [class]=\"{ chip: chipMode(), 'mat-mdc-select-multiple': multiple() }\"\n [panelClass]=\"{\n 'watt-dropdown-panel': true,\n 'watt-dropdown-panel-chip-mode': chipMode(),\n 'mat-mdc-select-panel-multiple': multiple(),\n }\"\n >\n <!-- We use this instead of ngIf, since it will trigger a NG0100: ExpressionChangedAfterItHasBeenCheckedError: Expression has changed after it was checked. -->\n <mat-option [style.display]=\"!hideSearch() ? 'block' : 'none'\">\n <ngx-mat-select-search\n [formControl]=\"filterControl\"\n [placeholderLabel]=\"placeholder()\"\n closeIcon=\"close\"\n [showToggleAllCheckbox]=\"multiple()\"\n (toggleAll)=\"onToggleAll($event)\"\n [toggleAllCheckboxChecked]=\"isToggleAllChecked\"\n [toggleAllCheckboxIndeterminate]=\"isToggleAllIndeterminate\"\n [noEntriesFoundLabel]=\"noOptionsFoundLabel()\"\n >\n <watt-icon ngxMatSelectSearchClear name=\"close\" size=\"s\" />\n </ngx-mat-select-search>\n </mat-option>\n\n @if (!multiple() && showResetOption()) {\n <mat-option>{{ emDash }}</mat-option>\n }\n\n @if (hasGroups()) {\n @for (item of filteredGroupedOptions$ | push; track item) {\n @if (\"options\" in item) {\n <mat-optgroup [label]=\"item.label\" [disabled]=\"item.disabled\">\n @for (option of item.options; track option) {\n <mat-option\n [value]=\"option.value\"\n [disabled]=\"option.disabled\"\n [class.mat-mdc-option-multiple]=\"multiple()\"\n >\n {{ option.displayValue }}\n </mat-option>\n }\n </mat-optgroup>\n }\n }\n } @else {\n @for (option of filteredOptions$ | push; track option) {\n <mat-option\n [value]=\"option.value\"\n [disabled]=\"option.disabled\"\n [class.mat-mdc-option-multiple]=\"multiple()\"\n >\n {{ option.displayValue }}\n </mat-option>\n }\n }\n </mat-select>\n <ng-content />\n <ng-content ngProjectAs=\"watt-field-hint\" select=\"watt-field-hint\" />\n <ng-content ngProjectAs=\"watt-field-error\" select=\"watt-field-error\" />\n</watt-field>\n", styles: ["watt-dropdown:not(.watt-chip-mode){width:100%}watt-dropdown{--watt-input-color: var(--watt-typography-text-color);--watt-input-placeholder-color: var(--watt-on-light-high-emphasis);display:block;width:auto}watt-dropdown watt-field label .watt-field-wrapper{padding:0;position:relative}watt-dropdown.watt-chip-mode.ng-dirty.ng-invalid .watt-field-wrapper watt-chip label{border:1px solid var(--watt-color-state-danger)}watt-dropdown.watt-chip-mode[disabled=true] watt-field label .watt-field-wrapper{background-color:transparent}watt-dropdown .mat-input-element{font-size:.875rem;line-height:1.25rem;font-weight:400;text-transform:none;letter-spacing:0;color:var(--watt-input-color);caret-color:var(--watt-color-neutral-grey-900)!important;padding:0 12px}watt-dropdown .mat-mdc-select-arrow{color:var(--watt-dropdown-arrow-color, rgba(0, 0, 0, .54));border:none;width:auto;height:auto}watt-dropdown .mat-mdc-select-arrow:before{width:.6em;height:.6em;bottom:.2em;position:relative;display:inline-block;border-style:solid;border-width:0 0 .15em .15em;transform:rotate(315deg);border-color:var(--watt-color-primary);content:\"\"}watt-dropdown .mat-mdc-select-arrow svg{display:none}watt-dropdown .mat-mdc-select-trigger{font-size:.875rem;line-height:1.25rem;font-weight:400;text-transform:none;letter-spacing:0;padding:0 var(--watt-space-m)}watt-dropdown .mat-mdc-select-value{color:var(--watt-color-neutral-black);padding-right:var(--watt-space-m)}watt-dropdown .mat-mdc-select.mat-mdc-select-invalid.ng-pristine .mat-mdc-select-arrow{color:currentColor}watt-dropdown .watt-chip-label{float:right;margin-left:var(--watt-space-s);background:var(--watt-color-neutral-white)}watt-dropdown .watt-field--chip .mat-mdc-select{visibility:hidden;position:absolute;width:100%}watt-dropdown .mat-mdc-select-placeholder{color:var(--watt-input-placeholder-color)}watt-dropdown watt-field label .watt-field-wrapper{background-color:transparent}.watt-dropdown-panel{--watt-input-color: var(--watt-typography-text-color);padding:0}.watt-dropdown-panel .mat-select-search-inner-row .mat-select-search-input,.watt-dropdown-panel mat-option.contains-mat-select-search{height:48px}.watt-dropdown-panel:not(.watt-dropdown-panel-chip-mode){min-width:calc(100% + 2px)!important;margin-top:-36px;margin-left:-1px;min-height:48px}.watt-dropdown-panel .mat-mdc-checkbox.mat-select-search-toggle-all-checkbox{padding:0;margin:0 var(--watt-space-m)}.watt-dropdown-panel .mat-datepicker-content .mat-mdc-icon-button{--mat-mdc-button-persistent-ripple-color: transparent;--mat-mdc-button-ripple-color: transparent}.watt-dropdown-panel.watt-dropdown-panel-chip-mode{margin-top:4px}.watt-dropdown-panel.mat-mdc-select-search-panel{transform:scaleY(1)!important}.watt-dropdown-panel .mat-mdc-option.mdc-list-item.contains-mat-select-search.mat-mdc-option-multiple{background-color:transparent}.watt-dropdown-panel ngx-mat-select-search .mat-select-search-inner-multiple .mat-select-search-inner-row{margin-left:5px}.watt-dropdown-panel ngx-mat-select-search .mat-mdc-checkbox.mat-select-search-toggle-all-checkbox{margin:0}.watt-dropdown-panel .mdc-list-item .mat-select-search-input,.watt-dropdown-panel .mat-mdc-option.mdc-list-item,.watt-dropdown-panel .mat-select-search-no-entries-found{font-size:.875rem;line-height:1.25rem;font-weight:400;text-transform:none;letter-spacing:0;color:var(--watt-input-color)}.watt-dropdown-panel .mat-mdc-optgroup-label{font-size:.875rem;line-height:1.25rem;font-weight:600;text-transform:none;letter-spacing:0;color:var(--watt-input-color)}.watt-dropdown-panel .mat-mdc-option.mdc-list-item .mat-select-search-no-entries-found{padding:var(--watt-space-s)}.watt-dropdown-panel .mat-checkbox-frame,.watt-dropdown-panel .mat-mdc-checkbox{border-color:var(--watt-color-primary)}.watt-dropdown-panel :not(.mat-mdc-option-multiple) .mat-pseudo-checkbox{display:none}.watt-dropdown-panel .mat-mdc-option-multiple .mat-pseudo-checkbox{display:inline-block}.watt-dropdown-panel .mat-pseudo-checkbox,.watt-dropdown-panel .mat-mdc-checkbox{color:var(--watt-color-primary)}.watt-dropdown-panel .mat-mdc-option{color:var(--watt-color-neutral-black);min-height:42px}.watt-dropdown-panel .mat-mdc-option[aria-disabled=true].contains-mat-select-search{margin-top:0;top:auto}.watt-dropdown-panel .mat-mdc-option.mdc-list-item.mat-mdc-option-active,.watt-dropdown-panel .mat-mdc-option.mdc-list-item.mdc-list-item--selected.mat-mdc-option-active:not(.mat-mdc-option-multiple),.watt-dropdown-panel .mat-mdc-option:hover:not(.mat-mdc-option-disabled,.contains-mat-select-search),.watt-dropdown-panel .mat-mdc-option:focus:not(.mat-mdc-option-disabled){background-color:var(--watt-color-primary-light)}.watt-dropdown-panel .mat-mdc-option .mat-mdc-select-search-no-entries-found{text-align:center;padding:0}.watt-dropdown-panel .mat-mdc-option.mat-mdc-option-disabled{color:var(--watt-color-neutral-grey-400);cursor:not-allowed}.watt-dropdown-panel .mat-mdc-select-search-input:not(.mat-mdc-select-search-hidden){color:var(--watt-color-neutral-black)}.watt-dropdown-panel .mat-mdc-select-search-clear{background-color:var(--watt-color-neutral-white);color:var(--watt-color-neutral-grey-400)}.watt-dropdown-panel .mat-mdc-select-search-clear mat-icon{line-height:20px!important}\n"] }]
346
344
  }], ctorParameters: () => [], propDecorators: { matSelect: [{ type: i0.ViewChild, args: ['matSelect', { isSignal: true }] }], hideSearch: [{ type: i0.Input, args: [{ isSignal: true, alias: "hideSearch", required: false }] }], panelWidth: [{ type: i0.Input, args: [{ isSignal: true, alias: "panelWidth", required: false }] }], getCustomTrigger: [{ type: i0.Input, args: [{ isSignal: true, alias: "getCustomTrigger", required: false }] }], chipMode: [{ type: i0.Input, args: [{ isSignal: true, alias: "chipMode", required: false }] }], disableSelectedMode: [{ type: i0.Input, args: [{ isSignal: true, alias: "disableSelectedMode", required: false }] }], sortDirection: [{ type: i0.Input, args: [{ isSignal: true, alias: "sortDirection", required: false }] }], options: [{ type: i0.Input, args: [{ isSignal: true, alias: "options", required: false }] }, { type: i0.Output, args: ["optionsChange"] }], multiple: [{ type: i0.Input, args: [{ isSignal: true, alias: "multiple", required: false }] }], showResetOption: [{ type: i0.Input, args: [{ isSignal: true, alias: "showResetOption", required: false }] }], placeholder: [{ type: i0.Input, args: [{ isSignal: true, alias: "placeholder", required: false }] }], label: [{ type: i0.Input, args: [{ isSignal: true, alias: "label", required: false }] }], noOptionsFoundLabel: [{ type: i0.Input, args: [{ isSignal: true, alias: "noOptionsFoundLabel", required: false }] }] } });
347
345
 
348
346
  //#region License
@@ -1 +1 @@
1
- {"version":3,"file":"energinet-watt-dropdown.mjs","sources":["../../../libs/watt/package/dropdown/watt-dropdown.component.ts","../../../libs/watt/package/dropdown/watt-dropdown.component.html","../../../libs/watt/package/dropdown/index.ts","../../../libs/watt/package/dropdown/energinet-watt-dropdown.ts"],"sourcesContent":["//#region License\n/**\n * @license\n * Copyright 2020 Energinet DataHub A/S\n *\n * Licensed under the Apache License, Version 2.0 (the \"License2\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n//#endregion\nimport {\n input,\n model,\n signal,\n effect,\n OnInit,\n inject,\n Component,\n viewChild,\n DestroyRef,\n ViewEncapsulation,\n computed,\n} from '@angular/core';\n\nimport {\n NgControl,\n ValidatorFn,\n FormControl,\n ValidationErrors,\n AsyncValidatorFn,\n UntypedFormControl,\n ReactiveFormsModule,\n ControlValueAccessor,\n} from '@angular/forms';\n\nimport { NgClass } from '@angular/common';\n\nimport { RxPush } from '@rx-angular/template/push';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\n\nimport { of, ReplaySubject, map, take, mergeWith } from 'rxjs';\nimport { NgxMatSelectSearchModule } from 'ngx-mat-select-search';\nimport { MatSelectModule, MatSelect } from '@angular/material/select';\nimport { MatOptionModule } from '@angular/material/core';\n\nimport { WattIconComponent } from '@energinet/watt/icon';\nimport { WattFieldComponent } from '@energinet/watt/field';\nimport { WattMenuChipComponent } from '@energinet/watt/chip';\n\nimport type { WattDropdownValue } from './watt-dropdown-value';\nimport type {\n WattDropdownOptions,\n WattDropdownOptionGroup,\n WattDropdownGroupedOptions,\n} from './watt-dropdown-option';\n\n@Component({\n selector: 'watt-dropdown',\n templateUrl: './watt-dropdown.component.html',\n styleUrls: ['./watt-dropdown.component.scss'],\n encapsulation: ViewEncapsulation.None,\n imports: [\n RxPush,\n NgClass,\n MatSelectModule,\n MatOptionModule,\n ReactiveFormsModule,\n NgxMatSelectSearchModule,\n\n WattIconComponent,\n WattFieldComponent,\n WattMenuChipComponent,\n ],\n host: {\n '[attr.watt-field-disabled]': 'isDisabled()',\n '[class.watt-chip-mode]': 'chipMode()',\n },\n})\nexport class WattDropdownComponent<T = string> implements ControlValueAccessor, OnInit {\n private parentControlDirective = inject(NgControl, { host: true });\n private destroyRef = inject(DestroyRef);\n private validateParent?: ValidatorFn;\n private validateParentAsync?: AsyncValidatorFn;\n private _options: WattDropdownOptions = [];\n private _groupedOptions: WattDropdownGroupedOptions = [];\n parentControl: FormControl | null = null;\n matSelectControl = new FormControl<string | string[] | undefined | null>(null);\n\n /**\n * Control for the MatSelect filter keyword\n */\n filterControl = new UntypedFormControl();\n\n /**\n * List of options filtered by search keyword\n */\n filteredOptions$ = new ReplaySubject<WattDropdownOptions>(1);\n\n /**\n * List of grouped options filtered by search keyword\n */\n filteredGroupedOptions$ = new ReplaySubject<WattDropdownGroupedOptions>(1);\n\n mergedFilteredOptions$ = this.filteredOptions$.pipe(\n mergeWith(this.filteredGroupedOptions$),\n take(1),\n map((options) => {\n if (this.hasGroups()) {\n return (options as WattDropdownGroupedOptions)\n .flatMap((group) => ('options' in group ? group.options : []))\n .map((option) => option.value);\n }\n\n return (options as WattDropdownOptions).map((option) => option.value);\n })\n );\n\n emDash = '—';\n isToggleAllChecked = false;\n isToggleAllIndeterminate = false;\n isDisabled = signal(false);\n\n get showTriggerValue(): boolean {\n const multiple = this.multiple();\n return (multiple &&\n this.matSelectControl.value?.length === 1 &&\n this.matSelectControl.value[0] !== '') ||\n (!multiple && this.matSelect()?.triggerValue)\n ? true\n : false;\n }\n\n get showChipLabel() {\n return this.multiple() && this.matSelectControl.value && this.matSelectControl.value.length > 1\n ? true\n : false;\n }\n\n matSelect = viewChild<MatSelect>('matSelect');\n hideSearch = input(false);\n panelWidth = input<null | 'auto'>(null);\n getCustomTrigger = input<(value: string | string[]) => string>();\n\n /**\n * Set the mode of the dropdown.\n */\n chipMode = input(false);\n disableSelectedMode = input(false);\n sortDirection = input<'asc' | 'desc'>();\n\n /**\n * Sets the options for the dropdown.\n * Can be a flat array of options or an array containing both options and option groups.\n */\n options = model<WattDropdownOptions<T> | WattDropdownGroupedOptions<T>>([]);\n\n /**\n * Sets support for selecting multiple dropdown options.\n */\n multiple = input(false);\n\n /**\n * Sets support for hiding the reset option in \"single\" select mode.\n */\n showResetOption = input(true);\n\n /**\n * Sets the placeholder for the dropdown.\n */\n placeholder = input('');\n\n /**\n * Sets the label for the dropdown.\n */\n label = input('');\n\n /**\n * Label to be shown when no options are found after filtering.\n *\n * Note: The label is visible in \"multiple\" mode only.\n */\n noOptionsFoundLabel = input('');\n\n hasGroups = computed(() => {\n const options = this.options() ?? [];\n return options.some(\n (option) => 'options' in option && Array.isArray((option as WattDropdownOptionGroup).options)\n );\n });\n\n constructor() {\n effect(() => {\n const options = this.options();\n if (Array.isArray(options)) {\n const optionsCopy = [...options];\n\n if (this.hasGroups()) {\n this.handleGroup(optionsCopy as WattDropdownGroupedOptions);\n } else {\n this.handleFlat(optionsCopy as WattDropdownOptions);\n }\n }\n });\n this.parentControlDirective.valueAccessor = this;\n }\n\n private handleFlat(optionsCopy: WattDropdownOptions) {\n if (this.sortDirection()) {\n optionsCopy = this.sortOptions(optionsCopy);\n }\n\n this._options = optionsCopy;\n this.filteredOptions$.next(this._options);\n }\n\n private handleGroup(optionsCopy: WattDropdownGroupedOptions) {\n this._groupedOptions = this.processGroupedOptions(optionsCopy);\n this.filteredGroupedOptions$.next(this._groupedOptions);\n }\n\n private processGroupedOptions(options: WattDropdownGroupedOptions): WattDropdownGroupedOptions {\n return options.map((group) => {\n if (this.sortDirection()) {\n group.options = this.sortOptions(group.options);\n }\n return group;\n });\n }\n\n ngOnInit() {\n this.listenForFilterFieldValueChanges();\n this.initializePropertiesFromParent();\n this.bindParentValidatorsToControl();\n this.bindControlToParent();\n }\n\n writeValue(value: WattDropdownValue) {\n this.matSelectControl.setValue(value);\n }\n\n registerOnChange(onChangeFn: (value: WattDropdownValue) => void) {\n this.changeParentValue = onChangeFn;\n }\n\n registerOnTouched(onTouchFn: () => void) {\n this.markParentControlAsTouched = onTouchFn;\n }\n\n setDisabledState(shouldDisable: boolean) {\n this.isDisabled.set(shouldDisable);\n if (shouldDisable) {\n this.matSelectControl.disable();\n } else {\n this.matSelectControl.enable();\n }\n }\n\n onToggleAll(toggleAllState: boolean) {\n this.mergedFilteredOptions$.subscribe((filteredOptions: string[]) => {\n const optionsToSelect = toggleAllState ? filteredOptions : [];\n this.matSelectControl.patchValue(optionsToSelect);\n });\n }\n\n public sortOptions(options: WattDropdownOptions): WattDropdownOptions {\n return [...options].sort((a, b) => {\n return this.sortDirection() === 'asc'\n ? a.displayValue.localeCompare(b.displayValue)\n : b.displayValue.localeCompare(a.displayValue);\n });\n }\n\n private listenForFilterFieldValueChanges() {\n this.filterControl.valueChanges.pipe(takeUntilDestroyed(this.destroyRef)).subscribe(() => {\n this.filterOptions();\n\n if (this.multiple()) {\n this.determineToggleAllCheckboxState();\n }\n });\n }\n\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n private changeParentValue = (value: WattDropdownValue) => {\n // Intentionally left empty\n };\n\n private markParentControlAsTouched = () => {\n // Intentionally left empty\n };\n\n /**\n * @ignore\n *\n * Store the parent control, its validators and async validators in properties\n * of this component.\n */\n private initializePropertiesFromParent() {\n this.parentControl = this.parentControlDirective.control as UntypedFormControl;\n\n this.validateParent =\n (this.parentControl.validator && this.parentControl.validator.bind(this.parentControl)) ||\n (() => null);\n\n this.validateParentAsync =\n (this.parentControl.asyncValidator &&\n this.parentControl.asyncValidator.bind(this.parentControl)) ||\n (() => of(null));\n }\n\n /**\n * @ignore\n *\n * Inherit validators from parent form control.\n */\n private bindParentValidatorsToControl() {\n const validators = !this.matSelectControl.validator\n ? [this.validateParent]\n : Array.isArray(this.matSelectControl.validator)\n ? [...this.matSelectControl.validator, this.validateParent]\n : [this.matSelectControl.validator, this.validateParent];\n this.matSelectControl.setValidators(validators);\n\n const asyncValidators = !this.matSelectControl.asyncValidator\n ? [this.validateParentAsync]\n : Array.isArray(this.matSelectControl.asyncValidator)\n ? [...this.matSelectControl.asyncValidator, this.validateParentAsync]\n : [this.matSelectControl.asyncValidator, this.validateParentAsync];\n this.matSelectControl.setAsyncValidators(asyncValidators);\n\n this.matSelectControl.updateValueAndValidity();\n }\n\n /**\n * @ignore\n *\n * Emit values to the parent form control when our form control's value\n * changes.\n *\n * Reflect parent validation errors in our form control.\n */\n private bindControlToParent() {\n this.handleValueChange();\n this.handleStatusChange();\n }\n\n private handleStatusChange() {\n this.parentControl?.statusChanges\n .pipe(\n map(\n () =>\n ({\n ...this.parentControl?.errors,\n }) as ValidationErrors\n ),\n map((errors) => (Object.keys(errors).length > 0 ? errors : null)),\n takeUntilDestroyed(this.destroyRef)\n )\n .subscribe((errors) => {\n this.matSelectControl.setErrors(errors);\n });\n }\n\n private handleValueChange() {\n this.matSelectControl.valueChanges\n .pipe(\n map((value) => (value === undefined ? null : value)),\n map((value: WattDropdownValue) => {\n if (Array.isArray(value) && value.length === 0) {\n return null;\n }\n\n return value;\n }),\n takeUntilDestroyed(this.destroyRef)\n )\n .subscribe((value: WattDropdownValue) => {\n if (this.multiple()) {\n this.determineToggleAllCheckboxState();\n }\n\n this.markParentControlAsTouched();\n this.changeParentValue(value);\n });\n }\n\n private filterOptions() {\n if (!this._options) {\n return;\n }\n\n const search = (this.filterControl.value as string).trim().toLowerCase();\n\n if (!search) {\n this.filteredOptions$.next(this._options.slice());\n\n if (this.hasGroups()) {\n this.filteredGroupedOptions$.next(this._groupedOptions.slice());\n }\n return;\n }\n\n const filteredFlatOptions = this._options.filter(\n (option) => option.displayValue.toLowerCase().indexOf(search) > -1\n );\n\n this.filteredOptions$.next(filteredFlatOptions);\n\n if (this.hasGroups()) {\n this.filterGroups(search);\n }\n }\n\n private filterGroups(search: string) {\n const filteredGroups = this._groupedOptions\n .map((item) => {\n if (!('options' in item)) {\n return null;\n }\n const filteredGroupOptions = item.options.filter(\n (option) => option.displayValue.toLowerCase().indexOf(search) > -1\n );\n\n return filteredGroupOptions.length > 0 ? { ...item, options: filteredGroupOptions } : null;\n })\n .filter(Boolean) as WattDropdownGroupedOptions;\n\n this.filteredGroupedOptions$.next(filteredGroups);\n }\n\n private determineToggleAllCheckboxState() {\n this.mergedFilteredOptions$.subscribe((filteredOptions: string[]) => {\n const selectedOptions = this.matSelectControl.value;\n\n if (Array.isArray(selectedOptions)) {\n const selectedFilteredOptions = filteredOptions.filter((option) =>\n selectedOptions.includes(option)\n );\n\n this.isToggleAllIndeterminate =\n selectedFilteredOptions.length > 0 &&\n selectedFilteredOptions.length < filteredOptions.length;\n\n this.isToggleAllChecked =\n selectedFilteredOptions.length > 0 &&\n selectedFilteredOptions.length === filteredOptions.length;\n }\n });\n }\n}\n","<!--\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<watt-field\n [control]=\"parentControl\"\n [chipMode]=\"chipMode()\"\n [label]=\"label()\"\n (click)=\"matSelect.open()\"\n>\n @if (chipMode()) {\n <watt-menu-chip\n [opened]=\"matSelect.panelOpen\"\n (toggleChange)=\"matSelect.open()\"\n [selected]=\"!!matSelect?.triggerValue && !disableSelectedMode()\"\n [disabled]=\"matSelectControl.disabled\"\n >\n {{ placeholder() }}\n @if (showTriggerValue) {\n <span>\n @if (placeholder()) {\n :\n }\n {{ getCustomTrigger()?.(matSelect.value) ?? matSelect?.triggerValue }}\n </span>\n }\n @if (showChipLabel) {\n <span class=\"watt-chip-label\">{{ matSelectControl.value?.length }}</span>\n }\n </watt-menu-chip>\n }\n\n <mat-select\n [attr.aria-label]=\"label()\"\n [formControl]=\"matSelectControl\"\n [placeholder]=\"placeholder()\"\n #matSelect\n [panelWidth]=\"panelWidth()\"\n [multiple]=\"multiple()\"\n [ngClass]=\"{ chip: chipMode(), 'mat-mdc-select-multiple': multiple() }\"\n [panelClass]=\"{\n 'watt-dropdown-panel': true,\n 'watt-dropdown-panel-chip-mode': chipMode(),\n 'mat-mdc-select-panel-multiple': multiple(),\n }\"\n >\n <!-- We use this instead of ngIf, since it will trigger a NG0100: ExpressionChangedAfterItHasBeenCheckedError: Expression has changed after it was checked. -->\n <mat-option [style.display]=\"!hideSearch() ? 'block' : 'none'\">\n <ngx-mat-select-search\n [formControl]=\"filterControl\"\n [placeholderLabel]=\"placeholder()\"\n closeIcon=\"close\"\n [showToggleAllCheckbox]=\"multiple()\"\n (toggleAll)=\"onToggleAll($event)\"\n [toggleAllCheckboxChecked]=\"isToggleAllChecked\"\n [toggleAllCheckboxIndeterminate]=\"isToggleAllIndeterminate\"\n [noEntriesFoundLabel]=\"noOptionsFoundLabel()\"\n >\n <watt-icon ngxMatSelectSearchClear name=\"close\" size=\"s\" />\n </ngx-mat-select-search>\n </mat-option>\n\n @if (!multiple() && showResetOption()) {\n <mat-option>{{ emDash }}</mat-option>\n }\n\n @if (hasGroups()) {\n @for (item of filteredGroupedOptions$ | push; track item) {\n @if (\"options\" in item) {\n <mat-optgroup [label]=\"item.label\" [disabled]=\"item.disabled\">\n @for (option of item.options; track option) {\n <mat-option\n [value]=\"option.value\"\n [disabled]=\"option.disabled\"\n [class.mat-mdc-option-multiple]=\"multiple()\"\n >\n {{ option.displayValue }}\n </mat-option>\n }\n </mat-optgroup>\n }\n }\n } @else {\n @for (option of filteredOptions$ | push; track option) {\n <mat-option\n [value]=\"option.value\"\n [disabled]=\"option.disabled\"\n [class.mat-mdc-option-multiple]=\"multiple()\"\n >\n {{ option.displayValue }}\n </mat-option>\n }\n }\n </mat-select>\n <ng-content />\n <ng-content ngProjectAs=\"watt-field-hint\" select=\"watt-field-hint\" />\n <ng-content ngProjectAs=\"watt-field-error\" select=\"watt-field-error\" />\n</watt-field>\n","//#region License\n/**\n * @license\n * Copyright 2020 Energinet DataHub A/S\n *\n * Licensed under the Apache License, Version 2.0 (the \"License2\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n//#endregion\nexport { WattDropdownComponent } from './watt-dropdown.component';\nexport {\n type WattDropdownOption,\n type WattDropdownOptions,\n type WattDropdownGroupedOptions,\n type WattDropdownOptionGroup,\n} from './watt-dropdown-option';\nexport { type WattDropdownValue } from './watt-dropdown-value';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"energinet-watt-dropdown.mjs","sources":["../../../libs/watt/package/dropdown/watt-dropdown.component.ts","../../../libs/watt/package/dropdown/watt-dropdown.component.html","../../../libs/watt/package/dropdown/index.ts","../../../libs/watt/package/dropdown/energinet-watt-dropdown.ts"],"sourcesContent":["//#region License\n/**\n * @license\n * Copyright 2020 Energinet DataHub A/S\n *\n * Licensed under the Apache License, Version 2.0 (the \"License2\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n//#endregion\nimport {\n input,\n model,\n signal,\n effect,\n OnInit,\n inject,\n Component,\n viewChild,\n DestroyRef,\n ViewEncapsulation,\n computed,\n} from '@angular/core';\n\nimport {\n NgControl,\n ValidatorFn,\n FormControl,\n ValidationErrors,\n AsyncValidatorFn,\n UntypedFormControl,\n ReactiveFormsModule,\n ControlValueAccessor,\n} from '@angular/forms';\n\nimport { RxPush } from '@rx-angular/template/push';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\n\nimport { of, ReplaySubject, map, take, mergeWith } from 'rxjs';\nimport { NgxMatSelectSearchModule } from 'ngx-mat-select-search';\nimport { MatSelectModule, MatSelect } from '@angular/material/select';\nimport { MatOptionModule } from '@angular/material/core';\n\nimport { WattIconComponent } from '@energinet/watt/icon';\nimport { WattFieldComponent } from '@energinet/watt/field';\nimport { WattMenuChipComponent } from '@energinet/watt/chip';\n\nimport type { WattDropdownValue } from './watt-dropdown-value';\nimport type {\n WattDropdownOptions,\n WattDropdownOptionGroup,\n WattDropdownGroupedOptions,\n} from './watt-dropdown-option';\n\n@Component({\n selector: 'watt-dropdown',\n templateUrl: './watt-dropdown.component.html',\n styleUrls: ['./watt-dropdown.component.scss'],\n encapsulation: ViewEncapsulation.None,\n imports: [\n RxPush,\n MatSelectModule,\n MatOptionModule,\n ReactiveFormsModule,\n NgxMatSelectSearchModule,\n\n WattIconComponent,\n WattFieldComponent,\n WattMenuChipComponent,\n ],\n host: {\n '[attr.watt-field-disabled]': 'isDisabled()',\n '[class.watt-chip-mode]': 'chipMode()',\n },\n})\nexport class WattDropdownComponent<T = string> implements ControlValueAccessor, OnInit {\n private parentControlDirective = inject(NgControl, { host: true });\n private destroyRef = inject(DestroyRef);\n private validateParent?: ValidatorFn;\n private validateParentAsync?: AsyncValidatorFn;\n private _options: WattDropdownOptions = [];\n private _groupedOptions: WattDropdownGroupedOptions = [];\n parentControl: FormControl | null = null;\n matSelectControl = new FormControl<string | string[] | undefined | null>(null);\n\n /**\n * Control for the MatSelect filter keyword\n */\n filterControl = new UntypedFormControl();\n\n /**\n * List of options filtered by search keyword\n */\n filteredOptions$ = new ReplaySubject<WattDropdownOptions>(1);\n\n /**\n * List of grouped options filtered by search keyword\n */\n filteredGroupedOptions$ = new ReplaySubject<WattDropdownGroupedOptions>(1);\n\n mergedFilteredOptions$ = this.filteredOptions$.pipe(\n mergeWith(this.filteredGroupedOptions$),\n take(1),\n map((options) => {\n if (this.hasGroups()) {\n return (options as WattDropdownGroupedOptions)\n .flatMap((group) => ('options' in group ? group.options : []))\n .map((option) => option.value);\n }\n\n return (options as WattDropdownOptions).map((option) => option.value);\n })\n );\n\n emDash = '—';\n isToggleAllChecked = false;\n isToggleAllIndeterminate = false;\n isDisabled = signal(false);\n\n get showTriggerValue(): boolean {\n const multiple = this.multiple();\n return (multiple &&\n this.matSelectControl.value?.length === 1 &&\n this.matSelectControl.value[0] !== '') ||\n (!multiple && this.matSelect()?.triggerValue)\n ? true\n : false;\n }\n\n get showChipLabel() {\n return this.multiple() && this.matSelectControl.value && this.matSelectControl.value.length > 1\n ? true\n : false;\n }\n\n matSelect = viewChild<MatSelect>('matSelect');\n hideSearch = input(false);\n panelWidth = input<null | 'auto'>(null);\n getCustomTrigger = input<(value: string | string[]) => string>();\n\n /**\n * Set the mode of the dropdown.\n */\n chipMode = input(false);\n disableSelectedMode = input(false);\n sortDirection = input<'asc' | 'desc'>();\n\n /**\n * Sets the options for the dropdown.\n * Can be a flat array of options or an array containing both options and option groups.\n */\n options = model<WattDropdownOptions<T> | WattDropdownGroupedOptions<T>>([]);\n\n /**\n * Sets support for selecting multiple dropdown options.\n */\n multiple = input(false);\n\n /**\n * Sets support for hiding the reset option in \"single\" select mode.\n */\n showResetOption = input(true);\n\n /**\n * Sets the placeholder for the dropdown.\n */\n placeholder = input('');\n\n /**\n * Sets the label for the dropdown.\n */\n label = input('');\n\n /**\n * Label to be shown when no options are found after filtering.\n *\n * Note: The label is visible in \"multiple\" mode only.\n */\n noOptionsFoundLabel = input('');\n\n hasGroups = computed(() => {\n const options = this.options() ?? [];\n return options.some(\n (option) => 'options' in option && Array.isArray((option as WattDropdownOptionGroup).options)\n );\n });\n\n constructor() {\n effect(() => {\n const options = this.options();\n if (Array.isArray(options)) {\n const optionsCopy = [...options];\n\n if (this.hasGroups()) {\n this.handleGroup(optionsCopy as WattDropdownGroupedOptions);\n } else {\n this.handleFlat(optionsCopy as WattDropdownOptions);\n }\n }\n });\n this.parentControlDirective.valueAccessor = this;\n }\n\n private handleFlat(optionsCopy: WattDropdownOptions) {\n if (this.sortDirection()) {\n optionsCopy = this.sortOptions(optionsCopy);\n }\n\n this._options = optionsCopy;\n this.filteredOptions$.next(this._options);\n }\n\n private handleGroup(optionsCopy: WattDropdownGroupedOptions) {\n this._groupedOptions = this.processGroupedOptions(optionsCopy);\n this.filteredGroupedOptions$.next(this._groupedOptions);\n }\n\n private processGroupedOptions(options: WattDropdownGroupedOptions): WattDropdownGroupedOptions {\n return options.map((group) => {\n if (this.sortDirection()) {\n group.options = this.sortOptions(group.options);\n }\n return group;\n });\n }\n\n ngOnInit() {\n this.listenForFilterFieldValueChanges();\n this.initializePropertiesFromParent();\n this.bindParentValidatorsToControl();\n this.bindControlToParent();\n }\n\n writeValue(value: WattDropdownValue) {\n this.matSelectControl.setValue(value);\n }\n\n registerOnChange(onChangeFn: (value: WattDropdownValue) => void) {\n this.changeParentValue = onChangeFn;\n }\n\n registerOnTouched(onTouchFn: () => void) {\n this.markParentControlAsTouched = onTouchFn;\n }\n\n setDisabledState(shouldDisable: boolean) {\n this.isDisabled.set(shouldDisable);\n if (shouldDisable) {\n this.matSelectControl.disable();\n } else {\n this.matSelectControl.enable();\n }\n }\n\n onToggleAll(toggleAllState: boolean) {\n this.mergedFilteredOptions$.subscribe((filteredOptions: string[]) => {\n const optionsToSelect = toggleAllState ? filteredOptions : [];\n this.matSelectControl.patchValue(optionsToSelect);\n });\n }\n\n public sortOptions(options: WattDropdownOptions): WattDropdownOptions {\n return [...options].sort((a, b) => {\n return this.sortDirection() === 'asc'\n ? a.displayValue.localeCompare(b.displayValue)\n : b.displayValue.localeCompare(a.displayValue);\n });\n }\n\n private listenForFilterFieldValueChanges() {\n this.filterControl.valueChanges.pipe(takeUntilDestroyed(this.destroyRef)).subscribe(() => {\n this.filterOptions();\n\n if (this.multiple()) {\n this.determineToggleAllCheckboxState();\n }\n });\n }\n\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n private changeParentValue = (value: WattDropdownValue) => {\n // Intentionally left empty\n };\n\n private markParentControlAsTouched = () => {\n // Intentionally left empty\n };\n\n /**\n * @ignore\n *\n * Store the parent control, its validators and async validators in properties\n * of this component.\n */\n private initializePropertiesFromParent() {\n this.parentControl = this.parentControlDirective.control as UntypedFormControl;\n\n this.validateParent =\n (this.parentControl.validator && this.parentControl.validator.bind(this.parentControl)) ||\n (() => null);\n\n this.validateParentAsync =\n (this.parentControl.asyncValidator &&\n this.parentControl.asyncValidator.bind(this.parentControl)) ||\n (() => of(null));\n }\n\n /**\n * @ignore\n *\n * Inherit validators from parent form control.\n */\n private bindParentValidatorsToControl() {\n const validators = !this.matSelectControl.validator\n ? [this.validateParent]\n : Array.isArray(this.matSelectControl.validator)\n ? [...this.matSelectControl.validator, this.validateParent]\n : [this.matSelectControl.validator, this.validateParent];\n this.matSelectControl.setValidators(validators);\n\n const asyncValidators = !this.matSelectControl.asyncValidator\n ? [this.validateParentAsync]\n : Array.isArray(this.matSelectControl.asyncValidator)\n ? [...this.matSelectControl.asyncValidator, this.validateParentAsync]\n : [this.matSelectControl.asyncValidator, this.validateParentAsync];\n this.matSelectControl.setAsyncValidators(asyncValidators);\n\n this.matSelectControl.updateValueAndValidity();\n }\n\n /**\n * @ignore\n *\n * Emit values to the parent form control when our form control's value\n * changes.\n *\n * Reflect parent validation errors in our form control.\n */\n private bindControlToParent() {\n this.handleValueChange();\n this.handleStatusChange();\n }\n\n private handleStatusChange() {\n this.parentControl?.statusChanges\n .pipe(\n map(\n () =>\n ({\n ...this.parentControl?.errors,\n }) as ValidationErrors\n ),\n map((errors) => (Object.keys(errors).length > 0 ? errors : null)),\n takeUntilDestroyed(this.destroyRef)\n )\n .subscribe((errors) => {\n this.matSelectControl.setErrors(errors);\n });\n }\n\n private handleValueChange() {\n this.matSelectControl.valueChanges\n .pipe(\n map((value) => (value === undefined ? null : value)),\n map((value: WattDropdownValue) => {\n if (Array.isArray(value) && value.length === 0) {\n return null;\n }\n\n return value;\n }),\n takeUntilDestroyed(this.destroyRef)\n )\n .subscribe((value: WattDropdownValue) => {\n if (this.multiple()) {\n this.determineToggleAllCheckboxState();\n }\n\n this.markParentControlAsTouched();\n this.changeParentValue(value);\n });\n }\n\n private filterOptions() {\n if (!this._options) {\n return;\n }\n\n const search = (this.filterControl.value as string).trim().toLowerCase();\n\n if (!search) {\n this.filteredOptions$.next(this._options.slice());\n\n if (this.hasGroups()) {\n this.filteredGroupedOptions$.next(this._groupedOptions.slice());\n }\n return;\n }\n\n const filteredFlatOptions = this._options.filter(\n (option) => option.displayValue.toLowerCase().indexOf(search) > -1\n );\n\n this.filteredOptions$.next(filteredFlatOptions);\n\n if (this.hasGroups()) {\n this.filterGroups(search);\n }\n }\n\n private filterGroups(search: string) {\n const filteredGroups = this._groupedOptions\n .map((item) => {\n if (!('options' in item)) {\n return null;\n }\n const filteredGroupOptions = item.options.filter(\n (option) => option.displayValue.toLowerCase().indexOf(search) > -1\n );\n\n return filteredGroupOptions.length > 0 ? { ...item, options: filteredGroupOptions } : null;\n })\n .filter(Boolean) as WattDropdownGroupedOptions;\n\n this.filteredGroupedOptions$.next(filteredGroups);\n }\n\n private determineToggleAllCheckboxState() {\n this.mergedFilteredOptions$.subscribe((filteredOptions: string[]) => {\n const selectedOptions = this.matSelectControl.value;\n\n if (Array.isArray(selectedOptions)) {\n const selectedFilteredOptions = filteredOptions.filter((option) =>\n selectedOptions.includes(option)\n );\n\n this.isToggleAllIndeterminate =\n selectedFilteredOptions.length > 0 &&\n selectedFilteredOptions.length < filteredOptions.length;\n\n this.isToggleAllChecked =\n selectedFilteredOptions.length > 0 &&\n selectedFilteredOptions.length === filteredOptions.length;\n }\n });\n }\n}\n","<!--\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<watt-field\n [control]=\"parentControl\"\n [chipMode]=\"chipMode()\"\n [label]=\"label()\"\n (click)=\"matSelect.open()\"\n>\n @if (chipMode()) {\n <watt-menu-chip\n [opened]=\"matSelect.panelOpen\"\n (toggleChange)=\"matSelect.open()\"\n [selected]=\"!!matSelect?.triggerValue && !disableSelectedMode()\"\n [disabled]=\"matSelectControl.disabled\"\n >\n {{ placeholder() }}\n @if (showTriggerValue) {\n <span>\n @if (placeholder()) {\n :\n }\n {{ getCustomTrigger()?.(matSelect.value) ?? matSelect?.triggerValue }}\n </span>\n }\n @if (showChipLabel) {\n <span class=\"watt-chip-label\">{{ matSelectControl.value?.length }}</span>\n }\n </watt-menu-chip>\n }\n\n <mat-select\n [attr.aria-label]=\"label()\"\n [formControl]=\"matSelectControl\"\n [placeholder]=\"placeholder()\"\n #matSelect\n [panelWidth]=\"panelWidth()\"\n [multiple]=\"multiple()\"\n [class]=\"{ chip: chipMode(), 'mat-mdc-select-multiple': multiple() }\"\n [panelClass]=\"{\n 'watt-dropdown-panel': true,\n 'watt-dropdown-panel-chip-mode': chipMode(),\n 'mat-mdc-select-panel-multiple': multiple(),\n }\"\n >\n <!-- We use this instead of ngIf, since it will trigger a NG0100: ExpressionChangedAfterItHasBeenCheckedError: Expression has changed after it was checked. -->\n <mat-option [style.display]=\"!hideSearch() ? 'block' : 'none'\">\n <ngx-mat-select-search\n [formControl]=\"filterControl\"\n [placeholderLabel]=\"placeholder()\"\n closeIcon=\"close\"\n [showToggleAllCheckbox]=\"multiple()\"\n (toggleAll)=\"onToggleAll($event)\"\n [toggleAllCheckboxChecked]=\"isToggleAllChecked\"\n [toggleAllCheckboxIndeterminate]=\"isToggleAllIndeterminate\"\n [noEntriesFoundLabel]=\"noOptionsFoundLabel()\"\n >\n <watt-icon ngxMatSelectSearchClear name=\"close\" size=\"s\" />\n </ngx-mat-select-search>\n </mat-option>\n\n @if (!multiple() && showResetOption()) {\n <mat-option>{{ emDash }}</mat-option>\n }\n\n @if (hasGroups()) {\n @for (item of filteredGroupedOptions$ | push; track item) {\n @if (\"options\" in item) {\n <mat-optgroup [label]=\"item.label\" [disabled]=\"item.disabled\">\n @for (option of item.options; track option) {\n <mat-option\n [value]=\"option.value\"\n [disabled]=\"option.disabled\"\n [class.mat-mdc-option-multiple]=\"multiple()\"\n >\n {{ option.displayValue }}\n </mat-option>\n }\n </mat-optgroup>\n }\n }\n } @else {\n @for (option of filteredOptions$ | push; track option) {\n <mat-option\n [value]=\"option.value\"\n [disabled]=\"option.disabled\"\n [class.mat-mdc-option-multiple]=\"multiple()\"\n >\n {{ option.displayValue }}\n </mat-option>\n }\n }\n </mat-select>\n <ng-content />\n <ng-content ngProjectAs=\"watt-field-hint\" select=\"watt-field-hint\" />\n <ng-content ngProjectAs=\"watt-field-error\" select=\"watt-field-error\" />\n</watt-field>\n","//#region License\n/**\n * @license\n * Copyright 2020 Energinet DataHub A/S\n *\n * Licensed under the Apache License, Version 2.0 (the \"License2\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n//#endregion\nexport { WattDropdownComponent } from './watt-dropdown.component';\nexport {\n type WattDropdownOption,\n type WattDropdownOptions,\n type WattDropdownGroupedOptions,\n type WattDropdownOptionGroup,\n} from './watt-dropdown-option';\nexport { type WattDropdownValue } from './watt-dropdown-value';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
@@ -1,5 +1,6 @@
1
1
  import * as i0 from '@angular/core';
2
2
  import { Injectable, ViewEncapsulation, Component, inject, ElementRef, input, computed, viewChild, signal, effect, ChangeDetectionStrategy } from '@angular/core';
3
+ import { NgTemplateOutlet } from '@angular/common';
3
4
  import { Validators } from '@angular/forms';
4
5
  import { filter, switchMap, startWith, map, tap } from 'rxjs/operators';
5
6
  import { toObservable, takeUntilDestroyed } from '@angular/core/rxjs-interop';
@@ -8,7 +9,6 @@ import { WattTooltipDirective } from '@energinet/watt/tooltip';
8
9
  import { VaterFlexComponent, VaterUtilityDirective } from '@energinet/watt/vater';
9
10
  import { WattRangeValidators } from '@energinet/watt/validators';
10
11
  import { Subject } from 'rxjs';
11
- import { NgTemplateOutlet } from '@angular/common';
12
12
 
13
13
  //#region License
14
14
  /**