@tedi-design-system/angular 9.0.0-rc.5 → 9.0.0-rc.7
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.
- package/LICENSE +21 -0
- package/NOTICE.md +25 -0
- package/fesm2022/tedi-design-system-angular-tedi.mjs +185 -25
- package/fesm2022/tedi-design-system-angular-tedi.mjs.map +1 -1
- package/package.json +2 -1
- package/tedi/index.d.ts +62 -4
- package/tedi/index.d.ts.map +1 -1
package/LICENSE
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2026 TEDI Design System
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
package/NOTICE.md
ADDED
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
# Notice
|
|
2
|
+
|
|
3
|
+
TEDI Angular is released under the [MIT License](LICENSE). The MIT License does not cover the fonts and logos listed below, which keep their own terms.
|
|
4
|
+
|
|
5
|
+
## Fonts
|
|
6
|
+
|
|
7
|
+
The npm package includes the fonts from `@tedi-design-system/core` in `fonts/`. They keep their own licenses:
|
|
8
|
+
|
|
9
|
+
| Font | Files | Copyright | License |
|
|
10
|
+
| --- | --- | --- | --- |
|
|
11
|
+
| [Roboto](https://github.com/googlefonts/roboto-2) 2.137 | `roboto-v30-*.woff2` | Copyright 2011 Google Inc. | [Apache License 2.0](https://www.apache.org/licenses/LICENSE-2.0) |
|
|
12
|
+
| [Material Symbols](https://github.com/google/material-design-icons) (Outlined, Rounded, Sharp) | `material-symbols-*.woff2` | Copyright Google LLC | [Apache License 2.0](https://www.apache.org/licenses/LICENSE-2.0) |
|
|
13
|
+
|
|
14
|
+
A copy of the Apache License 2.0 is next to the font files, in `fonts/LICENSE-Apache-2.0.txt`.
|
|
15
|
+
|
|
16
|
+
## Logos and emblems
|
|
17
|
+
|
|
18
|
+
The logos and emblems in `public/` are used in Storybook and examples only and are not part of the npm package.
|
|
19
|
+
|
|
20
|
+
| What | Files | Belongs to | Terms |
|
|
21
|
+
| --- | --- | --- | --- |
|
|
22
|
+
| TEDI logo | `TEDI-logo-sinine.svg`, `favicon.svg` | TEHIK | Use it only to refer to TEDI. |
|
|
23
|
+
| TEHIK logo | `TEHIK_logo.svg`, `TEHIK_logo2.svg`, `tehik_logo.png` | TEHIK | Use it only to refer to TEHIK. |
|
|
24
|
+
| Estonian state coat of arms | `header-logo.svg`, `header-logo-white.svg`, `logo.svg` | Republic of Estonia | Its use is regulated by the State Coat of Arms Act (Riigivapi seadus). The examples show what a state agency header looks like; use it in your own product only if you are entitled to use the coat of arms. |
|
|
25
|
+
| EU and Estonian structural funds logos | `sf_logod.jpg`, `sf_logod_vertikaalne.jpg`, `SF-horizontal.png`, `SF-vertical.png` | European Union, Republic of Estonia | Use them only to mark projects co-funded by these funds, following the funds' visibility rules. |
|
|
@@ -200,7 +200,7 @@ class BaseButtonDirective {
|
|
|
200
200
|
this.iconLast.set(iconIndexes.includes(nodes.length - 1));
|
|
201
201
|
}
|
|
202
202
|
classes = computed(() => {
|
|
203
|
-
const classList = [this.classNamePrefix()];
|
|
203
|
+
const classList = [this.classNamePrefix(), "no-print"];
|
|
204
204
|
if (this.iconOnly()) {
|
|
205
205
|
classList.push(`${this.classNamePrefix()}--icon-only`);
|
|
206
206
|
}
|
|
@@ -299,6 +299,7 @@ class ButtonGroupButtonDirective {
|
|
|
299
299
|
hostClasses = computed(() => [
|
|
300
300
|
"tedi-button",
|
|
301
301
|
"tedi-button-group-button",
|
|
302
|
+
"no-print",
|
|
302
303
|
`tedi-button--${this.effectiveVariant()}`,
|
|
303
304
|
`tedi-button--${this.effectiveSize()}`,
|
|
304
305
|
].join(" "), ...(ngDevMode ? [{ debugName: "hostClasses" }] : []));
|
|
@@ -486,7 +487,11 @@ function breakpointInput(input) {
|
|
|
486
487
|
return { xs: input };
|
|
487
488
|
}
|
|
488
489
|
|
|
489
|
-
|
|
490
|
+
/** Native controls keep their own semantics and keyboard behavior. */
|
|
491
|
+
const NATIVE_INTERACTIVE_SELECTOR = 'button, a[href], input:not([type="hidden"]), select, textarea';
|
|
492
|
+
const FOCUSABLE_SELECTOR$1 = `${NATIVE_INTERACTIVE_SELECTOR}, [tabindex]`;
|
|
493
|
+
/** Native controls that fire `click` on Space but not on Enter. */
|
|
494
|
+
const SPACE_ACTIVATED_SELECTOR = 'input[type="checkbox"], input[type="radio"]';
|
|
490
495
|
class DropdownTriggerDirective {
|
|
491
496
|
/**
|
|
492
497
|
* The `aria-haspopup` value for the trigger, telling assistive technology
|
|
@@ -509,6 +514,8 @@ class DropdownTriggerDirective {
|
|
|
509
514
|
* would both be tab stops, and the ARIA state would land on the wrong element.
|
|
510
515
|
*/
|
|
511
516
|
triggerElement = signal(null, ...(ngDevMode ? [{ debugName: "triggerElement" }] : []));
|
|
517
|
+
/** Only a Space press that starts on the trigger may activate it on keyup. */
|
|
518
|
+
spacePressed = false;
|
|
512
519
|
hasPopup = computed(() => {
|
|
513
520
|
const explicit = this.ariaHaspopup();
|
|
514
521
|
if (explicit)
|
|
@@ -544,14 +551,21 @@ class DropdownTriggerDirective {
|
|
|
544
551
|
this.renderer.setAttribute(el, "aria-haspopup", hasPopup);
|
|
545
552
|
}
|
|
546
553
|
this.renderer.setAttribute(el, "aria-expanded", String(this.dropdown.isOpen()));
|
|
547
|
-
if (!this.isNativelyFocusable(el)) {
|
|
548
|
-
this.renderer.setAttribute(el, "role", "button");
|
|
549
|
-
this.renderer.setAttribute(el, "tabindex", "0");
|
|
550
|
-
}
|
|
551
554
|
});
|
|
552
555
|
}
|
|
553
556
|
ngAfterViewInit() {
|
|
554
|
-
this.
|
|
557
|
+
const el = this.resolveTriggerElement();
|
|
558
|
+
// Non-native triggers need button semantics, but a role or tabindex the
|
|
559
|
+
// consumer set (e.g. `role="checkbox"`) is theirs to keep.
|
|
560
|
+
if (!this.isNativelyInteractive(el)) {
|
|
561
|
+
if (!el.hasAttribute("role")) {
|
|
562
|
+
this.renderer.setAttribute(el, "role", "button");
|
|
563
|
+
}
|
|
564
|
+
if (!el.hasAttribute("tabindex")) {
|
|
565
|
+
this.renderer.setAttribute(el, "tabindex", "0");
|
|
566
|
+
}
|
|
567
|
+
}
|
|
568
|
+
this.triggerElement.set(el);
|
|
555
569
|
}
|
|
556
570
|
focus() {
|
|
557
571
|
this.triggerElement()?.focus();
|
|
@@ -567,6 +581,20 @@ class DropdownTriggerDirective {
|
|
|
567
581
|
onKeydown(event) {
|
|
568
582
|
const key = event.key;
|
|
569
583
|
switch (key) {
|
|
584
|
+
case "Enter":
|
|
585
|
+
if (!this.handlesKey(event, key))
|
|
586
|
+
break;
|
|
587
|
+
// Also keeps Enter on a checkbox from submitting its form.
|
|
588
|
+
event.preventDefault();
|
|
589
|
+
this.dropdown.toggleDropdown();
|
|
590
|
+
break;
|
|
591
|
+
case " ":
|
|
592
|
+
if (!this.handlesKey(event, key))
|
|
593
|
+
break;
|
|
594
|
+
// Match button timing and prevent page scrolling.
|
|
595
|
+
event.preventDefault();
|
|
596
|
+
this.spacePressed = true;
|
|
597
|
+
break;
|
|
570
598
|
case "ArrowDown":
|
|
571
599
|
if (!this.isWidgetContent())
|
|
572
600
|
break;
|
|
@@ -586,17 +614,43 @@ class DropdownTriggerDirective {
|
|
|
586
614
|
break;
|
|
587
615
|
}
|
|
588
616
|
}
|
|
617
|
+
onKeyup(event) {
|
|
618
|
+
if (event.key !== " " || !this.spacePressed)
|
|
619
|
+
return;
|
|
620
|
+
this.spacePressed = false;
|
|
621
|
+
if (event.target !== this.focusableElement)
|
|
622
|
+
return;
|
|
623
|
+
this.dropdown.toggleDropdown();
|
|
624
|
+
}
|
|
625
|
+
onFocusout(event) {
|
|
626
|
+
if (event.target === this.focusableElement)
|
|
627
|
+
this.spacePressed = false;
|
|
628
|
+
}
|
|
629
|
+
/**
|
|
630
|
+
* Whether the directive must activate the trigger on `key` itself, because the
|
|
631
|
+
* element does not turn that key into a native click: both keys for a generic
|
|
632
|
+
* trigger, Enter for a checkbox or radio. Other native controls handle both.
|
|
633
|
+
*/
|
|
634
|
+
handlesKey(event, key) {
|
|
635
|
+
const el = this.focusableElement;
|
|
636
|
+
// Keys from other controls inside the host are theirs.
|
|
637
|
+
if (event.target !== el)
|
|
638
|
+
return false;
|
|
639
|
+
if (!this.isNativelyInteractive(el))
|
|
640
|
+
return true;
|
|
641
|
+
return key === "Enter" && el.matches(SPACE_ACTIVATED_SELECTOR);
|
|
642
|
+
}
|
|
589
643
|
isWidgetContent() {
|
|
590
644
|
return this.dropdown.dropdownContent().isWidget();
|
|
591
645
|
}
|
|
592
646
|
resolveTriggerElement() {
|
|
593
647
|
const el = this.host.nativeElement;
|
|
594
|
-
if (this.
|
|
648
|
+
if (this.isNativelyInteractive(el))
|
|
595
649
|
return el;
|
|
596
650
|
return el.querySelector(FOCUSABLE_SELECTOR$1) ?? el;
|
|
597
651
|
}
|
|
598
|
-
|
|
599
|
-
return
|
|
652
|
+
isNativelyInteractive(el) {
|
|
653
|
+
return el.matches(NATIVE_INTERACTIVE_SELECTOR);
|
|
600
654
|
}
|
|
601
655
|
openAndFocusFirst() {
|
|
602
656
|
if (this.dropdown.isOpen()) {
|
|
@@ -615,7 +669,7 @@ class DropdownTriggerDirective {
|
|
|
615
669
|
}
|
|
616
670
|
}
|
|
617
671
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.24", ngImport: i0, type: DropdownTriggerDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
618
|
-
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "20.3.24", type: DropdownTriggerDirective, isStandalone: true, selector: "[tedi-dropdown-trigger]", inputs: { ariaHaspopup: { classPropertyName: "ariaHaspopup", publicName: "ariaHaspopup", isSignal: true, isRequired: false, transformFunction: null } }, host: { listeners: { "click": "onClick()", "keydown": "onKeydown($event)" } }, hostDirectives: [{ directive: i1.CdkOverlayOrigin }], ngImport: i0 });
|
|
672
|
+
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "20.3.24", type: DropdownTriggerDirective, isStandalone: true, selector: "[tedi-dropdown-trigger]", inputs: { ariaHaspopup: { classPropertyName: "ariaHaspopup", publicName: "ariaHaspopup", isSignal: true, isRequired: false, transformFunction: null } }, host: { listeners: { "click": "onClick()", "keydown": "onKeydown($event)", "keyup": "onKeyup($event)", "focusout": "onFocusout($event)" } }, hostDirectives: [{ directive: i1.CdkOverlayOrigin }], ngImport: i0 });
|
|
619
673
|
}
|
|
620
674
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.24", ngImport: i0, type: DropdownTriggerDirective, decorators: [{
|
|
621
675
|
type: Directive,
|
|
@@ -630,6 +684,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.24", ngImpo
|
|
|
630
684
|
}], onKeydown: [{
|
|
631
685
|
type: HostListener,
|
|
632
686
|
args: ["keydown", ["$event"]]
|
|
687
|
+
}], onKeyup: [{
|
|
688
|
+
type: HostListener,
|
|
689
|
+
args: ["keyup", ["$event"]]
|
|
690
|
+
}], onFocusout: [{
|
|
691
|
+
type: HostListener,
|
|
692
|
+
args: ["focusout", ["$event"]]
|
|
633
693
|
}] } });
|
|
634
694
|
|
|
635
695
|
const DROPDOWN_API = new InjectionToken("DropdownApi");
|
|
@@ -3789,13 +3849,14 @@ class ClosingButtonComponent {
|
|
|
3789
3849
|
translationService = inject(TediTranslationService);
|
|
3790
3850
|
_defaultLabel = this.translationService.track("close");
|
|
3791
3851
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.24", ngImport: i0, type: ClosingButtonComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
3792
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "20.3.24", type: ClosingButtonComponent, isStandalone: true, selector: "button[tedi-closing-button]", inputs: { size: { classPropertyName: "size", publicName: "size", isSignal: true, isRequired: false, transformFunction: null }, iconSize: { classPropertyName: "iconSize", publicName: "iconSize", isSignal: true, isRequired: false, transformFunction: null }, icon: { classPropertyName: "icon", publicName: "icon", isSignal: true, isRequired: false, transformFunction: null }, ariaLabel: { classPropertyName: "ariaLabel", publicName: "ariaLabel", isSignal: true, isRequired: false, transformFunction: null }, showTitle: { classPropertyName: "showTitle", publicName: "showTitle", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "attr.title": "showTitle() ? ariaLabel() || _defaultLabel() : null", "attr.aria-label": "ariaLabel() || _defaultLabel()", "class.tedi-closing-button": "true", "class.tedi-closing-button--small": "size() === 'small'" } }, ngImport: i0, template: "<tedi-icon [name]=\"icon()\" [size]=\"iconSize()\" aria-hidden=\"true\" />\n", styles: [".tedi-closing-button{--general-icon-primary: var(--button-close-text-default);display:flex;flex-shrink:0;align-items:center;justify-content:center;width:var(--button-sm-icon-size);height:var(--button-sm-icon-size);padding:0;cursor:pointer;background-color:var(--button-close-background-default);border:1px solid var(--button-close-background-default);border-radius:var(--button-radius-default);transition:background .5s ease}.tedi-closing-button:hover{--general-icon-primary: var(--button-close-text-hover);background-color:var(--button-close-background-hover)}.tedi-closing-button:active{--general-icon-primary: var(--button-close-text-active);background-color:var(--button-close-background-active)}.tedi-closing-button:focus-visible{outline:2px solid var(--button-main-primary-border-focus);outline-offset:-2px}.tedi-closing-button--small{width:var(--button-xs-icon-size);height:var(--button-xs-icon-size)}\n"], dependencies: [{ kind: "component", type: IconComponent, selector: "tedi-icon", inputs: ["name", "size", "color", "background", "variant", "type", "label"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
3852
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "20.3.24", type: ClosingButtonComponent, isStandalone: true, selector: "button[tedi-closing-button]", inputs: { size: { classPropertyName: "size", publicName: "size", isSignal: true, isRequired: false, transformFunction: null }, iconSize: { classPropertyName: "iconSize", publicName: "iconSize", isSignal: true, isRequired: false, transformFunction: null }, icon: { classPropertyName: "icon", publicName: "icon", isSignal: true, isRequired: false, transformFunction: null }, ariaLabel: { classPropertyName: "ariaLabel", publicName: "ariaLabel", isSignal: true, isRequired: false, transformFunction: null }, showTitle: { classPropertyName: "showTitle", publicName: "showTitle", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "attr.title": "showTitle() ? ariaLabel() || _defaultLabel() : null", "attr.aria-label": "ariaLabel() || _defaultLabel()", "class.tedi-closing-button": "true", "class.tedi-closing-button--small": "size() === 'small'" }, classAttribute: "no-print" }, ngImport: i0, template: "<tedi-icon [name]=\"icon()\" [size]=\"iconSize()\" aria-hidden=\"true\" />\n", styles: [".tedi-closing-button{--general-icon-primary: var(--button-close-text-default);display:flex;flex-shrink:0;align-items:center;justify-content:center;width:var(--button-sm-icon-size);height:var(--button-sm-icon-size);padding:0;cursor:pointer;background-color:var(--button-close-background-default);border:1px solid var(--button-close-background-default);border-radius:var(--button-radius-default);transition:background .5s ease}.tedi-closing-button:hover{--general-icon-primary: var(--button-close-text-hover);background-color:var(--button-close-background-hover)}.tedi-closing-button:active{--general-icon-primary: var(--button-close-text-active);background-color:var(--button-close-background-active)}.tedi-closing-button:focus-visible{outline:2px solid var(--button-main-primary-border-focus);outline-offset:-2px}.tedi-closing-button--small{width:var(--button-xs-icon-size);height:var(--button-xs-icon-size)}\n"], dependencies: [{ kind: "component", type: IconComponent, selector: "tedi-icon", inputs: ["name", "size", "color", "background", "variant", "type", "label"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
3793
3853
|
}
|
|
3794
3854
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.24", ngImport: i0, type: ClosingButtonComponent, decorators: [{
|
|
3795
3855
|
type: Component,
|
|
3796
3856
|
args: [{ selector: "button[tedi-closing-button]", imports: [IconComponent], standalone: true, encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, host: {
|
|
3797
3857
|
"[attr.title]": "showTitle() ? ariaLabel() || _defaultLabel() : null",
|
|
3798
3858
|
"[attr.aria-label]": "ariaLabel() || _defaultLabel()",
|
|
3859
|
+
class: "no-print",
|
|
3799
3860
|
"[class.tedi-closing-button]": "true",
|
|
3800
3861
|
"[class.tedi-closing-button--small]": "size() === 'small'",
|
|
3801
3862
|
}, template: "<tedi-icon [name]=\"icon()\" [size]=\"iconSize()\" aria-hidden=\"true\" />\n", styles: [".tedi-closing-button{--general-icon-primary: var(--button-close-text-default);display:flex;flex-shrink:0;align-items:center;justify-content:center;width:var(--button-sm-icon-size);height:var(--button-sm-icon-size);padding:0;cursor:pointer;background-color:var(--button-close-background-default);border:1px solid var(--button-close-background-default);border-radius:var(--button-radius-default);transition:background .5s ease}.tedi-closing-button:hover{--general-icon-primary: var(--button-close-text-hover);background-color:var(--button-close-background-hover)}.tedi-closing-button:active{--general-icon-primary: var(--button-close-text-active);background-color:var(--button-close-background-active)}.tedi-closing-button:focus-visible{outline:2px solid var(--button-main-primary-border-focus);outline-offset:-2px}.tedi-closing-button--small{width:var(--button-xs-icon-size);height:var(--button-xs-icon-size)}\n"] }]
|
|
@@ -4444,13 +4505,13 @@ class InfoButtonComponent {
|
|
|
4444
4505
|
color = input("primary", ...(ngDevMode ? [{ debugName: "color" }] : []));
|
|
4445
4506
|
_defaultLabel = this.translationService.track("info-button.label");
|
|
4446
4507
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.24", ngImport: i0, type: InfoButtonComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
4447
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "20.3.24", type: InfoButtonComponent, isStandalone: true, selector: "button[tedi-info-button]", inputs: { ariaLabel: { classPropertyName: "ariaLabel", publicName: "aria-label", isSignal: true, isRequired: false, transformFunction: null }, color: { classPropertyName: "color", publicName: "color", isSignal: true, isRequired: false, transformFunction: null } }, host: { attributes: { "type": "button" }, properties: { "class.tedi-info-button--inverted": "color() === 'inverted'", "attr.aria-label": "ariaLabel() || _defaultLabel()" }, classAttribute: "tedi-info-button" }, ngImport: i0, template: `<tedi-icon name="info" [size]="18" />`, isInline: true, styles: [".tedi-info-button{display:inline-flex;align-items:center;justify-content:center;width:var(--button-xs-icon-size);height:var(--button-xs-icon-size);vertical-align:bottom;color:var(--button-main-neutral-text-default);cursor:pointer;background:transparent;border:none;border-radius:var(--button-radius-default)}.tedi-info-button:hover{color:var(--button-main-neutral-text-hover);background:var(--button-main-neutral-icon-only-background-hover)}.tedi-info-button:active{color:var(--button-main-neutral-text-active);background:var(--button-main-neutral-icon-only-background-active)}.tedi-info-button:focus-visible{color:var(--button-main-neutral-text-focus);outline:var(--tedi-borders-02) solid var(--button-main-primary-border-focus);outline-offset:calc(-1 * var(--tedi-borders-02));background-color:var(--button-main-neutral-background-focus);border-color:var(--button-main-neutral-border-default)}.tedi-info-button tedi-icon{color:inherit}.tedi-info-button--inverted{color:var(--button-main-neutral-inverted-text-default)}.tedi-info-button--inverted:hover{color:var(--button-main-neutral-inverted-text-hover);background:var(--button-main-neutral-inverted-icon-only-background-hover)}.tedi-info-button--inverted:active{color:var(--button-main-neutral-inverted-text-active);background:var(--button-main-neutral-inverted-icon-only-background-active)}.tedi-info-button--inverted:focus-visible{color:var(--button-main-neutral-inverted-text-focus);outline:none;background-color:var(--button-main-neutral-inverted-background-focus);box-shadow:0 0 0 var(--tedi-borders-02) var(--tedi-neutral-100)}\n"], dependencies: [{ kind: "component", type: IconComponent, selector: "tedi-icon", inputs: ["name", "size", "color", "background", "variant", "type", "label"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
4508
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "20.3.24", type: InfoButtonComponent, isStandalone: true, selector: "button[tedi-info-button]", inputs: { ariaLabel: { classPropertyName: "ariaLabel", publicName: "aria-label", isSignal: true, isRequired: false, transformFunction: null }, color: { classPropertyName: "color", publicName: "color", isSignal: true, isRequired: false, transformFunction: null } }, host: { attributes: { "type": "button" }, properties: { "class.tedi-info-button--inverted": "color() === 'inverted'", "attr.aria-label": "ariaLabel() || _defaultLabel()" }, classAttribute: "tedi-info-button no-print" }, ngImport: i0, template: `<tedi-icon name="info" [size]="18" />`, isInline: true, styles: [".tedi-info-button{display:inline-flex;align-items:center;justify-content:center;width:var(--button-xs-icon-size);height:var(--button-xs-icon-size);vertical-align:bottom;color:var(--button-main-neutral-text-default);cursor:pointer;background:transparent;border:none;border-radius:var(--button-radius-default)}.tedi-info-button:hover{color:var(--button-main-neutral-text-hover);background:var(--button-main-neutral-icon-only-background-hover)}.tedi-info-button:active{color:var(--button-main-neutral-text-active);background:var(--button-main-neutral-icon-only-background-active)}.tedi-info-button:focus-visible{color:var(--button-main-neutral-text-focus);outline:var(--tedi-borders-02) solid var(--button-main-primary-border-focus);outline-offset:calc(-1 * var(--tedi-borders-02));background-color:var(--button-main-neutral-background-focus);border-color:var(--button-main-neutral-border-default)}.tedi-info-button tedi-icon{color:inherit}.tedi-info-button--inverted{color:var(--button-main-neutral-inverted-text-default)}.tedi-info-button--inverted:hover{color:var(--button-main-neutral-inverted-text-hover);background:var(--button-main-neutral-inverted-icon-only-background-hover)}.tedi-info-button--inverted:active{color:var(--button-main-neutral-inverted-text-active);background:var(--button-main-neutral-inverted-icon-only-background-active)}.tedi-info-button--inverted:focus-visible{color:var(--button-main-neutral-inverted-text-focus);outline:none;background-color:var(--button-main-neutral-inverted-background-focus);box-shadow:0 0 0 var(--tedi-borders-02) var(--tedi-neutral-100)}\n"], dependencies: [{ kind: "component", type: IconComponent, selector: "tedi-icon", inputs: ["name", "size", "color", "background", "variant", "type", "label"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
4448
4509
|
}
|
|
4449
4510
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.24", ngImport: i0, type: InfoButtonComponent, decorators: [{
|
|
4450
4511
|
type: Component,
|
|
4451
4512
|
args: [{ standalone: true, selector: "button[tedi-info-button]", imports: [IconComponent], template: `<tedi-icon name="info" [size]="18" />`, changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, host: {
|
|
4452
4513
|
type: "button",
|
|
4453
|
-
class: "tedi-info-button",
|
|
4514
|
+
class: "tedi-info-button no-print",
|
|
4454
4515
|
"[class.tedi-info-button--inverted]": "color() === 'inverted'",
|
|
4455
4516
|
"[attr.aria-label]": "ariaLabel() || _defaultLabel()",
|
|
4456
4517
|
}, styles: [".tedi-info-button{display:inline-flex;align-items:center;justify-content:center;width:var(--button-xs-icon-size);height:var(--button-xs-icon-size);vertical-align:bottom;color:var(--button-main-neutral-text-default);cursor:pointer;background:transparent;border:none;border-radius:var(--button-radius-default)}.tedi-info-button:hover{color:var(--button-main-neutral-text-hover);background:var(--button-main-neutral-icon-only-background-hover)}.tedi-info-button:active{color:var(--button-main-neutral-text-active);background:var(--button-main-neutral-icon-only-background-active)}.tedi-info-button:focus-visible{color:var(--button-main-neutral-text-focus);outline:var(--tedi-borders-02) solid var(--button-main-primary-border-focus);outline-offset:calc(-1 * var(--tedi-borders-02));background-color:var(--button-main-neutral-background-focus);border-color:var(--button-main-neutral-border-default)}.tedi-info-button tedi-icon{color:inherit}.tedi-info-button--inverted{color:var(--button-main-neutral-inverted-text-default)}.tedi-info-button--inverted:hover{color:var(--button-main-neutral-inverted-text-hover);background:var(--button-main-neutral-inverted-icon-only-background-hover)}.tedi-info-button--inverted:active{color:var(--button-main-neutral-inverted-text-active);background:var(--button-main-neutral-inverted-icon-only-background-active)}.tedi-info-button--inverted:focus-visible{color:var(--button-main-neutral-inverted-text-focus);outline:none;background-color:var(--button-main-neutral-inverted-background-focus);box-shadow:0 0 0 var(--tedi-borders-02) var(--tedi-neutral-100)}\n"] }]
|
|
@@ -4535,7 +4596,7 @@ class CollapseButtonComponent {
|
|
|
4535
4596
|
return this.ariaLabel() ?? this.label();
|
|
4536
4597
|
}, ...(ngDevMode ? [{ debugName: "resolvedAriaLabel" }] : []));
|
|
4537
4598
|
hostClasses = computed(() => {
|
|
4538
|
-
const classes = ["tedi-collapse-button"];
|
|
4599
|
+
const classes = ["tedi-collapse-button", "no-print"];
|
|
4539
4600
|
if (this.open())
|
|
4540
4601
|
classes.push("tedi-collapse-button--open");
|
|
4541
4602
|
if (this.size() === "small")
|
|
@@ -5413,11 +5474,11 @@ class CollapseComponent {
|
|
|
5413
5474
|
}
|
|
5414
5475
|
}
|
|
5415
5476
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.24", ngImport: i0, type: CollapseComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
5416
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "20.3.24", type: CollapseComponent, isStandalone: true, selector: "tedi-collapse", inputs: { openText: { classPropertyName: "openText", publicName: "openText", isSignal: true, isRequired: false, transformFunction: null }, closeText: { classPropertyName: "closeText", publicName: "closeText", isSignal: true, isRequired: false, transformFunction: null }, defaultOpen: { classPropertyName: "defaultOpen", publicName: "defaultOpen", isSignal: true, isRequired: false, transformFunction: null }, hideCollapseText: { classPropertyName: "hideCollapseText", publicName: "hideCollapseText", isSignal: true, isRequired: false, transformFunction: null }, arrowType: { classPropertyName: "arrowType", publicName: "arrowType", isSignal: true, isRequired: false, transformFunction: null }, size: { classPropertyName: "size", publicName: "size", isSignal: true, isRequired: false, transformFunction: null }, inverted: { classPropertyName: "inverted", publicName: "inverted", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: "<div\n class=\"tedi-collapse\"\n [class.tedi-collapse--open]=\"isOpen() === true\"\n [class.tedi-collapse--inverted]=\"isInvertedActive()\"\n>\n <button\n tedi-collapse-button\n [open]=\"isOpen()\"\n [openText]=\"openText()\"\n [closeText]=\"closeText()\"\n [hideText]=\"hideCollapseText()\"\n [arrowType]=\"arrowType()\"\n [size]=\"size()\"\n [inverted]=\"inverted()\"\n [ariaControls]=\"collapseContentId\"\n (openChange)=\"isOpen.set($event)\"\n ></button>\n <div class=\"tedi-collapse__content\" [id]=\"collapseContentId\">\n <div class=\"tedi-collapse__extender\">\n <ng-content></ng-content>\n </div>\n </div>\n</div>\n", styles: [":host{display:block}.tedi-collapse--inverted{color:var(--general-text-white)}.tedi-collapse__extender{visibility:hidden;min-height:0;padding-top:var(--tedi-dimensions-05);transition:visibility .3s}.tedi-collapse__content{display:grid;grid-template-rows:0fr;overflow:hidden;transition:grid-template-rows .3s}.tedi-collapse--open>.tedi-collapse__content{grid-template-rows:1fr}.tedi-collapse--open>.tedi-collapse__content .tedi-collapse__extender{visibility:visible}\n"], dependencies: [{ kind: "component", type: CollapseButtonComponent, selector: "button[tedi-collapse-button]", inputs: ["open", "openText", "closeText", "hideText", "arrowType", "size", "inverted", "underline", "ariaControls", "ariaLabel", "id"], outputs: ["openChange"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
5477
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "20.3.24", type: CollapseComponent, isStandalone: true, selector: "tedi-collapse", inputs: { openText: { classPropertyName: "openText", publicName: "openText", isSignal: true, isRequired: false, transformFunction: null }, closeText: { classPropertyName: "closeText", publicName: "closeText", isSignal: true, isRequired: false, transformFunction: null }, defaultOpen: { classPropertyName: "defaultOpen", publicName: "defaultOpen", isSignal: true, isRequired: false, transformFunction: null }, hideCollapseText: { classPropertyName: "hideCollapseText", publicName: "hideCollapseText", isSignal: true, isRequired: false, transformFunction: null }, arrowType: { classPropertyName: "arrowType", publicName: "arrowType", isSignal: true, isRequired: false, transformFunction: null }, size: { classPropertyName: "size", publicName: "size", isSignal: true, isRequired: false, transformFunction: null }, inverted: { classPropertyName: "inverted", publicName: "inverted", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: "<div\n class=\"tedi-collapse\"\n [class.tedi-collapse--open]=\"isOpen() === true\"\n [class.tedi-collapse--inverted]=\"isInvertedActive()\"\n>\n <button\n tedi-collapse-button\n [open]=\"isOpen()\"\n [openText]=\"openText()\"\n [closeText]=\"closeText()\"\n [hideText]=\"hideCollapseText()\"\n [arrowType]=\"arrowType()\"\n [size]=\"size()\"\n [inverted]=\"inverted()\"\n [ariaControls]=\"collapseContentId\"\n (openChange)=\"isOpen.set($event)\"\n ></button>\n <div class=\"tedi-collapse__content\" [id]=\"collapseContentId\">\n <div class=\"tedi-collapse__extender\">\n <ng-content></ng-content>\n </div>\n </div>\n</div>\n", styles: [":host{display:block}.tedi-collapse--inverted{color:var(--general-text-white)}.tedi-collapse__extender{visibility:hidden;min-height:0;padding-top:var(--tedi-dimensions-05);transition:visibility .3s}.tedi-collapse__content{display:grid;grid-template-rows:0fr;overflow:hidden;transition:grid-template-rows .3s}.tedi-collapse--open>.tedi-collapse__content{grid-template-rows:1fr}.tedi-collapse--open>.tedi-collapse__content .tedi-collapse__extender{visibility:visible}@media print{.tedi-collapse__content,.tedi-collapse__extender{transition:none}.tedi-collapse__content{grid-template-rows:1fr;overflow:visible}.tedi-collapse__extender{visibility:visible}}\n"], dependencies: [{ kind: "component", type: CollapseButtonComponent, selector: "button[tedi-collapse-button]", inputs: ["open", "openText", "closeText", "hideText", "arrowType", "size", "inverted", "underline", "ariaControls", "ariaLabel", "id"], outputs: ["openChange"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
5417
5478
|
}
|
|
5418
5479
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.24", ngImport: i0, type: CollapseComponent, decorators: [{
|
|
5419
5480
|
type: Component,
|
|
5420
|
-
args: [{ standalone: true, selector: "tedi-collapse", imports: [CollapseButtonComponent], changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, template: "<div\n class=\"tedi-collapse\"\n [class.tedi-collapse--open]=\"isOpen() === true\"\n [class.tedi-collapse--inverted]=\"isInvertedActive()\"\n>\n <button\n tedi-collapse-button\n [open]=\"isOpen()\"\n [openText]=\"openText()\"\n [closeText]=\"closeText()\"\n [hideText]=\"hideCollapseText()\"\n [arrowType]=\"arrowType()\"\n [size]=\"size()\"\n [inverted]=\"inverted()\"\n [ariaControls]=\"collapseContentId\"\n (openChange)=\"isOpen.set($event)\"\n ></button>\n <div class=\"tedi-collapse__content\" [id]=\"collapseContentId\">\n <div class=\"tedi-collapse__extender\">\n <ng-content></ng-content>\n </div>\n </div>\n</div>\n", styles: [":host{display:block}.tedi-collapse--inverted{color:var(--general-text-white)}.tedi-collapse__extender{visibility:hidden;min-height:0;padding-top:var(--tedi-dimensions-05);transition:visibility .3s}.tedi-collapse__content{display:grid;grid-template-rows:0fr;overflow:hidden;transition:grid-template-rows .3s}.tedi-collapse--open>.tedi-collapse__content{grid-template-rows:1fr}.tedi-collapse--open>.tedi-collapse__content .tedi-collapse__extender{visibility:visible}\n"] }]
|
|
5481
|
+
args: [{ standalone: true, selector: "tedi-collapse", imports: [CollapseButtonComponent], changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, template: "<div\n class=\"tedi-collapse\"\n [class.tedi-collapse--open]=\"isOpen() === true\"\n [class.tedi-collapse--inverted]=\"isInvertedActive()\"\n>\n <button\n tedi-collapse-button\n [open]=\"isOpen()\"\n [openText]=\"openText()\"\n [closeText]=\"closeText()\"\n [hideText]=\"hideCollapseText()\"\n [arrowType]=\"arrowType()\"\n [size]=\"size()\"\n [inverted]=\"inverted()\"\n [ariaControls]=\"collapseContentId\"\n (openChange)=\"isOpen.set($event)\"\n ></button>\n <div class=\"tedi-collapse__content\" [id]=\"collapseContentId\">\n <div class=\"tedi-collapse__extender\">\n <ng-content></ng-content>\n </div>\n </div>\n</div>\n", styles: [":host{display:block}.tedi-collapse--inverted{color:var(--general-text-white)}.tedi-collapse__extender{visibility:hidden;min-height:0;padding-top:var(--tedi-dimensions-05);transition:visibility .3s}.tedi-collapse__content{display:grid;grid-template-rows:0fr;overflow:hidden;transition:grid-template-rows .3s}.tedi-collapse--open>.tedi-collapse__content{grid-template-rows:1fr}.tedi-collapse--open>.tedi-collapse__content .tedi-collapse__extender{visibility:visible}@media print{.tedi-collapse__content,.tedi-collapse__extender{transition:none}.tedi-collapse__content{grid-template-rows:1fr;overflow:visible}.tedi-collapse__extender{visibility:visible}}\n"] }]
|
|
5421
5482
|
}], propDecorators: { openText: [{ type: i0.Input, args: [{ isSignal: true, alias: "openText", required: false }] }], closeText: [{ type: i0.Input, args: [{ isSignal: true, alias: "closeText", required: false }] }], defaultOpen: [{ type: i0.Input, args: [{ isSignal: true, alias: "defaultOpen", required: false }] }], hideCollapseText: [{ type: i0.Input, args: [{ isSignal: true, alias: "hideCollapseText", required: false }] }], arrowType: [{ type: i0.Input, args: [{ isSignal: true, alias: "arrowType", required: false }] }], size: [{ type: i0.Input, args: [{ isSignal: true, alias: "size", required: false }] }], inverted: [{ type: i0.Input, args: [{ isSignal: true, alias: "inverted", required: false }] }] } });
|
|
5422
5483
|
|
|
5423
5484
|
/**
|
|
@@ -21002,11 +21063,13 @@ class FooterComponent {
|
|
|
21002
21063
|
breakpointService = inject(BreakpointService);
|
|
21003
21064
|
mobileLayout = this.breakpointService.isBelowBreakpoint("sm");
|
|
21004
21065
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.24", ngImport: i0, type: FooterComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
21005
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.24", type: FooterComponent, isStandalone: true, selector: "tedi-footer", ngImport: i0, template: "<footer class=\"tedi-footer\">\n <div\n class=\"tedi-footer__container\"\n [class.tedi-footer--mobile]=\"mobileLayout()\"\n >\n <ng-content select=\"[tedi-footer-start]\" />\n <div class=\"tedi-footer__center\">\n <ng-content select=\"tedi-footer-body\" />\n </div>\n <ng-content select=\"[tedi-footer-end]\" />\n </div>\n <ng-content select=\"tedi-footer-bottom\" />\n</footer>\n", styles: [".tedi-footer{background-color:var(--footer-background)}.tedi-footer__container{display:flex}.tedi-footer__center{width:100%}.tedi-footer--mobile{display:flex;flex-direction:column}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
21066
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.24", type: FooterComponent, isStandalone: true, selector: "tedi-footer", host: { classAttribute: "no-print" }, ngImport: i0, template: "<footer class=\"tedi-footer\">\n <div\n class=\"tedi-footer__container\"\n [class.tedi-footer--mobile]=\"mobileLayout()\"\n >\n <ng-content select=\"[tedi-footer-start]\" />\n <div class=\"tedi-footer__center\">\n <ng-content select=\"tedi-footer-body\" />\n </div>\n <ng-content select=\"[tedi-footer-end]\" />\n </div>\n <ng-content select=\"tedi-footer-bottom\" />\n</footer>\n", styles: [".tedi-footer{background-color:var(--footer-background)}.tedi-footer__container{display:flex}.tedi-footer__center{width:100%}.tedi-footer--mobile{display:flex;flex-direction:column}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
21006
21067
|
}
|
|
21007
21068
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.24", ngImport: i0, type: FooterComponent, decorators: [{
|
|
21008
21069
|
type: Component,
|
|
21009
|
-
args: [{ standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, selector: "tedi-footer",
|
|
21070
|
+
args: [{ standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, selector: "tedi-footer", host: {
|
|
21071
|
+
class: "no-print",
|
|
21072
|
+
}, template: "<footer class=\"tedi-footer\">\n <div\n class=\"tedi-footer__container\"\n [class.tedi-footer--mobile]=\"mobileLayout()\"\n >\n <ng-content select=\"[tedi-footer-start]\" />\n <div class=\"tedi-footer__center\">\n <ng-content select=\"tedi-footer-body\" />\n </div>\n <ng-content select=\"[tedi-footer-end]\" />\n </div>\n <ng-content select=\"tedi-footer-bottom\" />\n</footer>\n", styles: [".tedi-footer{background-color:var(--footer-background)}.tedi-footer__container{display:flex}.tedi-footer__center{width:100%}.tedi-footer--mobile{display:flex;flex-direction:column}\n"] }]
|
|
21010
21073
|
}] });
|
|
21011
21074
|
|
|
21012
21075
|
class FooterBodyComponent {
|
|
@@ -21172,12 +21235,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.24", ngImpo
|
|
|
21172
21235
|
|
|
21173
21236
|
class HeaderComponent {
|
|
21174
21237
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.24", ngImport: i0, type: HeaderComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
21175
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.24", type: HeaderComponent, isStandalone: true, selector: "header[tedi-header]", host: { classAttribute: "tedi-header" }, ngImport: i0, template: "<ng-content select=\"tedi-header-top\"></ng-content>\n<div class=\"tedi-header__main\">\n <ng-content select=\"button[tedi-sidenav-toggle]\"></ng-content>\n <div class=\"tedi-header__main--content\">\n <ng-content></ng-content>\n </div>\n</div>\n<ng-content select=\"tedi-header-bottom\"></ng-content>\n", styles: [".tedi-header{display:block;box-shadow:0 1px 5px 0 var(--tedi-alpha-20)}.tedi-header__main{display:flex;min-height:var(--layout-header-height);overflow:auto;background:var(--header-background)}.tedi-header__main--content{display:flex;gap:var(--layout-header-items-right-gutter-x);align-items:center;justify-content:space-between;width:100%;min-height:var(--layout-header-height);padding:var(--layout-header-padding-y) var(--layout-header-padding-right) var(--layout-header-padding-y) var(--layout-header-padding-left)}.tedi-header__link-button.tedi-link{display:inline-flex;gap:var(--link-inner-spacing-x);align-items:center;padding:0;font-size:var(--body-regular-size);white-space:nowrap;background-color:transparent;border:0}.tedi-header__link-button.tedi-link,.tedi-header__link-button.tedi-link:hover:not(:disabled,[aria-disabled=true]),.tedi-header__link-button.tedi-link:active:not(:disabled,[aria-disabled=true]),.tedi-header__link-button.tedi-link:focus-visible:not(:disabled){color:var(--header-dropdown-default)}.tedi-header__link-button.tedi-link:hover:not(:disabled,[aria-disabled=true]){color:var(--header-dropdown-hover)}.tedi-header__link-button.tedi-link:hover:not(:disabled,[aria-disabled=true]) span{text-decoration:underline!important}.tedi-header__link-button.tedi-link:active:not(:disabled,[aria-disabled=true]){color:var(--header-dropdown-active)}.tedi-header__link-button.tedi-link:focus-visible:not(:disabled){color:var(--header-dropdown-focus)}.tedi-header__link-button.tedi-link span{text-decoration:none!important}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
21238
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.24", type: HeaderComponent, isStandalone: true, selector: "header[tedi-header]", host: { classAttribute: "tedi-header no-print" }, ngImport: i0, template: "<ng-content select=\"tedi-header-top\"></ng-content>\n<div class=\"tedi-header__main\">\n <ng-content select=\"button[tedi-sidenav-toggle]\"></ng-content>\n <div class=\"tedi-header__main--content\">\n <ng-content></ng-content>\n </div>\n</div>\n<ng-content select=\"tedi-header-bottom\"></ng-content>\n", styles: [".tedi-header{display:block;box-shadow:0 1px 5px 0 var(--tedi-alpha-20)}.tedi-header__main{display:flex;min-height:var(--layout-header-height);overflow:auto;background:var(--header-background)}.tedi-header__main--content{display:flex;gap:var(--layout-header-items-right-gutter-x);align-items:center;justify-content:space-between;width:100%;min-height:var(--layout-header-height);padding:var(--layout-header-padding-y) var(--layout-header-padding-right) var(--layout-header-padding-y) var(--layout-header-padding-left)}.tedi-header__link-button.tedi-link{display:inline-flex;gap:var(--link-inner-spacing-x);align-items:center;padding:0;font-size:var(--body-regular-size);white-space:nowrap;background-color:transparent;border:0}.tedi-header__link-button.tedi-link,.tedi-header__link-button.tedi-link:hover:not(:disabled,[aria-disabled=true]),.tedi-header__link-button.tedi-link:active:not(:disabled,[aria-disabled=true]),.tedi-header__link-button.tedi-link:focus-visible:not(:disabled){color:var(--header-dropdown-default)}.tedi-header__link-button.tedi-link:hover:not(:disabled,[aria-disabled=true]){color:var(--header-dropdown-hover)}.tedi-header__link-button.tedi-link:hover:not(:disabled,[aria-disabled=true]) span{text-decoration:underline!important}.tedi-header__link-button.tedi-link:active:not(:disabled,[aria-disabled=true]){color:var(--header-dropdown-active)}.tedi-header__link-button.tedi-link:focus-visible:not(:disabled){color:var(--header-dropdown-focus)}.tedi-header__link-button.tedi-link span{text-decoration:none!important}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
21176
21239
|
}
|
|
21177
21240
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.24", ngImport: i0, type: HeaderComponent, decorators: [{
|
|
21178
21241
|
type: Component,
|
|
21179
21242
|
args: [{ selector: "header[tedi-header]", standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, host: {
|
|
21180
|
-
class: "tedi-header",
|
|
21243
|
+
class: "tedi-header no-print",
|
|
21181
21244
|
}, template: "<ng-content select=\"tedi-header-top\"></ng-content>\n<div class=\"tedi-header__main\">\n <ng-content select=\"button[tedi-sidenav-toggle]\"></ng-content>\n <div class=\"tedi-header__main--content\">\n <ng-content></ng-content>\n </div>\n</div>\n<ng-content select=\"tedi-header-bottom\"></ng-content>\n", styles: [".tedi-header{display:block;box-shadow:0 1px 5px 0 var(--tedi-alpha-20)}.tedi-header__main{display:flex;min-height:var(--layout-header-height);overflow:auto;background:var(--header-background)}.tedi-header__main--content{display:flex;gap:var(--layout-header-items-right-gutter-x);align-items:center;justify-content:space-between;width:100%;min-height:var(--layout-header-height);padding:var(--layout-header-padding-y) var(--layout-header-padding-right) var(--layout-header-padding-y) var(--layout-header-padding-left)}.tedi-header__link-button.tedi-link{display:inline-flex;gap:var(--link-inner-spacing-x);align-items:center;padding:0;font-size:var(--body-regular-size);white-space:nowrap;background-color:transparent;border:0}.tedi-header__link-button.tedi-link,.tedi-header__link-button.tedi-link:hover:not(:disabled,[aria-disabled=true]),.tedi-header__link-button.tedi-link:active:not(:disabled,[aria-disabled=true]),.tedi-header__link-button.tedi-link:focus-visible:not(:disabled){color:var(--header-dropdown-default)}.tedi-header__link-button.tedi-link:hover:not(:disabled,[aria-disabled=true]){color:var(--header-dropdown-hover)}.tedi-header__link-button.tedi-link:hover:not(:disabled,[aria-disabled=true]) span{text-decoration:underline!important}.tedi-header__link-button.tedi-link:active:not(:disabled,[aria-disabled=true]){color:var(--header-dropdown-active)}.tedi-header__link-button.tedi-link:focus-visible:not(:disabled){color:var(--header-dropdown-focus)}.tedi-header__link-button.tedi-link span{text-decoration:none!important}\n"] }]
|
|
21182
21245
|
}] });
|
|
21183
21246
|
|
|
@@ -22348,7 +22411,11 @@ class SideNavComponent {
|
|
|
22348
22411
|
}, { injector: this.injector });
|
|
22349
22412
|
}
|
|
22350
22413
|
classes = computed(() => {
|
|
22351
|
-
const classList = [
|
|
22414
|
+
const classList = [
|
|
22415
|
+
"tedi-sidenav",
|
|
22416
|
+
"no-print",
|
|
22417
|
+
`tedi-sidenav--${this.size()}`,
|
|
22418
|
+
];
|
|
22352
22419
|
if (this.dividers()) {
|
|
22353
22420
|
classList.push("tedi-sidenav--dividers");
|
|
22354
22421
|
}
|
|
@@ -23754,6 +23821,15 @@ class TabsListComponent {
|
|
|
23754
23821
|
overflowMode = input("dropdown", ...(ngDevMode ? [{ debugName: "overflowMode" }] : []));
|
|
23755
23822
|
/** Label for the overflow dropdown trigger. Defaults to the `more` translation. */
|
|
23756
23823
|
dropdownLabel = input(...(ngDevMode ? [undefined, { debugName: "dropdownLabel" }] : []));
|
|
23824
|
+
/**
|
|
23825
|
+
* Controls the visibility of the tablist when printing.
|
|
23826
|
+
* - `show`: the tablist is printed (default), no print class is applied
|
|
23827
|
+
* - `hide`: the tablist is left out of the printed output
|
|
23828
|
+
*
|
|
23829
|
+
* `tediPrint` on the same element composes with this: `tediPrint="show"`
|
|
23830
|
+
* wins over `printVisibility="hide"`, matching the core `show-print` rule.
|
|
23831
|
+
*/
|
|
23832
|
+
printVisibility = input("show", ...(ngDevMode ? [{ debugName: "printVisibility" }] : []));
|
|
23757
23833
|
listRef = viewChild.required("list");
|
|
23758
23834
|
triggers = contentChildren(TabsTriggerComponent, ...(ngDevMode ? [{ debugName: "triggers" }] : []));
|
|
23759
23835
|
isOverflowing = signal(false, ...(ngDevMode ? [{ debugName: "isOverflowing" }] : []));
|
|
@@ -23849,7 +23925,7 @@ class TabsListComponent {
|
|
|
23849
23925
|
this.isOverflowing.set(naturalWidth > wrapper.clientWidth);
|
|
23850
23926
|
}
|
|
23851
23927
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.24", ngImport: i0, type: TabsListComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
23852
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.24", type: TabsListComponent, isStandalone: true, selector: "tedi-tabs-list", inputs: { ariaLabel: { classPropertyName: "ariaLabel", publicName: "aria-label", isSignal: true, isRequired: false, transformFunction: null }, ariaLabelledby: { classPropertyName: "ariaLabelledby", publicName: "aria-labelledby", isSignal: true, isRequired: false, transformFunction: null }, overflowMode: { classPropertyName: "overflowMode", publicName: "overflowMode", isSignal: true, isRequired: false, transformFunction: null }, dropdownLabel: { classPropertyName: "dropdownLabel", publicName: "dropdownLabel", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class.tedi-tabs-list--fade-start": "overflowMode() === 'scroll' && canScrollStart()", "class.tedi-tabs-list--fade-end": "overflowMode() === 'scroll' && canScrollEnd()" }, classAttribute: "tedi-tabs-list" }, queries: [{ propertyName: "triggers", predicate: TabsTriggerComponent, isSignal: true }], viewQueries: [{ propertyName: "listRef", first: true, predicate: ["list"], descendants: true, isSignal: true }], ngImport: i0, template: "<div\n #list\n role=\"tablist\"\n data-name=\"tabs-list\"\n class=\"tedi-tabs-list__items\"\n [class.tedi-tabs-list__items--overflow]=\"showMore()\"\n [class.tedi-tabs-list__items--scroll]=\"overflowMode() === 'scroll'\"\n [attr.aria-label]=\"ariaLabel()\"\n [attr.aria-labelledby]=\"ariaLabelledby()\"\n (scroll)=\"updateScrollFade()\"\n>\n <ng-content />\n</div>\n\n@if (showMore()) {\n <div class=\"tedi-tabs-list__more\">\n <tedi-dropdown position=\"bottom-end\">\n <button\n type=\"button\"\n tedi-dropdown-trigger\n class=\"tedi-tabs-list__more-btn\"\n >\n {{ dropdownLabel() || (\"more\" | tediTranslate) }}\n <tedi-icon name=\"expand_more\" [size]=\"18\" color=\"inherit\" />\n </button>\n <tedi-dropdown-content dropdownRole=\"menu\">\n @for (item of dropdownItems(); track item.id) {\n <li\n tedi-dropdown-item\n [value]=\"item.id\"\n [disabled]=\"item.disabled\"\n [clipContent]=\"false\"\n [attr.aria-label]=\"item.trigger.label\"\n (itemSelect)=\"selectTab(item.id)\"\n >\n <span [tediTabsOverflowContent]=\"item.trigger\"></span>\n </li>\n }\n </tedi-dropdown-content>\n </tedi-dropdown>\n </div>\n}\n", styles: [".tedi-tabs-list{position:relative;display:flex;overflow:hidden;background:var(--tab-background);border-top-left-radius:var(--tab-top-radius);border-top-right-radius:var(--tab-top-radius)}.tedi-tabs-list--fade-start:before,.tedi-tabs-list--fade-end:after{position:absolute;top:0;bottom:0;z-index:1;width:3rem;pointer-events:none;content:\"\"}.tedi-tabs-list--fade-start:before{left:0;background:linear-gradient(to right,var(--tab-background) 10%,transparent 80%)}.tedi-tabs-list--fade-end:after{right:0;background:linear-gradient(to left,var(--tab-background) 10%,transparent 80%)}.tedi-tabs-list__items{display:flex;flex:1;min-width:0;overflow:hidden}.tedi-tabs-list__items--overflow .tedi-tabs-trigger:not(.tedi-tabs-trigger--selected){display:none}.tedi-tabs-list__items--overflow .tedi-tabs-trigger--selected{flex-grow:1;min-width:0}.tedi-tabs-list__items--scroll{overflow-x:auto}.tedi-tabs-list__more{display:flex;flex-shrink:0}.tedi-tabs-list__more-btn{--_tab-background: var(--tab-item-default-background);--_tab-color: var(--tab-item-default-text);display:inline-flex;gap:var(--tab-inner-spacing);align-items:center;justify-content:center;padding:var(--tab-spacing-y) var(--tab-spacing-x);font-size:var(--body-regular-size);color:var(--_tab-color);white-space:nowrap;cursor:pointer;background:var(--_tab-background);border:none}.tedi-tabs-list__more-btn:hover{--_tab-background: var(--tab-item-hover-background);--_tab-color: var(--tab-item-hover-text)}.tedi-tabs-list__more-btn:focus-visible{outline:none;box-shadow:inset 0 0 0 var(--tedi-borders-02) var(--general-border-brand)}.tedi-tabs-list__more-btn:active{--_tab-background: var(--tab-item-active-background);--_tab-color: var(--tab-item-active-text)}\n"], dependencies: [{ kind: "component", type: IconComponent, selector: "tedi-icon", inputs: ["name", "size", "color", "background", "variant", "type", "label"] }, { kind: "component", type: DropdownComponent, selector: "tedi-dropdown", inputs: ["value", "position", "preventOverflow", "offset", "hideOnScroll"], outputs: ["valueChange"] }, { kind: "directive", type: DropdownTriggerDirective, selector: "[tedi-dropdown-trigger]", inputs: ["ariaHaspopup"] }, { kind: "component", type: DropdownContentComponent, selector: "tedi-dropdown-content", inputs: ["dropdownRole"] }, { kind: "component", type: DropdownItemComponent, selector: "li[tedi-dropdown-item]", inputs: ["value", "disabled", "interactiveContent", "clipContent", "closeOnSelect"], outputs: ["itemSelect"] }, { kind: "directive", type: TabsOverflowContentDirective, selector: "[tediTabsOverflowContent]", inputs: ["tediTabsOverflowContent"] }, { kind: "pipe", type: TediTranslationPipe, name: "tediTranslate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
23928
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.24", type: TabsListComponent, isStandalone: true, selector: "tedi-tabs-list", inputs: { ariaLabel: { classPropertyName: "ariaLabel", publicName: "aria-label", isSignal: true, isRequired: false, transformFunction: null }, ariaLabelledby: { classPropertyName: "ariaLabelledby", publicName: "aria-labelledby", isSignal: true, isRequired: false, transformFunction: null }, overflowMode: { classPropertyName: "overflowMode", publicName: "overflowMode", isSignal: true, isRequired: false, transformFunction: null }, dropdownLabel: { classPropertyName: "dropdownLabel", publicName: "dropdownLabel", isSignal: true, isRequired: false, transformFunction: null }, printVisibility: { classPropertyName: "printVisibility", publicName: "printVisibility", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class.no-print": "printVisibility() === 'hide'", "class.tedi-tabs-list--fade-start": "overflowMode() === 'scroll' && canScrollStart()", "class.tedi-tabs-list--fade-end": "overflowMode() === 'scroll' && canScrollEnd()" }, classAttribute: "tedi-tabs-list" }, queries: [{ propertyName: "triggers", predicate: TabsTriggerComponent, isSignal: true }], viewQueries: [{ propertyName: "listRef", first: true, predicate: ["list"], descendants: true, isSignal: true }], ngImport: i0, template: "<div\n #list\n role=\"tablist\"\n data-name=\"tabs-list\"\n class=\"tedi-tabs-list__items\"\n [class.tedi-tabs-list__items--overflow]=\"showMore()\"\n [class.tedi-tabs-list__items--scroll]=\"overflowMode() === 'scroll'\"\n [attr.aria-label]=\"ariaLabel()\"\n [attr.aria-labelledby]=\"ariaLabelledby()\"\n (scroll)=\"updateScrollFade()\"\n>\n <ng-content />\n</div>\n\n@if (showMore()) {\n <div class=\"tedi-tabs-list__more\">\n <tedi-dropdown position=\"bottom-end\">\n <button\n type=\"button\"\n tedi-dropdown-trigger\n class=\"tedi-tabs-list__more-btn\"\n >\n {{ dropdownLabel() || (\"more\" | tediTranslate) }}\n <tedi-icon name=\"expand_more\" [size]=\"18\" color=\"inherit\" />\n </button>\n <tedi-dropdown-content dropdownRole=\"menu\">\n @for (item of dropdownItems(); track item.id) {\n <li\n tedi-dropdown-item\n [value]=\"item.id\"\n [disabled]=\"item.disabled\"\n [clipContent]=\"false\"\n [attr.aria-label]=\"item.trigger.label\"\n (itemSelect)=\"selectTab(item.id)\"\n >\n <span [tediTabsOverflowContent]=\"item.trigger\"></span>\n </li>\n }\n </tedi-dropdown-content>\n </tedi-dropdown>\n </div>\n}\n", styles: [".tedi-tabs-list{position:relative;display:flex;overflow:hidden;background:var(--tab-background);border-top-left-radius:var(--tab-top-radius);border-top-right-radius:var(--tab-top-radius)}.tedi-tabs-list--fade-start:before,.tedi-tabs-list--fade-end:after{position:absolute;top:0;bottom:0;z-index:1;width:3rem;pointer-events:none;content:\"\"}.tedi-tabs-list--fade-start:before{left:0;background:linear-gradient(to right,var(--tab-background) 10%,transparent 80%)}.tedi-tabs-list--fade-end:after{right:0;background:linear-gradient(to left,var(--tab-background) 10%,transparent 80%)}.tedi-tabs-list__items{display:flex;flex:1;min-width:0;overflow:hidden}.tedi-tabs-list__items--overflow .tedi-tabs-trigger:not(.tedi-tabs-trigger--selected){display:none}.tedi-tabs-list__items--overflow .tedi-tabs-trigger--selected{flex-grow:1;min-width:0}.tedi-tabs-list__items--scroll{overflow-x:auto}.tedi-tabs-list__more{display:flex;flex-shrink:0}.tedi-tabs-list__more-btn{--_tab-background: var(--tab-item-default-background);--_tab-color: var(--tab-item-default-text);display:inline-flex;gap:var(--tab-inner-spacing);align-items:center;justify-content:center;padding:var(--tab-spacing-y) var(--tab-spacing-x);font-size:var(--body-regular-size);color:var(--_tab-color);white-space:nowrap;cursor:pointer;background:var(--_tab-background);border:none}.tedi-tabs-list__more-btn:hover{--_tab-background: var(--tab-item-hover-background);--_tab-color: var(--tab-item-hover-text)}.tedi-tabs-list__more-btn:focus-visible{outline:none;box-shadow:inset 0 0 0 var(--tedi-borders-02) var(--general-border-brand)}.tedi-tabs-list__more-btn:active{--_tab-background: var(--tab-item-active-background);--_tab-color: var(--tab-item-active-text)}\n"], dependencies: [{ kind: "component", type: IconComponent, selector: "tedi-icon", inputs: ["name", "size", "color", "background", "variant", "type", "label"] }, { kind: "component", type: DropdownComponent, selector: "tedi-dropdown", inputs: ["value", "position", "preventOverflow", "offset", "hideOnScroll"], outputs: ["valueChange"] }, { kind: "directive", type: DropdownTriggerDirective, selector: "[tedi-dropdown-trigger]", inputs: ["ariaHaspopup"] }, { kind: "component", type: DropdownContentComponent, selector: "tedi-dropdown-content", inputs: ["dropdownRole"] }, { kind: "component", type: DropdownItemComponent, selector: "li[tedi-dropdown-item]", inputs: ["value", "disabled", "interactiveContent", "clipContent", "closeOnSelect"], outputs: ["itemSelect"] }, { kind: "directive", type: TabsOverflowContentDirective, selector: "[tediTabsOverflowContent]", inputs: ["tediTabsOverflowContent"] }, { kind: "pipe", type: TediTranslationPipe, name: "tediTranslate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
23853
23929
|
}
|
|
23854
23930
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.24", ngImport: i0, type: TabsListComponent, decorators: [{
|
|
23855
23931
|
type: Component,
|
|
@@ -23863,10 +23939,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.24", ngImpo
|
|
|
23863
23939
|
TabsOverflowContentDirective,
|
|
23864
23940
|
], encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, host: {
|
|
23865
23941
|
class: "tedi-tabs-list",
|
|
23942
|
+
"[class.no-print]": "printVisibility() === 'hide'",
|
|
23866
23943
|
"[class.tedi-tabs-list--fade-start]": "overflowMode() === 'scroll' && canScrollStart()",
|
|
23867
23944
|
"[class.tedi-tabs-list--fade-end]": "overflowMode() === 'scroll' && canScrollEnd()",
|
|
23868
23945
|
}, template: "<div\n #list\n role=\"tablist\"\n data-name=\"tabs-list\"\n class=\"tedi-tabs-list__items\"\n [class.tedi-tabs-list__items--overflow]=\"showMore()\"\n [class.tedi-tabs-list__items--scroll]=\"overflowMode() === 'scroll'\"\n [attr.aria-label]=\"ariaLabel()\"\n [attr.aria-labelledby]=\"ariaLabelledby()\"\n (scroll)=\"updateScrollFade()\"\n>\n <ng-content />\n</div>\n\n@if (showMore()) {\n <div class=\"tedi-tabs-list__more\">\n <tedi-dropdown position=\"bottom-end\">\n <button\n type=\"button\"\n tedi-dropdown-trigger\n class=\"tedi-tabs-list__more-btn\"\n >\n {{ dropdownLabel() || (\"more\" | tediTranslate) }}\n <tedi-icon name=\"expand_more\" [size]=\"18\" color=\"inherit\" />\n </button>\n <tedi-dropdown-content dropdownRole=\"menu\">\n @for (item of dropdownItems(); track item.id) {\n <li\n tedi-dropdown-item\n [value]=\"item.id\"\n [disabled]=\"item.disabled\"\n [clipContent]=\"false\"\n [attr.aria-label]=\"item.trigger.label\"\n (itemSelect)=\"selectTab(item.id)\"\n >\n <span [tediTabsOverflowContent]=\"item.trigger\"></span>\n </li>\n }\n </tedi-dropdown-content>\n </tedi-dropdown>\n </div>\n}\n", styles: [".tedi-tabs-list{position:relative;display:flex;overflow:hidden;background:var(--tab-background);border-top-left-radius:var(--tab-top-radius);border-top-right-radius:var(--tab-top-radius)}.tedi-tabs-list--fade-start:before,.tedi-tabs-list--fade-end:after{position:absolute;top:0;bottom:0;z-index:1;width:3rem;pointer-events:none;content:\"\"}.tedi-tabs-list--fade-start:before{left:0;background:linear-gradient(to right,var(--tab-background) 10%,transparent 80%)}.tedi-tabs-list--fade-end:after{right:0;background:linear-gradient(to left,var(--tab-background) 10%,transparent 80%)}.tedi-tabs-list__items{display:flex;flex:1;min-width:0;overflow:hidden}.tedi-tabs-list__items--overflow .tedi-tabs-trigger:not(.tedi-tabs-trigger--selected){display:none}.tedi-tabs-list__items--overflow .tedi-tabs-trigger--selected{flex-grow:1;min-width:0}.tedi-tabs-list__items--scroll{overflow-x:auto}.tedi-tabs-list__more{display:flex;flex-shrink:0}.tedi-tabs-list__more-btn{--_tab-background: var(--tab-item-default-background);--_tab-color: var(--tab-item-default-text);display:inline-flex;gap:var(--tab-inner-spacing);align-items:center;justify-content:center;padding:var(--tab-spacing-y) var(--tab-spacing-x);font-size:var(--body-regular-size);color:var(--_tab-color);white-space:nowrap;cursor:pointer;background:var(--_tab-background);border:none}.tedi-tabs-list__more-btn:hover{--_tab-background: var(--tab-item-hover-background);--_tab-color: var(--tab-item-hover-text)}.tedi-tabs-list__more-btn:focus-visible{outline:none;box-shadow:inset 0 0 0 var(--tedi-borders-02) var(--general-border-brand)}.tedi-tabs-list__more-btn:active{--_tab-background: var(--tab-item-active-background);--_tab-color: var(--tab-item-active-text)}\n"] }]
|
|
23869
|
-
}], ctorParameters: () => [], propDecorators: { ariaLabel: [{ type: i0.Input, args: [{ isSignal: true, alias: "aria-label", required: false }] }], ariaLabelledby: [{ type: i0.Input, args: [{ isSignal: true, alias: "aria-labelledby", required: false }] }], overflowMode: [{ type: i0.Input, args: [{ isSignal: true, alias: "overflowMode", required: false }] }], dropdownLabel: [{ type: i0.Input, args: [{ isSignal: true, alias: "dropdownLabel", required: false }] }], listRef: [{ type: i0.ViewChild, args: ["list", { isSignal: true }] }], triggers: [{ type: i0.ContentChildren, args: [i0.forwardRef(() => TabsTriggerComponent), { isSignal: true }] }] } });
|
|
23946
|
+
}], ctorParameters: () => [], propDecorators: { ariaLabel: [{ type: i0.Input, args: [{ isSignal: true, alias: "aria-label", required: false }] }], ariaLabelledby: [{ type: i0.Input, args: [{ isSignal: true, alias: "aria-labelledby", required: false }] }], overflowMode: [{ type: i0.Input, args: [{ isSignal: true, alias: "overflowMode", required: false }] }], dropdownLabel: [{ type: i0.Input, args: [{ isSignal: true, alias: "dropdownLabel", required: false }] }], printVisibility: [{ type: i0.Input, args: [{ isSignal: true, alias: "printVisibility", required: false }] }], listRef: [{ type: i0.ViewChild, args: ["list", { isSignal: true }] }], triggers: [{ type: i0.ContentChildren, args: [i0.forwardRef(() => TabsTriggerComponent), { isSignal: true }] }] } });
|
|
23870
23947
|
|
|
23871
23948
|
/**
|
|
23872
23949
|
* A tab panel. When `id` matches a trigger, the panel is only shown while that
|
|
@@ -23914,6 +23991,89 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.24", ngImpo
|
|
|
23914
23991
|
}]
|
|
23915
23992
|
}] });
|
|
23916
23993
|
|
|
23994
|
+
/**
|
|
23995
|
+
* Applies the print helper classes from `@tedi-design-system/core` to the host element.
|
|
23996
|
+
*/
|
|
23997
|
+
class PrintDirective {
|
|
23998
|
+
elementRef = inject(ElementRef);
|
|
23999
|
+
renderer = inject(Renderer2);
|
|
24000
|
+
/**
|
|
24001
|
+
* Controls the visibility of the element when printing.
|
|
24002
|
+
* - `'hide'` — the element is not printed.
|
|
24003
|
+
* - `'show'` — the element opts out of a `no-print` applied to the same
|
|
24004
|
+
* element. It cannot reveal an element that an ancestor hid.
|
|
24005
|
+
*
|
|
24006
|
+
* Leave empty when only the break inputs are needed — the `tediPrint`
|
|
24007
|
+
* attribute still has to be present for the directive to apply.
|
|
24008
|
+
*/
|
|
24009
|
+
tediPrint = input("", ...(ngDevMode ? [{ debugName: "tediPrint" }] : []));
|
|
24010
|
+
/**
|
|
24011
|
+
* Determines how page, column, or region breaks behave before the element.
|
|
24012
|
+
* Uses the CSS `break-before` property values.
|
|
24013
|
+
*/
|
|
24014
|
+
breakBefore = input(...(ngDevMode ? [undefined, { debugName: "breakBefore" }] : []));
|
|
24015
|
+
/**
|
|
24016
|
+
* Determines how page, column, or region breaks behave after the element.
|
|
24017
|
+
* Uses the CSS `break-after` property values.
|
|
24018
|
+
*/
|
|
24019
|
+
breakAfter = input(...(ngDevMode ? [undefined, { debugName: "breakAfter" }] : []));
|
|
24020
|
+
/**
|
|
24021
|
+
* Determines how page, column, or region breaks behave inside the element.
|
|
24022
|
+
* Uses the CSS `break-inside` property values.
|
|
24023
|
+
*/
|
|
24024
|
+
breakInside = input(...(ngDevMode ? [undefined, { debugName: "breakInside" }] : []));
|
|
24025
|
+
classes = computed(() => {
|
|
24026
|
+
const visibility = this.tediPrint();
|
|
24027
|
+
const breakBefore = this.breakBefore();
|
|
24028
|
+
const breakAfter = this.breakAfter();
|
|
24029
|
+
const breakInside = this.breakInside();
|
|
24030
|
+
return [
|
|
24031
|
+
visibility === "hide" && "no-print",
|
|
24032
|
+
visibility === "show" && "show-print",
|
|
24033
|
+
breakBefore && `break-before-${breakBefore}`,
|
|
24034
|
+
breakAfter && `break-after-${breakAfter}`,
|
|
24035
|
+
breakInside && `break-inside-${breakInside}`,
|
|
24036
|
+
].filter((className) => !!className);
|
|
24037
|
+
}, ...(ngDevMode ? [{ debugName: "classes" }] : []));
|
|
24038
|
+
constructor() {
|
|
24039
|
+
/** Classes this directive added itself and is therefore allowed to remove. */
|
|
24040
|
+
let owned = [];
|
|
24041
|
+
/**
|
|
24042
|
+
* Classes are synced through Renderer2 rather than host bindings so the
|
|
24043
|
+
* directive never fights the element's own classes. A host binding takes
|
|
24044
|
+
* precedence over a component's `[class]` binding and would strip classes
|
|
24045
|
+
* that component set — e.g. the `no-print` that buttons apply to
|
|
24046
|
+
* themselves. Here a class that is already on the element is left alone:
|
|
24047
|
+
* the directive only removes what it added.
|
|
24048
|
+
*/
|
|
24049
|
+
afterRenderEffect(() => {
|
|
24050
|
+
const next = this.classes();
|
|
24051
|
+
const element = this.elementRef.nativeElement;
|
|
24052
|
+
for (const className of owned) {
|
|
24053
|
+
if (!next.includes(className)) {
|
|
24054
|
+
this.renderer.removeClass(element, className);
|
|
24055
|
+
}
|
|
24056
|
+
}
|
|
24057
|
+
owned = next.filter((className) => {
|
|
24058
|
+
if (element.classList.contains(className)) {
|
|
24059
|
+
return owned.includes(className);
|
|
24060
|
+
}
|
|
24061
|
+
this.renderer.addClass(element, className);
|
|
24062
|
+
return true;
|
|
24063
|
+
});
|
|
24064
|
+
});
|
|
24065
|
+
}
|
|
24066
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.24", ngImport: i0, type: PrintDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
24067
|
+
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "20.3.24", type: PrintDirective, isStandalone: true, selector: "[tediPrint]", inputs: { tediPrint: { classPropertyName: "tediPrint", publicName: "tediPrint", isSignal: true, isRequired: false, transformFunction: null }, breakBefore: { classPropertyName: "breakBefore", publicName: "breakBefore", isSignal: true, isRequired: false, transformFunction: null }, breakAfter: { classPropertyName: "breakAfter", publicName: "breakAfter", isSignal: true, isRequired: false, transformFunction: null }, breakInside: { classPropertyName: "breakInside", publicName: "breakInside", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0 });
|
|
24068
|
+
}
|
|
24069
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.24", ngImport: i0, type: PrintDirective, decorators: [{
|
|
24070
|
+
type: Directive,
|
|
24071
|
+
args: [{
|
|
24072
|
+
selector: "[tediPrint]",
|
|
24073
|
+
standalone: true,
|
|
24074
|
+
}]
|
|
24075
|
+
}], ctorParameters: () => [], propDecorators: { tediPrint: [{ type: i0.Input, args: [{ isSignal: true, alias: "tediPrint", required: false }] }], breakBefore: [{ type: i0.Input, args: [{ isSignal: true, alias: "breakBefore", required: false }] }], breakAfter: [{ type: i0.Input, args: [{ isSignal: true, alias: "breakAfter", required: false }] }], breakInside: [{ type: i0.Input, args: [{ isSignal: true, alias: "breakInside", required: false }] }] } });
|
|
24076
|
+
|
|
23917
24077
|
class VerticalSpacingItemDirective {
|
|
23918
24078
|
el = inject(ElementRef);
|
|
23919
24079
|
renderer = inject(Renderer2);
|
|
@@ -23971,5 +24131,5 @@ function provideTedi(config = {}) {
|
|
|
23971
24131
|
* Generated bundle index. Do not edit.
|
|
23972
24132
|
*/
|
|
23973
24133
|
|
|
23974
|
-
export { AVAILABLE_LANGUAGES, AccordionComponent, AccordionItemComponent, AccordionItemContentComponent, AccordionItemHeaderComponent, AlertComponent, AttachmentActionsComponent, AttachmentComponent, BREAKPOINTS, BaseButtonDirective, BreadcrumbItemDirective, BreadcrumbSeparatorDirective, BreadcrumbsComponent, BreakpointService, ButtonComponent, ButtonGroupButtonDirective, ButtonGroupComponent, COUNTER_TAG_WIDTH, CalendarComponent, CardButtonComponent, CardComponent, CardContentComponent, CardHeaderComponent, CardIconComponent, CardRowComponent, CarouselComponent, CarouselContentComponent, CarouselFooterComponent, CarouselHeaderComponent, CarouselIndicatorsComponent, CarouselNavigationComponent, CarouselSlideDirective, CheckboxCardComponent, CheckboxCardGroupComponent, CheckboxComponent, CheckboxGroupComponent, ClosingButtonComponent, ColComponent, CollapseButtonComponent, CollapseComponent, DROPDOWN_API, DROPDOWN_CONTENT_API, DateFieldComponent, DatePickerComponent, DropdownComponent, DropdownContentComponent, DropdownItemComponent, DropdownItemValueComponent, DropdownItemValueLabelComponent, DropdownItemValueMetaComponent, DropdownTriggerDirective, EllipsisComponent, EmptyStateComponent, FeedbackTextComponent, FilterComponent, FilterContentDirective, FilterGroupComponent, FilterPrependDirective, FloatingButtonComponent, FooterBodyComponent, FooterBottomComponent, FooterComponent, FooterSectionComponent, FooterSideComponent, FormFieldComponent, FormFieldExtraDirective, HeaderActionsComponent, HeaderBottomComponent, HeaderComponent, HeaderContentComponent, HeaderLanguageComponent, HeaderLoginComponent, HeaderLogoComponent, HeaderLogoDarkDirective, HeaderLogoutComponent, HeaderMobileButtonComponent, HeaderProfileComponent, HeaderRoleComponent, HeaderRoleContentDirective, HeaderRoleNoResultsDirective, HeaderRoleTitleDirective, HeaderSearchComponent, HeaderTopComponent, HeadingWithIconComponent, HideAtDirective, HorizontalPushHandler, HorizontalStepperComponent, HorizontalStepperItemComponent, IconComponent, InfoButtonComponent, InfoTooltipComponent, InputGroupComponent, InputGroupPrefixDirective, InputGroupSuffixDirective, LANGUAGE_COOKIE_NAME, LANGUAGE_FALLBACK_VALUE, LabelComponent, LabelRowComponent, LinkComponent, ListComponent, MODAL_DATA, MODAL_SIZE, ModalComponent, ModalContentComponent, ModalFooterComponent, ModalHeaderComponent, ModalRef, ModalService, NumberFieldComponent, PaginationComponent, PopoverComponent, PopoverContentComponent, PopoverTriggerDirective, ProgressBarComponent, RadioCardComponent, RadioCardGroupComponent, RadioComponent, RadioGroupComponent, RowComponent, ScrollFadeComponent, SearchComponent, SearchFooterActionsComponent, SearchFooterTemplateDirective, SearchSuggestionComponent, SearchSuggestionTemplateDirective, SelectComponent, SelectOptionTemplateDirective, SelectTooltipTemplateDirective, SelectValueTemplateDirective, SeparatorComponent, ShowAtDirective, SideNavComponent, SideNavDropdownComponent, SideNavDropdownGroupComponent, SideNavDropdownItemComponent, SideNavGroupTitleComponent, SideNavItemComponent, SideNavOverlayComponent, SideNavToggleComponent, SkeletonBlockComponent, SkeletonComponent, SliderComponent, SpecialOptionControls, SpinnerComponent, StatusBadgeComponent, StatusIndicatorComponent, TAG_GAP, TEDI_FIELD_CONTEXT, TEDI_FORM_FIELD_CONTROL, TEDI_INPUT_GROUP, TEDI_TABLE_CONTEXT, TEDI_THEME_DEFAULT_TOKEN, TEDI_TRANSLATION_DEFAULT_TOKEN, THEME_CLASS_PREFIX, THEME_COOKIE_NAME, THEME_FALLBACK_VALUE, TOAST_DEFAULT_DURATION, TableOfContentsCollapsibleComponent, TableOfContentsComponent, TableOfContentsItemComponent, TableOfContentsItemSuffixDirective, TabsComponent, TabsContentComponent, TabsListComponent, TabsTriggerComponent, TagComponent, TediPaginationResultsDirective, TediTableColumnsMenuComponent, TediTableComponent, TediTableHeaderButtonComponent, TediTableToolbarComponent, TediTranslationPipe, TediTranslationService, TextComponent, TextFieldComponent, TextGroupComponent, TextGroupLabelComponent, TextGroupValueComponent, TextareaComponent, ThemeService, TimeFieldComponent, TimePickerComponent, TimelineComponent, TimelineDescriptionComponent, TimelineItemComponent, TimelineTimingsBottomDirective, TimelineTitleComponent, ToastComponent, ToastService, ToggleComponent, TooltipComponent, TooltipContentComponent, TooltipTriggerComponent, TruncateComponent, VerticalSpacingDirective, VerticalSpacingItemDirective, addDays, addMonths, addYears, breakpointInput, buildMonthGrid, calculateArrowOffset, calculateVisibleTagCount, computeGroupSpans, controlDescribedBy, cookieSignal, createTablePersistence, deriveControlState, endOfMonth, formatDate, formatLocaleDate, formatLocaleDateHint, formatLocaleDateLong, formatMonthYear, generateUUID, getCardBorderPlacementColor, getDaysInMonth, getFirstDayOfWeek, getFocusableElements, getISOWeek, getMonthNames, getPaddingCssVariables, getPlacementFromPositionChange, getWeekdayNames, groupRowSpan, highlightParts, injectTediTableContext, isAfterDay, isBeforeDay, isDateInRange, isSameDay, isSameMonth, isSameYear, isValidTime, matchAny, matchDate, normalizeTime, parseDate, parseLocaleDate, provideTedi, resolveCardBorderRadius, startOfMonth, startOfWeek, toConnectedPositions, toggleDateInArray, usePagination, warnDeprecated };
|
|
24134
|
+
export { AVAILABLE_LANGUAGES, AccordionComponent, AccordionItemComponent, AccordionItemContentComponent, AccordionItemHeaderComponent, AlertComponent, AttachmentActionsComponent, AttachmentComponent, BREAKPOINTS, BaseButtonDirective, BreadcrumbItemDirective, BreadcrumbSeparatorDirective, BreadcrumbsComponent, BreakpointService, ButtonComponent, ButtonGroupButtonDirective, ButtonGroupComponent, COUNTER_TAG_WIDTH, CalendarComponent, CardButtonComponent, CardComponent, CardContentComponent, CardHeaderComponent, CardIconComponent, CardRowComponent, CarouselComponent, CarouselContentComponent, CarouselFooterComponent, CarouselHeaderComponent, CarouselIndicatorsComponent, CarouselNavigationComponent, CarouselSlideDirective, CheckboxCardComponent, CheckboxCardGroupComponent, CheckboxComponent, CheckboxGroupComponent, ClosingButtonComponent, ColComponent, CollapseButtonComponent, CollapseComponent, DROPDOWN_API, DROPDOWN_CONTENT_API, DateFieldComponent, DatePickerComponent, DropdownComponent, DropdownContentComponent, DropdownItemComponent, DropdownItemValueComponent, DropdownItemValueLabelComponent, DropdownItemValueMetaComponent, DropdownTriggerDirective, EllipsisComponent, EmptyStateComponent, FeedbackTextComponent, FilterComponent, FilterContentDirective, FilterGroupComponent, FilterPrependDirective, FloatingButtonComponent, FooterBodyComponent, FooterBottomComponent, FooterComponent, FooterSectionComponent, FooterSideComponent, FormFieldComponent, FormFieldExtraDirective, HeaderActionsComponent, HeaderBottomComponent, HeaderComponent, HeaderContentComponent, HeaderLanguageComponent, HeaderLoginComponent, HeaderLogoComponent, HeaderLogoDarkDirective, HeaderLogoutComponent, HeaderMobileButtonComponent, HeaderProfileComponent, HeaderRoleComponent, HeaderRoleContentDirective, HeaderRoleNoResultsDirective, HeaderRoleTitleDirective, HeaderSearchComponent, HeaderTopComponent, HeadingWithIconComponent, HideAtDirective, HorizontalPushHandler, HorizontalStepperComponent, HorizontalStepperItemComponent, IconComponent, InfoButtonComponent, InfoTooltipComponent, InputGroupComponent, InputGroupPrefixDirective, InputGroupSuffixDirective, LANGUAGE_COOKIE_NAME, LANGUAGE_FALLBACK_VALUE, LabelComponent, LabelRowComponent, LinkComponent, ListComponent, MODAL_DATA, MODAL_SIZE, ModalComponent, ModalContentComponent, ModalFooterComponent, ModalHeaderComponent, ModalRef, ModalService, NumberFieldComponent, PaginationComponent, PopoverComponent, PopoverContentComponent, PopoverTriggerDirective, PrintDirective, ProgressBarComponent, RadioCardComponent, RadioCardGroupComponent, RadioComponent, RadioGroupComponent, RowComponent, ScrollFadeComponent, SearchComponent, SearchFooterActionsComponent, SearchFooterTemplateDirective, SearchSuggestionComponent, SearchSuggestionTemplateDirective, SelectComponent, SelectOptionTemplateDirective, SelectTooltipTemplateDirective, SelectValueTemplateDirective, SeparatorComponent, ShowAtDirective, SideNavComponent, SideNavDropdownComponent, SideNavDropdownGroupComponent, SideNavDropdownItemComponent, SideNavGroupTitleComponent, SideNavItemComponent, SideNavOverlayComponent, SideNavToggleComponent, SkeletonBlockComponent, SkeletonComponent, SliderComponent, SpecialOptionControls, SpinnerComponent, StatusBadgeComponent, StatusIndicatorComponent, TAG_GAP, TEDI_FIELD_CONTEXT, TEDI_FORM_FIELD_CONTROL, TEDI_INPUT_GROUP, TEDI_TABLE_CONTEXT, TEDI_THEME_DEFAULT_TOKEN, TEDI_TRANSLATION_DEFAULT_TOKEN, THEME_CLASS_PREFIX, THEME_COOKIE_NAME, THEME_FALLBACK_VALUE, TOAST_DEFAULT_DURATION, TableOfContentsCollapsibleComponent, TableOfContentsComponent, TableOfContentsItemComponent, TableOfContentsItemSuffixDirective, TabsComponent, TabsContentComponent, TabsListComponent, TabsTriggerComponent, TagComponent, TediPaginationResultsDirective, TediTableColumnsMenuComponent, TediTableComponent, TediTableHeaderButtonComponent, TediTableToolbarComponent, TediTranslationPipe, TediTranslationService, TextComponent, TextFieldComponent, TextGroupComponent, TextGroupLabelComponent, TextGroupValueComponent, TextareaComponent, ThemeService, TimeFieldComponent, TimePickerComponent, TimelineComponent, TimelineDescriptionComponent, TimelineItemComponent, TimelineTimingsBottomDirective, TimelineTitleComponent, ToastComponent, ToastService, ToggleComponent, TooltipComponent, TooltipContentComponent, TooltipTriggerComponent, TruncateComponent, VerticalSpacingDirective, VerticalSpacingItemDirective, addDays, addMonths, addYears, breakpointInput, buildMonthGrid, calculateArrowOffset, calculateVisibleTagCount, computeGroupSpans, controlDescribedBy, cookieSignal, createTablePersistence, deriveControlState, endOfMonth, formatDate, formatLocaleDate, formatLocaleDateHint, formatLocaleDateLong, formatMonthYear, generateUUID, getCardBorderPlacementColor, getDaysInMonth, getFirstDayOfWeek, getFocusableElements, getISOWeek, getMonthNames, getPaddingCssVariables, getPlacementFromPositionChange, getWeekdayNames, groupRowSpan, highlightParts, injectTediTableContext, isAfterDay, isBeforeDay, isDateInRange, isSameDay, isSameMonth, isSameYear, isValidTime, matchAny, matchDate, normalizeTime, parseDate, parseLocaleDate, provideTedi, resolveCardBorderRadius, startOfMonth, startOfWeek, toConnectedPositions, toggleDateInArray, usePagination, warnDeprecated };
|
|
23975
24135
|
//# sourceMappingURL=tedi-design-system-angular-tedi.mjs.map
|