@tedi-design-system/angular 6.3.0-rc.3 → 6.3.0-rc.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +12 -0
- package/community/components/form/select/select.component.d.ts +3 -0
- package/community/components/form/select/select.component.d.ts.map +1 -1
- package/fesm2022/tedi-design-system-angular-community.mjs +3 -0
- package/fesm2022/tedi-design-system-angular-community.mjs.map +1 -1
- package/fesm2022/tedi-design-system-angular-tedi.mjs +1611 -686
- package/fesm2022/tedi-design-system-angular-tedi.mjs.map +1 -1
- package/package.json +1 -1
- package/tedi/components/cards/accordion/accordion-item/accordion-item.component.d.ts +2 -2
- package/tedi/components/form/index.d.ts +2 -1
- package/tedi/components/form/index.d.ts.map +1 -1
- package/tedi/components/form/select/index.d.ts +3 -0
- package/tedi/components/form/select/index.d.ts.map +1 -0
- package/tedi/components/form/select/select-templates.directive.d.ts +69 -0
- package/tedi/components/form/select/select-templates.directive.d.ts.map +1 -0
- package/tedi/components/form/select/select.component.d.ts +238 -0
- package/tedi/components/form/select/select.component.d.ts.map +1 -0
- package/tedi/components/overlay/dropdown/dropdown-content/dropdown-content.component.d.ts +2 -2
- package/tedi/components/overlay/dropdown/dropdown-content/dropdown-content.component.d.ts.map +1 -1
- package/tedi/components/overlay/dropdown/dropdown-item/dropdown-item.component.d.ts +7 -5
- package/tedi/components/overlay/dropdown/dropdown-item/dropdown-item.component.d.ts.map +1 -1
- package/tedi/components/overlay/dropdown/dropdown-item-value/dropdown-item-value-label.component.d.ts +6 -0
- package/tedi/components/overlay/dropdown/dropdown-item-value/dropdown-item-value-label.component.d.ts.map +1 -0
- package/tedi/components/overlay/dropdown/dropdown-item-value/dropdown-item-value-meta.component.d.ts +6 -0
- package/tedi/components/overlay/dropdown/dropdown-item-value/dropdown-item-value-meta.component.d.ts.map +1 -0
- package/tedi/components/overlay/dropdown/dropdown-item-value/dropdown-item-value.component.d.ts +36 -0
- package/tedi/components/overlay/dropdown/dropdown-item-value/dropdown-item-value.component.d.ts.map +1 -0
- package/tedi/components/overlay/dropdown/dropdown-item-value/index.d.ts +4 -0
- package/tedi/components/overlay/dropdown/dropdown-item-value/index.d.ts.map +1 -0
- package/tedi/components/overlay/dropdown/dropdown.component.d.ts.map +1 -1
- package/tedi/components/overlay/dropdown/dropdown.tokens.d.ts +30 -0
- package/tedi/components/overlay/dropdown/dropdown.tokens.d.ts.map +1 -0
- package/tedi/components/overlay/dropdown/index.d.ts +2 -0
- package/tedi/components/overlay/dropdown/index.d.ts.map +1 -1
- package/tedi/services/translation/translations.d.ts +7 -0
- package/tedi/services/translation/translations.d.ts.map +1 -1
|
@@ -1,15 +1,18 @@
|
|
|
1
1
|
import * as i0 from '@angular/core';
|
|
2
|
-
import { input, computed, ViewEncapsulation, ChangeDetectionStrategy, Component, signal, inject, ElementRef, Directive, Injectable, InjectionToken, REQUEST, PLATFORM_ID, effect, isSignal, Pipe, model, output, Injector, Renderer2,
|
|
2
|
+
import { input, computed, ViewEncapsulation, ChangeDetectionStrategy, Component, signal, inject, ElementRef, Directive, Injectable, InjectionToken, REQUEST, PLATFORM_ID, effect, isSignal, Pipe, model, output, Injector, Renderer2, forwardRef, ViewChild, TemplateRef, viewChild, viewChildren, NgZone, contentChild, HostListener, contentChildren, ContentChild, Optional, Self, HostBinding, Attribute, ViewContainerRef, runInInjectionContext, ContentChildren, afterNextRender, makeEnvironmentProviders } from '@angular/core';
|
|
3
3
|
import * as i1 from '@angular/cdk/layout';
|
|
4
|
-
import * as i1$
|
|
5
|
-
import { DOCUMENT, isPlatformBrowser, isPlatformServer, NgTemplateOutlet, NgClass, NgFor, NgIf
|
|
6
|
-
import
|
|
4
|
+
import * as i1$1 from '@angular/common';
|
|
5
|
+
import { DOCUMENT, isPlatformBrowser, isPlatformServer, NgTemplateOutlet, CommonModule, NgClass, NgFor, NgIf } from '@angular/common';
|
|
6
|
+
import * as i2 from '@angular/cdk/overlay';
|
|
7
|
+
import { Overlay, OverlayConfig, CdkOverlayOrigin, OverlayModule } from '@angular/cdk/overlay';
|
|
7
8
|
import { ComponentPortal } from '@angular/cdk/portal';
|
|
8
|
-
import
|
|
9
|
+
import { LiveAnnouncer, _IdGenerator, CdkTrapFocus } from '@angular/cdk/a11y';
|
|
10
|
+
import * as i1$3 from '@angular/forms';
|
|
9
11
|
import { NG_VALUE_ACCESSOR } from '@angular/forms';
|
|
10
|
-
import * as
|
|
12
|
+
import * as i3 from '@angular/cdk/listbox';
|
|
13
|
+
import { CdkListbox, CdkListboxModule } from '@angular/cdk/listbox';
|
|
14
|
+
import * as i1$2 from 'ngx-float-ui';
|
|
11
15
|
import { NgxFloatUiContentComponent, NgxFloatUiModule } from 'ngx-float-ui';
|
|
12
|
-
import { LiveAnnouncer, CdkTrapFocus, _IdGenerator } from '@angular/cdk/a11y';
|
|
13
16
|
import { trigger, state, transition, style, animate } from '@angular/animations';
|
|
14
17
|
import { RouterLink } from '@angular/router';
|
|
15
18
|
|
|
@@ -356,7 +359,7 @@ const translationsMap = {
|
|
|
356
359
|
},
|
|
357
360
|
clear: {
|
|
358
361
|
description: "For clearing a value",
|
|
359
|
-
components: ["TableFilter", "TextField"],
|
|
362
|
+
components: ["TableFilter", "TextField", "Select"],
|
|
360
363
|
et: "Tühjenda",
|
|
361
364
|
en: "Clear",
|
|
362
365
|
ru: "Очистить",
|
|
@@ -558,25 +561,32 @@ const translationsMap = {
|
|
|
558
561
|
},
|
|
559
562
|
"select.loading": {
|
|
560
563
|
description: "Text when select options are loading",
|
|
561
|
-
components: ["
|
|
564
|
+
components: ["Select"],
|
|
562
565
|
et: "Laadimine...",
|
|
563
566
|
en: "Loading...",
|
|
564
567
|
ru: "Загрузка...",
|
|
565
568
|
},
|
|
566
569
|
"select.no-options": {
|
|
567
570
|
description: "Text when select has no options",
|
|
568
|
-
components: ["
|
|
571
|
+
components: ["Select"],
|
|
569
572
|
et: "Valikud puuduvad",
|
|
570
573
|
en: "No options",
|
|
571
574
|
ru: "Нет вариантов",
|
|
572
575
|
},
|
|
573
576
|
"select.select-all": {
|
|
574
577
|
description: "Text when select has 'select all' option",
|
|
575
|
-
components: ["
|
|
578
|
+
components: ["Select"],
|
|
576
579
|
et: "Vali kõik",
|
|
577
580
|
en: "Select all",
|
|
578
581
|
ru: "Выбрать все",
|
|
579
582
|
},
|
|
583
|
+
"select.search": {
|
|
584
|
+
description: "Placeholder text for search input in searchable select",
|
|
585
|
+
components: ["Select"],
|
|
586
|
+
et: "Otsi...",
|
|
587
|
+
en: "Search...",
|
|
588
|
+
ru: "Искать...",
|
|
589
|
+
},
|
|
580
590
|
"stepper.completed": {
|
|
581
591
|
description: "Label for screen-reader that this step is completed (visually hidden)",
|
|
582
592
|
components: ["StepperNav"],
|
|
@@ -2174,240 +2184,1540 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImpo
|
|
|
2174
2184
|
}, styles: ["input[tedi-checkbox][type=checkbox]{--_checkbox-icon-size: 1.125rem;position:relative;width:var(--form-checkbox-radio-size-responsive);height:var(--form-checkbox-radio-size-responsive);padding:0;margin:0;vertical-align:middle;appearance:none;cursor:pointer;background-color:var(--form-checkbox-radio-default-background-default);border:1px solid var(--form-checkbox-radio-default-border-default);border-radius:var(--form-checkbox-radio-indicator-radius-checkbox)}@media (min-width: 576px){input[tedi-checkbox][type=checkbox]{--_checkbox-icon-size: 1rem}}input[tedi-checkbox][type=checkbox]:not(:disabled):hover{border-color:var(--form-checkbox-radio-default-border-hover);box-shadow:0 0 0 1px var(--form-checkbox-radio-default-border-hover)}input[tedi-checkbox][type=checkbox]:not(:checked):disabled{cursor:not-allowed;background-color:var(--form-general-background-disabled);border-color:var(--form-general-border-disabled)}input[tedi-checkbox][type=checkbox]:checked,input[tedi-checkbox][type=checkbox]:indeterminate{background-color:var(--form-checkbox-radio-default-background-selected);border-color:var(--form-checkbox-radio-default-border-selected)}input[tedi-checkbox][type=checkbox]:checked:disabled,input[tedi-checkbox][type=checkbox]:indeterminate:disabled{cursor:not-allowed;background-color:var(--form-checkbox-radio-default-background-selected-disabled);border-color:var(--form-checkbox-radio-default-border-selected-disabled)}input[tedi-checkbox][type=checkbox]:checked:before,input[tedi-checkbox][type=checkbox]:indeterminate:before{position:absolute;top:50%;left:50%;font-family:Material Symbols Outlined,sans-serif;font-size:var(--_checkbox-icon-size);line-height:1;color:var(--form-checkbox-radio-default-check-indicator-default);content:\"check\";transform:translate(-50%,-50%);-webkit-font-smoothing:antialiased}input[tedi-checkbox][type=checkbox]:checked:before{content:\"check\"}input[tedi-checkbox][type=checkbox]:indeterminate:before{content:\"remove\"}input[tedi-checkbox][type=checkbox]:focus-visible{outline-width:2px;outline-style:solid;outline-offset:2px}input[tedi-checkbox][type=checkbox]:not(:checked,:disabled).tedi-checkbox--invalid,input[tedi-checkbox][type=checkbox]:user-invalid,input[tedi-checkbox][type=checkbox].ng-invalid.ng-touched{border-color:var(--form-general-feedback-error-border)}input[tedi-checkbox][type=checkbox]:not(:checked,:disabled).tedi-checkbox--invalid:hover,input[tedi-checkbox][type=checkbox]:user-invalid:hover,input[tedi-checkbox][type=checkbox].ng-invalid.ng-touched:hover{border-color:var(--form-checkbox-radio-default-border-hover)}input[tedi-checkbox][type=checkbox].tedi-checkbox--large{--_checkbox-icon-size: 1.125rem;width:var(--form-checkbox-radio-size-large);height:var(--form-checkbox-radio-size-large)}\n"] }]
|
|
2175
2185
|
}] });
|
|
2176
2186
|
|
|
2177
|
-
class
|
|
2178
|
-
/**
|
|
2179
|
-
* Axis of separator.
|
|
2180
|
-
*/
|
|
2181
|
-
axis = input("horizontal");
|
|
2182
|
-
/**
|
|
2183
|
-
* Color of separator
|
|
2184
|
-
*/
|
|
2185
|
-
color = input("primary");
|
|
2186
|
-
/**
|
|
2187
|
-
* Separator style variant.
|
|
2188
|
-
*/
|
|
2189
|
-
variant = input();
|
|
2190
|
-
/**
|
|
2191
|
-
* Dot size. Only used when variant is "dot-only".
|
|
2192
|
-
*/
|
|
2193
|
-
dotSize = input();
|
|
2194
|
-
/**
|
|
2195
|
-
* Is dot filled? Only used when variant is "dot-only".
|
|
2196
|
-
*/
|
|
2197
|
-
dotFilled = input(true);
|
|
2187
|
+
class FeedbackTextComponent {
|
|
2198
2188
|
/**
|
|
2199
|
-
*
|
|
2200
|
-
* @default 1
|
|
2189
|
+
* Helper text
|
|
2201
2190
|
*/
|
|
2202
|
-
|
|
2191
|
+
text = input.required();
|
|
2203
2192
|
/**
|
|
2204
|
-
*
|
|
2205
|
-
*
|
|
2206
|
-
* - For vertical axis, spacing is applied to left and right of the separator.
|
|
2193
|
+
* Type of form-helper.
|
|
2194
|
+
* @default hint
|
|
2207
2195
|
*/
|
|
2208
|
-
|
|
2196
|
+
type = input("hint");
|
|
2209
2197
|
/**
|
|
2210
|
-
*
|
|
2211
|
-
*
|
|
2212
|
-
* - For vertical axis, size defines height (when using percentages, then parent container must have height set).
|
|
2213
|
-
* @default 100%
|
|
2198
|
+
* Position of the helper.
|
|
2199
|
+
* @default left
|
|
2214
2200
|
*/
|
|
2215
|
-
|
|
2216
|
-
|
|
2217
|
-
|
|
2218
|
-
|
|
2219
|
-
"tedi-separator",
|
|
2220
|
-
`tedi-separator--${this.color()}`,
|
|
2221
|
-
`tedi-separator--${this.axis()}`,
|
|
2222
|
-
];
|
|
2223
|
-
if (this.variant()) {
|
|
2224
|
-
classList.push(`tedi-separator--${this.variant()}`);
|
|
2225
|
-
}
|
|
2226
|
-
if (this.variant() && this.dotSize()) {
|
|
2227
|
-
classList.push(`tedi-separator--${this.variant()}-${this.dotSize()}`);
|
|
2228
|
-
}
|
|
2229
|
-
if (this.variant() === "dot-only" && this.dotFilled()) {
|
|
2230
|
-
classList.push(`tedi-separator--${this.variant()}-filled`);
|
|
2231
|
-
}
|
|
2232
|
-
else {
|
|
2233
|
-
classList.push(`tedi-separator--${this.variant()}-outlined`);
|
|
2234
|
-
}
|
|
2235
|
-
if (this.thickness()) {
|
|
2236
|
-
classList.push(`tedi-separator--thickness-${this.thickness()}`);
|
|
2237
|
-
}
|
|
2238
|
-
const spacing = this.spacing();
|
|
2239
|
-
if (spacing && typeof spacing === "number") {
|
|
2240
|
-
classList.push(`tedi-separator--spacing-${spacing}`.replace(".", "-"));
|
|
2201
|
+
position = input("left");
|
|
2202
|
+
role = computed(() => {
|
|
2203
|
+
if (this.type() === "valid" || this.type() === "error") {
|
|
2204
|
+
return "alert";
|
|
2241
2205
|
}
|
|
2242
|
-
|
|
2243
|
-
|
|
2244
|
-
|
|
2245
|
-
|
|
2246
|
-
|
|
2247
|
-
if (spacing.bottom) {
|
|
2248
|
-
classList.push(`tedi-separator--bottom-${spacing.bottom}`.replace(".", "-"));
|
|
2249
|
-
}
|
|
2250
|
-
}
|
|
2251
|
-
else {
|
|
2252
|
-
if (spacing.left) {
|
|
2253
|
-
classList.push(`tedi-separator--left-${spacing.left}`.replace(".", "-"));
|
|
2254
|
-
}
|
|
2255
|
-
if (spacing.right) {
|
|
2256
|
-
classList.push(`tedi-separator--right-${spacing.right}`.replace(".", "-"));
|
|
2257
|
-
}
|
|
2258
|
-
}
|
|
2206
|
+
return undefined;
|
|
2207
|
+
});
|
|
2208
|
+
ariaLive = computed(() => {
|
|
2209
|
+
if (this.type() === "error" || this.type() === "valid") {
|
|
2210
|
+
return "assertive";
|
|
2259
2211
|
}
|
|
2260
|
-
return
|
|
2212
|
+
return "polite";
|
|
2261
2213
|
});
|
|
2262
|
-
|
|
2263
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "19.2.15", type: SeparatorComponent, isStandalone: true, selector: "tedi-separator", inputs: { axis: { classPropertyName: "axis", publicName: "axis", isSignal: true, isRequired: false, transformFunction: null }, color: { classPropertyName: "color", publicName: "color", isSignal: true, isRequired: false, transformFunction: null }, variant: { classPropertyName: "variant", publicName: "variant", isSignal: true, isRequired: false, transformFunction: null }, dotSize: { classPropertyName: "dotSize", publicName: "dotSize", isSignal: true, isRequired: false, transformFunction: null }, dotFilled: { classPropertyName: "dotFilled", publicName: "dotFilled", isSignal: true, isRequired: false, transformFunction: null }, thickness: { classPropertyName: "thickness", publicName: "thickness", isSignal: true, isRequired: false, transformFunction: null }, spacing: { classPropertyName: "spacing", publicName: "spacing", isSignal: true, isRequired: false, transformFunction: null }, size: { classPropertyName: "size", publicName: "size", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class": "classes()", "style.width": "variant() === 'dot-only' ? null : axis() === 'horizontal' ? size() : '0px'", "style.height": "variant() === 'dot-only' ? null : axis() === 'vertical' ? size() : '0px'" } }, ngImport: i0, template: "", isInline: true, styles: [".tedi-separator{position:relative;display:block;margin:0;border:0;border-style:solid;border-top-width:1px}@media print{.tedi-separator{filter:grayscale(1)}}.tedi-separator--vertical{border-top-width:0;border-left-width:1px}.tedi-separator--primary{border-color:var(--general-border-primary)}.tedi-separator--secondary{border-color:var(--general-border-secondary)}.tedi-separator--accent{border-color:var(--general-border-accent)}.tedi-separator--block{display:block}.tedi-separator--inline{display:inline}.tedi-separator--dotted:before,.tedi-separator--dotted-small:before{position:absolute;top:1.25rem;width:var(--separator-dotted-dot-lg);height:var(--separator-dotted-dot-lg);content:\"\";background-color:var(--general-border-primary);border-radius:100%;transform:translate(-8px)}@media print{.tedi-separator--dotted:before,.tedi-separator--dotted-small:before{filter:grayscale(1)}}.tedi-separator--dotted.tedi-separator--secondary:before,.tedi-separator--dotted-small.tedi-separator--secondary:before{background-color:var(--general-border-secondary)}.tedi-separator--dotted.tedi-separator--accent:before,.tedi-separator--dotted-small.tedi-separator--accent:before{background-color:var(--general-border-accent)}.tedi-separator--dotted-small:before{top:1.5rem;width:var(--separator-dotted-dot-md);height:var(--separator-dotted-dot-md);transform:translate(-5px)}.tedi-separator--horizontal.tedi-separator--top-0{margin-top:0}.tedi-separator--horizontal.tedi-separator--bottom-0{margin-bottom:0}.tedi-separator--vertical.tedi-separator--left-0{margin-left:0}.tedi-separator--vertical.tedi-separator--right-0{margin-right:0}.tedi-separator--horizontal.tedi-separator--spacing-0:not(.tedi-separator--dot-only){margin-top:0;margin-bottom:0}.tedi-separator--horizontal.tedi-separator--dot-only.tedi-separator--spacing-0,.tedi-separator--vertical.tedi-separator--spacing-0{margin-right:0;margin-left:0}.tedi-separator--horizontal.tedi-separator--top-0-25{margin-top:.25rem}.tedi-separator--horizontal.tedi-separator--bottom-0-25{margin-bottom:.25rem}.tedi-separator--vertical.tedi-separator--left-0-25{margin-left:.25rem}.tedi-separator--vertical.tedi-separator--right-0-25{margin-right:.25rem}.tedi-separator--horizontal.tedi-separator--spacing-0-25:not(.tedi-separator--dot-only){margin-top:.25rem;margin-bottom:.25rem}.tedi-separator--horizontal.tedi-separator--dot-only.tedi-separator--spacing-0-25,.tedi-separator--vertical.tedi-separator--spacing-0-25{margin-right:.25rem;margin-left:.25rem}.tedi-separator--horizontal.tedi-separator--top-0-5{margin-top:.5rem}.tedi-separator--horizontal.tedi-separator--bottom-0-5{margin-bottom:.5rem}.tedi-separator--vertical.tedi-separator--left-0-5{margin-left:.5rem}.tedi-separator--vertical.tedi-separator--right-0-5{margin-right:.5rem}.tedi-separator--horizontal.tedi-separator--spacing-0-5:not(.tedi-separator--dot-only){margin-top:.5rem;margin-bottom:.5rem}.tedi-separator--horizontal.tedi-separator--dot-only.tedi-separator--spacing-0-5,.tedi-separator--vertical.tedi-separator--spacing-0-5{margin-right:.5rem;margin-left:.5rem}.tedi-separator--horizontal.tedi-separator--top-0-75{margin-top:.75rem}.tedi-separator--horizontal.tedi-separator--bottom-0-75{margin-bottom:.75rem}.tedi-separator--vertical.tedi-separator--left-0-75{margin-left:.75rem}.tedi-separator--vertical.tedi-separator--right-0-75{margin-right:.75rem}.tedi-separator--horizontal.tedi-separator--spacing-0-75:not(.tedi-separator--dot-only){margin-top:.75rem;margin-bottom:.75rem}.tedi-separator--horizontal.tedi-separator--dot-only.tedi-separator--spacing-0-75,.tedi-separator--vertical.tedi-separator--spacing-0-75{margin-right:.75rem;margin-left:.75rem}.tedi-separator--horizontal.tedi-separator--top-1{margin-top:1rem}.tedi-separator--horizontal.tedi-separator--bottom-1{margin-bottom:1rem}.tedi-separator--vertical.tedi-separator--left-1{margin-left:1rem}.tedi-separator--vertical.tedi-separator--right-1{margin-right:1rem}.tedi-separator--horizontal.tedi-separator--spacing-1:not(.tedi-separator--dot-only){margin-top:1rem;margin-bottom:1rem}.tedi-separator--horizontal.tedi-separator--dot-only.tedi-separator--spacing-1,.tedi-separator--vertical.tedi-separator--spacing-1{margin-right:1rem;margin-left:1rem}.tedi-separator--horizontal.tedi-separator--top-1-25{margin-top:1.25rem}.tedi-separator--horizontal.tedi-separator--bottom-1-25{margin-bottom:1.25rem}.tedi-separator--vertical.tedi-separator--left-1-25{margin-left:1.25rem}.tedi-separator--vertical.tedi-separator--right-1-25{margin-right:1.25rem}.tedi-separator--horizontal.tedi-separator--spacing-1-25:not(.tedi-separator--dot-only){margin-top:1.25rem;margin-bottom:1.25rem}.tedi-separator--horizontal.tedi-separator--dot-only.tedi-separator--spacing-1-25,.tedi-separator--vertical.tedi-separator--spacing-1-25{margin-right:1.25rem;margin-left:1.25rem}.tedi-separator--horizontal.tedi-separator--top-1-5{margin-top:1.5rem}.tedi-separator--horizontal.tedi-separator--bottom-1-5{margin-bottom:1.5rem}.tedi-separator--vertical.tedi-separator--left-1-5{margin-left:1.5rem}.tedi-separator--vertical.tedi-separator--right-1-5{margin-right:1.5rem}.tedi-separator--horizontal.tedi-separator--spacing-1-5:not(.tedi-separator--dot-only){margin-top:1.5rem;margin-bottom:1.5rem}.tedi-separator--horizontal.tedi-separator--dot-only.tedi-separator--spacing-1-5,.tedi-separator--vertical.tedi-separator--spacing-1-5{margin-right:1.5rem;margin-left:1.5rem}.tedi-separator--horizontal.tedi-separator--top-1-75{margin-top:1.75rem}.tedi-separator--horizontal.tedi-separator--bottom-1-75{margin-bottom:1.75rem}.tedi-separator--vertical.tedi-separator--left-1-75{margin-left:1.75rem}.tedi-separator--vertical.tedi-separator--right-1-75{margin-right:1.75rem}.tedi-separator--horizontal.tedi-separator--spacing-1-75:not(.tedi-separator--dot-only){margin-top:1.75rem;margin-bottom:1.75rem}.tedi-separator--horizontal.tedi-separator--dot-only.tedi-separator--spacing-1-75,.tedi-separator--vertical.tedi-separator--spacing-1-75{margin-right:1.75rem;margin-left:1.75rem}.tedi-separator--horizontal.tedi-separator--top-2{margin-top:2rem}.tedi-separator--horizontal.tedi-separator--bottom-2{margin-bottom:2rem}.tedi-separator--vertical.tedi-separator--left-2{margin-left:2rem}.tedi-separator--vertical.tedi-separator--right-2{margin-right:2rem}.tedi-separator--horizontal.tedi-separator--spacing-2:not(.tedi-separator--dot-only){margin-top:2rem;margin-bottom:2rem}.tedi-separator--horizontal.tedi-separator--dot-only.tedi-separator--spacing-2,.tedi-separator--vertical.tedi-separator--spacing-2{margin-right:2rem;margin-left:2rem}.tedi-separator--horizontal.tedi-separator--top-2-5{margin-top:2.5rem}.tedi-separator--horizontal.tedi-separator--bottom-2-5{margin-bottom:2.5rem}.tedi-separator--vertical.tedi-separator--left-2-5{margin-left:2.5rem}.tedi-separator--vertical.tedi-separator--right-2-5{margin-right:2.5rem}.tedi-separator--horizontal.tedi-separator--spacing-2-5:not(.tedi-separator--dot-only){margin-top:2.5rem;margin-bottom:2.5rem}.tedi-separator--horizontal.tedi-separator--dot-only.tedi-separator--spacing-2-5,.tedi-separator--vertical.tedi-separator--spacing-2-5{margin-right:2.5rem;margin-left:2.5rem}.tedi-separator--horizontal.tedi-separator--top-5{margin-top:5rem}.tedi-separator--horizontal.tedi-separator--bottom-5{margin-bottom:5rem}.tedi-separator--vertical.tedi-separator--left-5{margin-left:5rem}.tedi-separator--vertical.tedi-separator--right-5{margin-right:5rem}.tedi-separator--horizontal.tedi-separator--spacing-5:not(.tedi-separator--dot-only){margin-top:5rem;margin-bottom:5rem}.tedi-separator--horizontal.tedi-separator--dot-only.tedi-separator--spacing-5,.tedi-separator--vertical.tedi-separator--spacing-5{margin-right:5rem;margin-left:5rem}.tedi-separator.tedi-separator--thickness-1{border-top-width:1px}.tedi-separator--vertical.tedi-separator--thickness-1{border-left-width:1px}.tedi-separator.tedi-separator--thickness-2{border-top-width:2px}.tedi-separator--vertical.tedi-separator--thickness-2{border-left-width:2px}.tedi-separator--dot-only{position:relative;display:inline-block;vertical-align:middle;border:none}.tedi-separator--dot-only:before{position:relative;display:block;width:var(--separator-dotted-dot-sm);height:var(--separator-dotted-dot-sm);content:\"\";border-radius:100%}@media print{.tedi-separator--dot-only:before{filter:grayscale(1)}}.tedi-separator--dot-only.tedi-separator--dot-only-extra-small:before{width:var(--separator-dotted-dot-xs);height:var(--separator-dotted-dot-xs)}.tedi-separator--dot-only.tedi-separator--dot-only-small:before{width:var(--separator-dotted-dot-sm);height:var(--separator-dotted-dot-sm)}.tedi-separator--dot-only.tedi-separator--dot-only-medium:before{width:var(--separator-dotted-dot-md);height:var(--separator-dotted-dot-md)}.tedi-separator--dot-only.tedi-separator--dot-only-large:before{width:var(--separator-dotted-dot-lg);height:var(--separator-dotted-dot-lg)}.tedi-separator--dot-only-filled.tedi-separator--primary:before{background-color:var(--general-border-primary)}.tedi-separator--dot-only-filled.tedi-separator--secondary:before{background-color:var(--general-border-secondary)}.tedi-separator--dot-only-filled.tedi-separator--accent:before{background-color:var(--general-border-accent)}.tedi-separator--dot-only-outlined:before{border-style:solid}.tedi-separator--dot-only-outlined.tedi-separator--primary:before{border-color:var(--general-border-primary)}.tedi-separator--dot-only-outlined.tedi-separator--secondary:before{border-color:var(--general-border-secondary)}.tedi-separator--dot-only-outlined.tedi-separator--accent:before{border-color:var(--general-border-accent)}.tedi-separator--dot-only-outlined.tedi-separator--thickness-1:before{border-width:1px}.tedi-separator--dot-only-outlined.tedi-separator--thickness-2:before{border-width:2px}.tedi-separator--horizontal.tedi-separator--dotted:before,.tedi-separator--horizontal.tedi-separator--dotted-small:before{right:0;left:0;margin:0 auto;transform:initial}.tedi-separator--horizontal.tedi-separator--dotted:before{top:calc(var(--separator-dotted-dot-lg) / 2 * -1)}.tedi-separator--horizontal.tedi-separator--dotted-small:before{top:calc(var(--separator-dotted-dot-md) / 2 * -1)}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
2214
|
+
classes = computed(() => {
|
|
2215
|
+
return `tedi-feedback-text tedi-feedback-text--${this.type()} tedi-feedback-text--${this.position()}`;
|
|
2216
|
+
});
|
|
2217
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: FeedbackTextComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
2218
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "19.2.15", type: FeedbackTextComponent, isStandalone: true, selector: "tedi-feedback-text", inputs: { text: { classPropertyName: "text", publicName: "text", isSignal: true, isRequired: true, transformFunction: null }, type: { classPropertyName: "type", publicName: "type", isSignal: true, isRequired: false, transformFunction: null }, position: { classPropertyName: "position", publicName: "position", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class": "classes()", "attr.role": "role()", "attr.aria-live": "ariaLive()" } }, ngImport: i0, template: "{{ text() }}\n", styles: [".tedi-feedback-text{display:block;font-size:var(--body-small-regular-size);color:var(--general-text-tertiary)}.tedi-feedback-text--valid{color:var(--form-general-feedback-success-text)}.tedi-feedback-text--error{color:var(--form-general-feedback-error-text)}.tedi-feedback-text--left{flex-grow:1;text-align:left}.tedi-feedback-text--right{flex-grow:0;text-align:right}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
2264
2219
|
}
|
|
2265
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type:
|
|
2220
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: FeedbackTextComponent, decorators: [{
|
|
2266
2221
|
type: Component,
|
|
2267
|
-
args: [{ selector: "tedi-
|
|
2222
|
+
args: [{ selector: "tedi-feedback-text", standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, host: {
|
|
2268
2223
|
"[class]": "classes()",
|
|
2269
|
-
"[
|
|
2270
|
-
"[
|
|
2271
|
-
}, styles: [".tedi-separator{position:relative;display:block;margin:0;border:0;border-style:solid;border-top-width:1px}@media print{.tedi-separator{filter:grayscale(1)}}.tedi-separator--vertical{border-top-width:0;border-left-width:1px}.tedi-separator--primary{border-color:var(--general-border-primary)}.tedi-separator--secondary{border-color:var(--general-border-secondary)}.tedi-separator--accent{border-color:var(--general-border-accent)}.tedi-separator--block{display:block}.tedi-separator--inline{display:inline}.tedi-separator--dotted:before,.tedi-separator--dotted-small:before{position:absolute;top:1.25rem;width:var(--separator-dotted-dot-lg);height:var(--separator-dotted-dot-lg);content:\"\";background-color:var(--general-border-primary);border-radius:100%;transform:translate(-8px)}@media print{.tedi-separator--dotted:before,.tedi-separator--dotted-small:before{filter:grayscale(1)}}.tedi-separator--dotted.tedi-separator--secondary:before,.tedi-separator--dotted-small.tedi-separator--secondary:before{background-color:var(--general-border-secondary)}.tedi-separator--dotted.tedi-separator--accent:before,.tedi-separator--dotted-small.tedi-separator--accent:before{background-color:var(--general-border-accent)}.tedi-separator--dotted-small:before{top:1.5rem;width:var(--separator-dotted-dot-md);height:var(--separator-dotted-dot-md);transform:translate(-5px)}.tedi-separator--horizontal.tedi-separator--top-0{margin-top:0}.tedi-separator--horizontal.tedi-separator--bottom-0{margin-bottom:0}.tedi-separator--vertical.tedi-separator--left-0{margin-left:0}.tedi-separator--vertical.tedi-separator--right-0{margin-right:0}.tedi-separator--horizontal.tedi-separator--spacing-0:not(.tedi-separator--dot-only){margin-top:0;margin-bottom:0}.tedi-separator--horizontal.tedi-separator--dot-only.tedi-separator--spacing-0,.tedi-separator--vertical.tedi-separator--spacing-0{margin-right:0;margin-left:0}.tedi-separator--horizontal.tedi-separator--top-0-25{margin-top:.25rem}.tedi-separator--horizontal.tedi-separator--bottom-0-25{margin-bottom:.25rem}.tedi-separator--vertical.tedi-separator--left-0-25{margin-left:.25rem}.tedi-separator--vertical.tedi-separator--right-0-25{margin-right:.25rem}.tedi-separator--horizontal.tedi-separator--spacing-0-25:not(.tedi-separator--dot-only){margin-top:.25rem;margin-bottom:.25rem}.tedi-separator--horizontal.tedi-separator--dot-only.tedi-separator--spacing-0-25,.tedi-separator--vertical.tedi-separator--spacing-0-25{margin-right:.25rem;margin-left:.25rem}.tedi-separator--horizontal.tedi-separator--top-0-5{margin-top:.5rem}.tedi-separator--horizontal.tedi-separator--bottom-0-5{margin-bottom:.5rem}.tedi-separator--vertical.tedi-separator--left-0-5{margin-left:.5rem}.tedi-separator--vertical.tedi-separator--right-0-5{margin-right:.5rem}.tedi-separator--horizontal.tedi-separator--spacing-0-5:not(.tedi-separator--dot-only){margin-top:.5rem;margin-bottom:.5rem}.tedi-separator--horizontal.tedi-separator--dot-only.tedi-separator--spacing-0-5,.tedi-separator--vertical.tedi-separator--spacing-0-5{margin-right:.5rem;margin-left:.5rem}.tedi-separator--horizontal.tedi-separator--top-0-75{margin-top:.75rem}.tedi-separator--horizontal.tedi-separator--bottom-0-75{margin-bottom:.75rem}.tedi-separator--vertical.tedi-separator--left-0-75{margin-left:.75rem}.tedi-separator--vertical.tedi-separator--right-0-75{margin-right:.75rem}.tedi-separator--horizontal.tedi-separator--spacing-0-75:not(.tedi-separator--dot-only){margin-top:.75rem;margin-bottom:.75rem}.tedi-separator--horizontal.tedi-separator--dot-only.tedi-separator--spacing-0-75,.tedi-separator--vertical.tedi-separator--spacing-0-75{margin-right:.75rem;margin-left:.75rem}.tedi-separator--horizontal.tedi-separator--top-1{margin-top:1rem}.tedi-separator--horizontal.tedi-separator--bottom-1{margin-bottom:1rem}.tedi-separator--vertical.tedi-separator--left-1{margin-left:1rem}.tedi-separator--vertical.tedi-separator--right-1{margin-right:1rem}.tedi-separator--horizontal.tedi-separator--spacing-1:not(.tedi-separator--dot-only){margin-top:1rem;margin-bottom:1rem}.tedi-separator--horizontal.tedi-separator--dot-only.tedi-separator--spacing-1,.tedi-separator--vertical.tedi-separator--spacing-1{margin-right:1rem;margin-left:1rem}.tedi-separator--horizontal.tedi-separator--top-1-25{margin-top:1.25rem}.tedi-separator--horizontal.tedi-separator--bottom-1-25{margin-bottom:1.25rem}.tedi-separator--vertical.tedi-separator--left-1-25{margin-left:1.25rem}.tedi-separator--vertical.tedi-separator--right-1-25{margin-right:1.25rem}.tedi-separator--horizontal.tedi-separator--spacing-1-25:not(.tedi-separator--dot-only){margin-top:1.25rem;margin-bottom:1.25rem}.tedi-separator--horizontal.tedi-separator--dot-only.tedi-separator--spacing-1-25,.tedi-separator--vertical.tedi-separator--spacing-1-25{margin-right:1.25rem;margin-left:1.25rem}.tedi-separator--horizontal.tedi-separator--top-1-5{margin-top:1.5rem}.tedi-separator--horizontal.tedi-separator--bottom-1-5{margin-bottom:1.5rem}.tedi-separator--vertical.tedi-separator--left-1-5{margin-left:1.5rem}.tedi-separator--vertical.tedi-separator--right-1-5{margin-right:1.5rem}.tedi-separator--horizontal.tedi-separator--spacing-1-5:not(.tedi-separator--dot-only){margin-top:1.5rem;margin-bottom:1.5rem}.tedi-separator--horizontal.tedi-separator--dot-only.tedi-separator--spacing-1-5,.tedi-separator--vertical.tedi-separator--spacing-1-5{margin-right:1.5rem;margin-left:1.5rem}.tedi-separator--horizontal.tedi-separator--top-1-75{margin-top:1.75rem}.tedi-separator--horizontal.tedi-separator--bottom-1-75{margin-bottom:1.75rem}.tedi-separator--vertical.tedi-separator--left-1-75{margin-left:1.75rem}.tedi-separator--vertical.tedi-separator--right-1-75{margin-right:1.75rem}.tedi-separator--horizontal.tedi-separator--spacing-1-75:not(.tedi-separator--dot-only){margin-top:1.75rem;margin-bottom:1.75rem}.tedi-separator--horizontal.tedi-separator--dot-only.tedi-separator--spacing-1-75,.tedi-separator--vertical.tedi-separator--spacing-1-75{margin-right:1.75rem;margin-left:1.75rem}.tedi-separator--horizontal.tedi-separator--top-2{margin-top:2rem}.tedi-separator--horizontal.tedi-separator--bottom-2{margin-bottom:2rem}.tedi-separator--vertical.tedi-separator--left-2{margin-left:2rem}.tedi-separator--vertical.tedi-separator--right-2{margin-right:2rem}.tedi-separator--horizontal.tedi-separator--spacing-2:not(.tedi-separator--dot-only){margin-top:2rem;margin-bottom:2rem}.tedi-separator--horizontal.tedi-separator--dot-only.tedi-separator--spacing-2,.tedi-separator--vertical.tedi-separator--spacing-2{margin-right:2rem;margin-left:2rem}.tedi-separator--horizontal.tedi-separator--top-2-5{margin-top:2.5rem}.tedi-separator--horizontal.tedi-separator--bottom-2-5{margin-bottom:2.5rem}.tedi-separator--vertical.tedi-separator--left-2-5{margin-left:2.5rem}.tedi-separator--vertical.tedi-separator--right-2-5{margin-right:2.5rem}.tedi-separator--horizontal.tedi-separator--spacing-2-5:not(.tedi-separator--dot-only){margin-top:2.5rem;margin-bottom:2.5rem}.tedi-separator--horizontal.tedi-separator--dot-only.tedi-separator--spacing-2-5,.tedi-separator--vertical.tedi-separator--spacing-2-5{margin-right:2.5rem;margin-left:2.5rem}.tedi-separator--horizontal.tedi-separator--top-5{margin-top:5rem}.tedi-separator--horizontal.tedi-separator--bottom-5{margin-bottom:5rem}.tedi-separator--vertical.tedi-separator--left-5{margin-left:5rem}.tedi-separator--vertical.tedi-separator--right-5{margin-right:5rem}.tedi-separator--horizontal.tedi-separator--spacing-5:not(.tedi-separator--dot-only){margin-top:5rem;margin-bottom:5rem}.tedi-separator--horizontal.tedi-separator--dot-only.tedi-separator--spacing-5,.tedi-separator--vertical.tedi-separator--spacing-5{margin-right:5rem;margin-left:5rem}.tedi-separator.tedi-separator--thickness-1{border-top-width:1px}.tedi-separator--vertical.tedi-separator--thickness-1{border-left-width:1px}.tedi-separator.tedi-separator--thickness-2{border-top-width:2px}.tedi-separator--vertical.tedi-separator--thickness-2{border-left-width:2px}.tedi-separator--dot-only{position:relative;display:inline-block;vertical-align:middle;border:none}.tedi-separator--dot-only:before{position:relative;display:block;width:var(--separator-dotted-dot-sm);height:var(--separator-dotted-dot-sm);content:\"\";border-radius:100%}@media print{.tedi-separator--dot-only:before{filter:grayscale(1)}}.tedi-separator--dot-only.tedi-separator--dot-only-extra-small:before{width:var(--separator-dotted-dot-xs);height:var(--separator-dotted-dot-xs)}.tedi-separator--dot-only.tedi-separator--dot-only-small:before{width:var(--separator-dotted-dot-sm);height:var(--separator-dotted-dot-sm)}.tedi-separator--dot-only.tedi-separator--dot-only-medium:before{width:var(--separator-dotted-dot-md);height:var(--separator-dotted-dot-md)}.tedi-separator--dot-only.tedi-separator--dot-only-large:before{width:var(--separator-dotted-dot-lg);height:var(--separator-dotted-dot-lg)}.tedi-separator--dot-only-filled.tedi-separator--primary:before{background-color:var(--general-border-primary)}.tedi-separator--dot-only-filled.tedi-separator--secondary:before{background-color:var(--general-border-secondary)}.tedi-separator--dot-only-filled.tedi-separator--accent:before{background-color:var(--general-border-accent)}.tedi-separator--dot-only-outlined:before{border-style:solid}.tedi-separator--dot-only-outlined.tedi-separator--primary:before{border-color:var(--general-border-primary)}.tedi-separator--dot-only-outlined.tedi-separator--secondary:before{border-color:var(--general-border-secondary)}.tedi-separator--dot-only-outlined.tedi-separator--accent:before{border-color:var(--general-border-accent)}.tedi-separator--dot-only-outlined.tedi-separator--thickness-1:before{border-width:1px}.tedi-separator--dot-only-outlined.tedi-separator--thickness-2:before{border-width:2px}.tedi-separator--horizontal.tedi-separator--dotted:before,.tedi-separator--horizontal.tedi-separator--dotted-small:before{right:0;left:0;margin:0 auto;transform:initial}.tedi-separator--horizontal.tedi-separator--dotted:before{top:calc(var(--separator-dotted-dot-lg) / 2 * -1)}.tedi-separator--horizontal.tedi-separator--dotted-small:before{top:calc(var(--separator-dotted-dot-md) / 2 * -1)}\n"] }]
|
|
2224
|
+
"[attr.role]": "role()",
|
|
2225
|
+
"[attr.aria-live]": "ariaLive()",
|
|
2226
|
+
}, template: "{{ text() }}\n", styles: [".tedi-feedback-text{display:block;font-size:var(--body-small-regular-size);color:var(--general-text-tertiary)}.tedi-feedback-text--valid{color:var(--form-general-feedback-success-text)}.tedi-feedback-text--error{color:var(--form-general-feedback-error-text)}.tedi-feedback-text--left{flex-grow:1;text-align:left}.tedi-feedback-text--right{flex-grow:0;text-align:right}\n"] }]
|
|
2272
2227
|
}] });
|
|
2273
2228
|
|
|
2274
|
-
class
|
|
2275
|
-
/**
|
|
2276
|
-
* Should add underline class to trigger element?
|
|
2277
|
-
* @default false
|
|
2278
|
-
*/
|
|
2279
|
-
underline = input(false);
|
|
2280
|
-
host = inject(ElementRef);
|
|
2281
|
-
popover = inject(PopoverComponent);
|
|
2282
|
-
onClick() {
|
|
2283
|
-
this.popover.togglePopover();
|
|
2284
|
-
}
|
|
2285
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: PopoverTriggerDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
2286
|
-
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "19.2.15", type: PopoverTriggerDirective, isStandalone: true, selector: "[tedi-popover-trigger]", inputs: { underline: { classPropertyName: "underline", publicName: "underline", isSignal: true, isRequired: false, transformFunction: null } }, host: { attributes: { "tabindex": "0", "role": "button", "aria-haspopup": "dialog" }, listeners: { "click": "onClick()" }, properties: { "id": "popover.containerId() + '_trigger'", "attr.aria-expanded": "popover.floatUiComponent().state", "attr.aria-controls": "popover.containerId()", "class.tedi-popover-trigger__text": "underline()" } }, ngImport: i0 });
|
|
2287
|
-
}
|
|
2288
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: PopoverTriggerDirective, decorators: [{
|
|
2289
|
-
type: Directive,
|
|
2290
|
-
args: [{
|
|
2291
|
-
standalone: true,
|
|
2292
|
-
selector: "[tedi-popover-trigger]",
|
|
2293
|
-
host: {
|
|
2294
|
-
tabindex: "0",
|
|
2295
|
-
role: "button",
|
|
2296
|
-
"aria-haspopup": "dialog",
|
|
2297
|
-
"[id]": "popover.containerId() + '_trigger'",
|
|
2298
|
-
"[attr.aria-expanded]": "popover.floatUiComponent().state",
|
|
2299
|
-
"[attr.aria-controls]": "popover.containerId()",
|
|
2300
|
-
"[class.tedi-popover-trigger__text]": "underline()",
|
|
2301
|
-
},
|
|
2302
|
-
}]
|
|
2303
|
-
}], propDecorators: { onClick: [{
|
|
2304
|
-
type: HostListener,
|
|
2305
|
-
args: ["click"]
|
|
2306
|
-
}] } });
|
|
2307
|
-
|
|
2308
|
-
function getFocusableElements(container) {
|
|
2309
|
-
const selectors = [
|
|
2310
|
-
"a[href]",
|
|
2311
|
-
"area[href]",
|
|
2312
|
-
"input:not([disabled]):not([type='hidden'])",
|
|
2313
|
-
"select:not([disabled])",
|
|
2314
|
-
"textarea:not([disabled])",
|
|
2315
|
-
"button:not([disabled])",
|
|
2316
|
-
"summary",
|
|
2317
|
-
"iframe",
|
|
2318
|
-
"audio[controls]",
|
|
2319
|
-
"video[controls]",
|
|
2320
|
-
"[contenteditable]:not([contenteditable='false'])",
|
|
2321
|
-
"[tabindex]:not([tabindex='-1'])",
|
|
2322
|
-
];
|
|
2323
|
-
const elements = Array.from(container.querySelectorAll(selectors.join(",")));
|
|
2324
|
-
if (typeof window === "undefined") {
|
|
2325
|
-
return elements.filter((el) => el instanceof HTMLElement);
|
|
2326
|
-
}
|
|
2327
|
-
return elements.filter((el) => {
|
|
2328
|
-
if (!(el instanceof HTMLElement))
|
|
2329
|
-
return false;
|
|
2330
|
-
const style = window.getComputedStyle(el);
|
|
2331
|
-
if (style.display === "none" || style.visibility === "hidden")
|
|
2332
|
-
return false;
|
|
2333
|
-
if (el.hasAttribute("hidden"))
|
|
2334
|
-
return false;
|
|
2335
|
-
if (el.closest("[inert]"))
|
|
2336
|
-
return false;
|
|
2337
|
-
const fieldset = el.closest("fieldset[disabled]");
|
|
2338
|
-
if (fieldset) {
|
|
2339
|
-
const firstLegend = fieldset.querySelector("legend");
|
|
2340
|
-
if (!firstLegend || !firstLegend.contains(el))
|
|
2341
|
-
return false;
|
|
2342
|
-
}
|
|
2343
|
-
if (el.tagName !== "SUMMARY") {
|
|
2344
|
-
const closedDetails = el.closest("details:not([open])");
|
|
2345
|
-
if (closedDetails)
|
|
2346
|
-
return false;
|
|
2347
|
-
}
|
|
2348
|
-
return true;
|
|
2349
|
-
});
|
|
2350
|
-
}
|
|
2351
|
-
|
|
2352
|
-
let popoverTitleId = 0;
|
|
2353
|
-
class PopoverContentComponent {
|
|
2229
|
+
class LabelComponent {
|
|
2354
2230
|
/**
|
|
2355
|
-
*
|
|
2356
|
-
* @default
|
|
2231
|
+
* Size of the label.
|
|
2232
|
+
* @default default
|
|
2357
2233
|
*/
|
|
2358
|
-
|
|
2234
|
+
size = input("default");
|
|
2359
2235
|
/**
|
|
2360
|
-
*
|
|
2236
|
+
* Whether label is required.
|
|
2237
|
+
* @default false
|
|
2361
2238
|
*/
|
|
2362
|
-
|
|
2239
|
+
required = input(false);
|
|
2363
2240
|
/**
|
|
2364
|
-
*
|
|
2365
|
-
* @default
|
|
2241
|
+
* Color of the label.
|
|
2242
|
+
* @default secondary
|
|
2366
2243
|
*/
|
|
2367
|
-
|
|
2368
|
-
popover = inject(PopoverComponent);
|
|
2369
|
-
titleId = `popover-title-${popoverTitleId++}`;
|
|
2244
|
+
color = input("secondary");
|
|
2370
2245
|
classes = computed(() => {
|
|
2371
|
-
const classList = [
|
|
2372
|
-
|
|
2373
|
-
|
|
2374
|
-
|
|
2246
|
+
const classList = ["tedi-label", `tedi-label--${this.color()}`];
|
|
2247
|
+
if (this.size() === "small") {
|
|
2248
|
+
classList.push("tedi-label--small");
|
|
2249
|
+
}
|
|
2375
2250
|
return classList.join(" ");
|
|
2376
2251
|
});
|
|
2377
|
-
|
|
2378
|
-
|
|
2379
|
-
}
|
|
2380
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: PopoverContentComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
2381
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.15", type: PopoverContentComponent, isStandalone: true, selector: "tedi-popover-content", inputs: { maxWidth: { classPropertyName: "maxWidth", publicName: "maxWidth", isSignal: true, isRequired: false, transformFunction: null }, title: { classPropertyName: "title", publicName: "title", isSignal: true, isRequired: false, transformFunction: null }, showClose: { classPropertyName: "showClose", publicName: "showClose", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class": "classes()" } }, ngImport: i0, template: "@if (title() && showClose()) {\n <div class=\"tedi-popover-content__head\">\n <h4 class=\"tedi-popover-content__title\" [id]=\"titleId\">{{ title() }}</h4>\n <button tedi-closing-button (click)=\"handleClose()\"></button>\n </div>\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n} @else if (showClose()) {\n <div class=\"tedi-popover-content__head\">\n <div>\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n </div>\n <button tedi-closing-button size=\"small\" (click)=\"handleClose()\"></button>\n </div>\n} @else if (title()) {\n <h4 [id]=\"titleId\">{{ title() }}</h4>\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n} @else {\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n}\n\n<ng-template #content>\n <ng-content></ng-content>\n</ng-template>\n", styles: ["tedi-popover{display:block}[tedi-popover-trigger]{cursor:pointer}[tedi-popover-trigger]:focus-visible{outline:var(--borders-02) solid var(--primary-500);outline-offset:var(--borders-01)}float-ui-content .float-ui-container-popover{z-index:var(--z-index-dropdown);padding:0;border:var(--borders-01) solid var(--popover-border);border-radius:var(--popover-radius-rounded);box-shadow:0 1px 5px 0 var(--tedi-alpha-20, rgba(0, 0, 0, .2))}float-ui-content .float-ui-container-popover--arrow .float-ui-arrow{z-index:var(--z-index-dropdown);width:24px;height:24px;background:var(--popover-background);filter:drop-shadow(0 0 5px var(--tedi-alpha-20));clip-path:inset(0 -5px -5px 0)}float-ui-content .float-ui-container-popover--border{border-radius:var(--popover-radius-rounded)}float-ui-content .float-ui-container-popover--border .float-ui-arrow{width:18px;height:18px;border-right:4px solid var(--header-popover-border-top);border-bottom:4px solid var(--header-popover-border-top)}float-ui-content .float-ui-container-popover--border[data-float-ui-placement=top]{border-bottom:4px solid var(--header-popover-border-top)}float-ui-content .float-ui-container-popover--border[data-float-ui-placement=top] .float-ui-arrow{bottom:-12px!important}float-ui-content .float-ui-container-popover--border[data-float-ui-placement=bottom]{border-top:4px solid var(--header-popover-border-top)}float-ui-content .float-ui-container-popover--border[data-float-ui-placement=bottom] .float-ui-arrow{top:-12px!important}float-ui-content .float-ui-container-popover--border[data-float-ui-placement=left]{border-right:4px solid var(--header-popover-border-top)}float-ui-content .float-ui-container-popover--border[data-float-ui-placement=left] .float-ui-arrow{right:-12px!important}float-ui-content .float-ui-container-popover--border[data-float-ui-placement=right]{border-left:4px solid var(--header-popover-border-top)}float-ui-content .float-ui-container-popover--border[data-float-ui-placement=right] .float-ui-arrow{left:-12px!important}float-ui-content .float-ui-container-popover[data-float-ui-placement=top]{transform:translateY(-4px)}float-ui-content .float-ui-container-popover[data-float-ui-placement=bottom]{transform:translateY(4px)}float-ui-content .float-ui-container-popover[data-float-ui-placement=bottom] .float-ui-arrow{transform:rotate(-135deg)}float-ui-content .float-ui-container-popover[data-float-ui-placement=left]{transform:translate(-4px)}float-ui-content .float-ui-container-popover[data-float-ui-placement=left] .float-ui-arrow{transform:rotate(-45deg)}float-ui-content .float-ui-container-popover[data-float-ui-placement=right]{transform:translate(4px)}float-ui-content .float-ui-container-popover[data-float-ui-placement=right] .float-ui-arrow{transform:rotate(135deg)}.tedi-popover-trigger__text{text-decoration:underline dashed var(--general-border-secondary);text-underline-offset:.5em}.tedi-popover-content{position:relative;display:flex;flex-direction:column;gap:var(--layout-grid-gutters-08);max-width:calc(100dvw - 1rem);padding:var(--popover-padding-sm);color:var(--popover-text);background:var(--popover-background);border-radius:var(--popover-radius-rounded)}.tedi-popover-content--none{width:none}.tedi-popover-content--small{width:240px}.tedi-popover-content--medium{width:480px}.tedi-popover-content--large{width:840px}.tedi-popover-content__head{display:flex;gap:var(--layout-grid-gutters-08);justify-content:space-between}.tedi-popover-content__head>div{display:flex;flex:1 1 0;flex-direction:column;gap:var(--layout-grid-gutters-08);min-width:0}.tedi-popover-content__title{align-self:center}\n"], dependencies: [{ kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: ClosingButtonComponent, selector: "button[tedi-closing-button]", inputs: ["size", "iconSize", "ariaLabel"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
2252
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: LabelComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
2253
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.15", type: LabelComponent, isStandalone: true, selector: "[tedi-label]", inputs: { size: { classPropertyName: "size", publicName: "size", isSignal: true, isRequired: false, transformFunction: null }, required: { classPropertyName: "required", publicName: "required", isSignal: true, isRequired: false, transformFunction: null }, color: { classPropertyName: "color", publicName: "color", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class": "classes()" } }, ngImport: i0, template: "<ng-content />\n@if (required()) {\n <span class=\"tedi-label--required\" aria-hidden=\"true\">*</span>\n <span class=\"sr-only\">, {{ 'required' | tediTranslate }}</span>\n}\n", styles: [".tedi-label{font-family:var(--family-default);font-size:var(--body-regular-size)}.tedi-label--small{font-size:var(--body-small-regular-size)}.tedi-label--required{margin-left:var(--content-label-inner-spacing-x);color:var(--form-general-feedback-error-border)}.tedi-label--primary{color:var(--general-text-primary)}.tedi-label--secondary{color:var(--general-text-secondary)}.tedi-label:has(input[disabled]),.tedi-label[for]:has(+input[disabled]){color:var(--general-text-disabled)}\n"], dependencies: [{ kind: "pipe", type: TediTranslationPipe, name: "tediTranslate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
2382
2254
|
}
|
|
2383
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type:
|
|
2255
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: LabelComponent, decorators: [{
|
|
2384
2256
|
type: Component,
|
|
2385
|
-
args: [{
|
|
2257
|
+
args: [{ selector: "[tedi-label]", standalone: true, encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, imports: [
|
|
2258
|
+
TediTranslationPipe
|
|
2259
|
+
], host: {
|
|
2386
2260
|
"[class]": "classes()",
|
|
2387
|
-
}, template: "
|
|
2261
|
+
}, template: "<ng-content />\n@if (required()) {\n <span class=\"tedi-label--required\" aria-hidden=\"true\">*</span>\n <span class=\"sr-only\">, {{ 'required' | tediTranslate }}</span>\n}\n", styles: [".tedi-label{font-family:var(--family-default);font-size:var(--body-regular-size)}.tedi-label--small{font-size:var(--body-small-regular-size)}.tedi-label--required{margin-left:var(--content-label-inner-spacing-x);color:var(--form-general-feedback-error-border)}.tedi-label--primary{color:var(--general-text-primary)}.tedi-label--secondary{color:var(--general-text-secondary)}.tedi-label:has(input[disabled]),.tedi-label[for]:has(+input[disabled]){color:var(--general-text-disabled)}\n"] }]
|
|
2388
2262
|
}] });
|
|
2389
2263
|
|
|
2390
|
-
class
|
|
2264
|
+
class NumberFieldComponent {
|
|
2391
2265
|
/**
|
|
2392
|
-
* The
|
|
2393
|
-
* @default top
|
|
2266
|
+
* The unique identifier for the input element that this label is associated with. This ID should match the input element's id attribute to ensure accessibility.
|
|
2394
2267
|
*/
|
|
2395
|
-
|
|
2268
|
+
inputId = input.required();
|
|
2396
2269
|
/**
|
|
2397
|
-
*
|
|
2398
|
-
* @default false
|
|
2270
|
+
* The text content of the label that describes the input field.
|
|
2399
2271
|
*/
|
|
2400
|
-
|
|
2272
|
+
label = input();
|
|
2401
2273
|
/**
|
|
2402
|
-
*
|
|
2403
|
-
* @default true
|
|
2274
|
+
* Value of the input field. Supports two-way binding, use with form controls.
|
|
2404
2275
|
*/
|
|
2405
|
-
|
|
2276
|
+
value = model(0);
|
|
2406
2277
|
/**
|
|
2407
|
-
*
|
|
2278
|
+
* Is input disabled?
|
|
2408
2279
|
* @default false
|
|
2409
2280
|
*/
|
|
2410
|
-
|
|
2281
|
+
disabled = input(false);
|
|
2282
|
+
/**
|
|
2283
|
+
* Indicates whether the input field is required. If set to true, the required indicator will be displayed next to the label.
|
|
2284
|
+
* @default false
|
|
2285
|
+
*/
|
|
2286
|
+
required = input(false);
|
|
2287
|
+
/**
|
|
2288
|
+
* Minimum allowed value. Disables decrementing below this value and restricts manual input.
|
|
2289
|
+
*/
|
|
2290
|
+
min = input();
|
|
2291
|
+
/**
|
|
2292
|
+
* Maximum allowed value. Disables incrementing above this value and restricts manual input.
|
|
2293
|
+
*/
|
|
2294
|
+
max = input();
|
|
2295
|
+
/**
|
|
2296
|
+
* Step size for incrementing or decrementing the value.
|
|
2297
|
+
* @default 1
|
|
2298
|
+
*/
|
|
2299
|
+
step = input(1);
|
|
2300
|
+
/**
|
|
2301
|
+
* Size of the number field.
|
|
2302
|
+
* @default default
|
|
2303
|
+
*/
|
|
2304
|
+
size = input("default");
|
|
2305
|
+
/**
|
|
2306
|
+
* Marks the field as invalid for validation purposes.
|
|
2307
|
+
* @default false
|
|
2308
|
+
*/
|
|
2309
|
+
invalid = input(false);
|
|
2310
|
+
/**
|
|
2311
|
+
* Text displayed after the input value, typically a unit.
|
|
2312
|
+
*/
|
|
2313
|
+
suffix = input();
|
|
2314
|
+
/**
|
|
2315
|
+
* FeedbackText component inputs.
|
|
2316
|
+
*/
|
|
2317
|
+
feedbackText = input();
|
|
2318
|
+
/**
|
|
2319
|
+
* Is input full width?
|
|
2320
|
+
* @default false
|
|
2321
|
+
*/
|
|
2322
|
+
fullWidth = input(false);
|
|
2323
|
+
inputRef;
|
|
2324
|
+
formDisabled = signal(false);
|
|
2325
|
+
onChange = () => { };
|
|
2326
|
+
onTouched = () => { };
|
|
2327
|
+
translationService = inject(TediTranslationService);
|
|
2328
|
+
liveAnnouncer = inject(LiveAnnouncer);
|
|
2329
|
+
isInvalid = computed(() => {
|
|
2330
|
+
const min = this.min();
|
|
2331
|
+
const max = this.max();
|
|
2332
|
+
return (this.invalid() ||
|
|
2333
|
+
Boolean(min !== undefined && this.value() < min) ||
|
|
2334
|
+
Boolean(max !== undefined && this.value() > max));
|
|
2335
|
+
});
|
|
2336
|
+
isDisabled = computed(() => this.disabled() || this.formDisabled());
|
|
2337
|
+
decrementDisabled = computed(() => {
|
|
2338
|
+
const min = this.min();
|
|
2339
|
+
return this.isDisabled() || (min !== undefined && this.value() <= min);
|
|
2340
|
+
});
|
|
2341
|
+
incrementDisabled = computed(() => {
|
|
2342
|
+
const max = this.max();
|
|
2343
|
+
return this.isDisabled() || (max !== undefined && this.value() >= max);
|
|
2344
|
+
});
|
|
2345
|
+
feedbackId = computed(() => this.feedbackText() ? `${this.inputId()}-feedback` : null);
|
|
2346
|
+
writeValue(value) {
|
|
2347
|
+
this.value.set(value ? (isNaN(value) ? 0 : value) : 0);
|
|
2348
|
+
}
|
|
2349
|
+
registerOnChange(fn) {
|
|
2350
|
+
this.onChange = fn;
|
|
2351
|
+
}
|
|
2352
|
+
registerOnTouched(fn) {
|
|
2353
|
+
this.onTouched = fn;
|
|
2354
|
+
}
|
|
2355
|
+
setDisabledState(disabled) {
|
|
2356
|
+
this.formDisabled.set(disabled);
|
|
2357
|
+
}
|
|
2358
|
+
focus() {
|
|
2359
|
+
this.inputRef.nativeElement.focus();
|
|
2360
|
+
}
|
|
2361
|
+
blur() {
|
|
2362
|
+
this.inputRef.nativeElement.blur();
|
|
2363
|
+
this.onTouched();
|
|
2364
|
+
}
|
|
2365
|
+
handleButtonClick(action) {
|
|
2366
|
+
const delta = action === "decrement" ? -1 : 1;
|
|
2367
|
+
const nextValue = this.value() + this.step() * delta;
|
|
2368
|
+
this.value.set(nextValue);
|
|
2369
|
+
this.onChange(nextValue);
|
|
2370
|
+
this.onTouched();
|
|
2371
|
+
this.announceValue(nextValue);
|
|
2372
|
+
}
|
|
2373
|
+
announceValue(value) {
|
|
2374
|
+
this.liveAnnouncer.announce(this.translationService.translate("numberField.quantityUpdated", value), "polite");
|
|
2375
|
+
}
|
|
2376
|
+
handleInputChange(event) {
|
|
2377
|
+
const input = event.target;
|
|
2378
|
+
const value = isNaN(input.valueAsNumber) ? 0 : input.valueAsNumber;
|
|
2379
|
+
if (value !== this.value()) {
|
|
2380
|
+
this.value.set(value);
|
|
2381
|
+
this.onChange(value);
|
|
2382
|
+
}
|
|
2383
|
+
}
|
|
2384
|
+
handleBlur() {
|
|
2385
|
+
this.onTouched();
|
|
2386
|
+
}
|
|
2387
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: NumberFieldComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
2388
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.15", type: NumberFieldComponent, isStandalone: true, selector: "tedi-number-field", inputs: { inputId: { classPropertyName: "inputId", publicName: "inputId", isSignal: true, isRequired: true, transformFunction: null }, label: { classPropertyName: "label", publicName: "label", isSignal: true, isRequired: false, transformFunction: null }, value: { classPropertyName: "value", publicName: "value", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null }, required: { classPropertyName: "required", publicName: "required", isSignal: true, isRequired: false, transformFunction: null }, min: { classPropertyName: "min", publicName: "min", isSignal: true, isRequired: false, transformFunction: null }, max: { classPropertyName: "max", publicName: "max", isSignal: true, isRequired: false, transformFunction: null }, step: { classPropertyName: "step", publicName: "step", isSignal: true, isRequired: false, transformFunction: null }, size: { classPropertyName: "size", publicName: "size", isSignal: true, isRequired: false, transformFunction: null }, invalid: { classPropertyName: "invalid", publicName: "invalid", isSignal: true, isRequired: false, transformFunction: null }, suffix: { classPropertyName: "suffix", publicName: "suffix", isSignal: true, isRequired: false, transformFunction: null }, feedbackText: { classPropertyName: "feedbackText", publicName: "feedbackText", isSignal: true, isRequired: false, transformFunction: null }, fullWidth: { classPropertyName: "fullWidth", publicName: "fullWidth", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { value: "valueChange" }, providers: [
|
|
2389
|
+
{
|
|
2390
|
+
provide: NG_VALUE_ACCESSOR,
|
|
2391
|
+
useExisting: forwardRef(() => NumberFieldComponent),
|
|
2392
|
+
multi: true,
|
|
2393
|
+
},
|
|
2394
|
+
], viewQueries: [{ propertyName: "inputRef", first: true, predicate: ["inputElement"], descendants: true }], ngImport: i0, template: "@if (label()) {\n <label tedi-label [for]=\"inputId()\" [required]=\"required()\" [size]=\"size()\">\n {{ label() }}\n </label>\n}\n<div\n [class]=\"{\n 'tedi-number-field': true,\n 'tedi-number-field--invalid': isInvalid(),\n 'tedi-number-field--disabled': isDisabled(),\n }\"\n>\n <button\n tedi-button\n type=\"button\"\n variant=\"secondary\"\n [class]=\"{\n 'tedi-number-field__button': true,\n 'tedi-number-field__button--decrement': true,\n 'tedi-number-field__button--small': size() === 'small',\n }\"\n [disabled]=\"decrementDisabled()\"\n [attr.aria-label]=\"'numberField.decrement' | tediTranslate: step()\"\n (click)=\"handleButtonClick('decrement')\"\n >\n <tedi-icon name=\"remove\" [size]=\"18\" />\n </button>\n <div\n [class]=\"{\n 'tedi-number-field__input-wrapper': true,\n 'tedi-number-field__input-wrapper--small': size() === 'small',\n 'tedi-number-field__input-wrapper--disabled': isDisabled(),\n 'tedi-number-field__input-wrapper--with-suffix': suffix(),\n 'tedi-number-field__input-wrapper--full-width': fullWidth(),\n }\"\n (click)=\"focus()\"\n >\n <input\n #inputElement\n [id]=\"inputId()\"\n type=\"number\"\n inputmode=\"numeric\"\n class=\"tedi-number-field__input\"\n [value]=\"value()\"\n [disabled]=\"isDisabled()\"\n [required]=\"required()\"\n [attr.min]=\"min()\"\n [attr.max]=\"max()\"\n [attr.step]=\"step()\"\n [attr.aria-invalid]=\"isInvalid()\"\n [attr.aria-describedby]=\"feedbackId()\"\n (input)=\"handleInputChange($event)\"\n (blur)=\"handleBlur()\"\n />\n @if (suffix()) {\n <small tedi-text color=\"tertiary\" class=\"tedi-number-field__suffix\">\n {{ suffix() }}\n </small>\n }\n </div>\n <button\n tedi-button\n type=\"button\"\n variant=\"secondary\"\n [class]=\"{\n 'tedi-number-field__button': true,\n 'tedi-number-field__button--increment': true,\n 'tedi-number-field__button--small': size() === 'small',\n }\"\n [disabled]=\"incrementDisabled()\"\n [attr.aria-label]=\"'numberField.increment' | tediTranslate: step()\"\n (click)=\"handleButtonClick('increment')\"\n >\n <tedi-icon name=\"add\" [size]=\"18\" />\n </button>\n</div>\n@if (feedbackText(); as feedback) {\n <tedi-feedback-text\n [attr.id]=\"feedbackId()\"\n [text]=\"feedback.text\"\n [type]=\"feedback.type\"\n [position]=\"feedback.position\"\n />\n}\n", styles: [".tedi-number-field{display:flex}.tedi-number-field:hover:not(.tedi-number-field--disabled) .tedi-number-field__button:not(:disabled),.tedi-number-field:hover:not(.tedi-number-field--disabled) .tedi-number-field__input-wrapper:not(:disabled){border-color:var(--form-input-border-hover)}.tedi-number-field .tedi-number-field__button{--general-icon-primary: currentcolor;width:var(--form-field-height);height:var(--form-field-height);border:var(--borders-01) solid var(--form-input-border-default)}.tedi-number-field .tedi-number-field__button:disabled{background-color:var(--form-input-background-disabled);border:var(--borders-01) solid var(--form-input-border-disabled);opacity:.5}.tedi-number-field .tedi-number-field__button--decrement{z-index:2;margin-right:calc(-1 * var(--borders-01));border-radius:0;border-top-left-radius:var(--button-radius-sm);border-bottom-left-radius:var(--button-radius-sm)}.tedi-number-field .tedi-number-field__button--increment{margin-left:calc(-1 * var(--borders-01));border-radius:0;border-top-right-radius:var(--button-radius-sm);border-bottom-right-radius:var(--button-radius-sm)}.tedi-number-field .tedi-number-field__button--small{width:var(--form-field-height-sm);height:var(--form-field-height-sm)}.tedi-number-field--invalid:not(.tedi-number-field--disabled) .tedi-number-field__button,.tedi-number-field--invalid:not(.tedi-number-field--disabled) .tedi-number-field__button:disabled,.tedi-number-field--invalid:not(.tedi-number-field--disabled) .tedi-number-field__button:hover,.tedi-number-field--invalid:not(.tedi-number-field--disabled) .tedi-number-field__input-wrapper{border-color:var(--form-general-feedback-error-border)}.tedi-number-field--invalid:not(.tedi-number-field--disabled) .tedi-number-field__input-wrapper:focus-within{outline-color:var(--form-general-feedback-error-border)}.tedi-number-field--invalid:not(.tedi-number-field--disabled) .tedi-number-field__input-wrapper:active{z-index:2;outline:none;border-color:var(--form-general-feedback-error-border);border-radius:0}.tedi-number-field--disabled .tedi-number-field__button,.tedi-number-field--disabled .tedi-number-field__button:disabled,.tedi-number-field--disabled .tedi-number-field__input-wrapper{background-color:var(--form-input-background-disabled);border-color:var(--form-input-border-disabled)}.tedi-number-field--disabled .tedi-number-field__input-wrapper{background-color:var(--form-input-background-disabled);opacity:.5}.tedi-number-field--disabled .tedi-number-field__input-wrapper .tedi-number-field__input{background-color:var(--form-input-background-disabled)}.tedi-number-field__input-wrapper{display:grid;grid-template-columns:repeat(2,1fr);gap:var(--form-field-inner-spacing-sm);align-items:stretch;width:var(--form-number-input-min-width);height:var(--form-field-height);padding-right:var(--form-field-padding-y-3-default);padding-left:var(--form-field-padding-y-3-default);background-color:var(--form-input-background-default);border:var(--borders-01) solid var(--form-input-border-default)}.tedi-number-field__input-wrapper:focus-within{z-index:2;outline:calc(2 * var(--borders-01)) solid var(--form-input-border-active);outline-offset:var(--borders-01);border-color:var(--form-input-border-active);border-radius:var(--button-radius-sm)}.tedi-number-field__input-wrapper:active:not(.tedi-number-field__input-wrapper--disabled){z-index:2;outline:none;border-color:var(--form-input-border-active);border-radius:0}.tedi-number-field__input-wrapper--small{height:var(--form-field-height-sm)}.tedi-number-field__input-wrapper--with-suffix .tedi-number-field__input{grid-column:span 1;text-align:right}.tedi-number-field__input-wrapper--with-suffix .tedi-number-field__suffix{align-self:center;text-align:left;-webkit-user-select:none;user-select:none}.tedi-number-field__input-wrapper--full-width{width:100%}.tedi-number-field__input{grid-column:span 2;width:100%;font-size:var(--heading-h6-size);color:var(--form-input-text-filled);text-align:center;outline:none;background-color:var(--form-input-background-default);border:0;border-radius:0}.tedi-number-field__input::-webkit-outer-spin-button,.tedi-number-field__input::-webkit-inner-spin-button{appearance:none}.tedi-number-field__input[type=number]{appearance:textfield}\n"], dependencies: [{ kind: "component", type: LabelComponent, selector: "[tedi-label]", inputs: ["size", "required", "color"] }, { kind: "component", type: ButtonComponent, selector: "[tedi-button]", inputs: ["variant", "size"] }, { kind: "component", type: IconComponent, selector: "tedi-icon", inputs: ["name", "size", "color", "background", "variant", "type", "label"] }, { kind: "component", type: TextComponent, selector: "[tedi-text]", inputs: ["modifiers", "color"] }, { kind: "component", type: FeedbackTextComponent, selector: "tedi-feedback-text", inputs: ["text", "type", "position"] }, { kind: "pipe", type: TediTranslationPipe, name: "tediTranslate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
2395
|
+
}
|
|
2396
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: NumberFieldComponent, decorators: [{
|
|
2397
|
+
type: Component,
|
|
2398
|
+
args: [{ selector: "tedi-number-field", standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, imports: [
|
|
2399
|
+
LabelComponent,
|
|
2400
|
+
ButtonComponent,
|
|
2401
|
+
IconComponent,
|
|
2402
|
+
TextComponent,
|
|
2403
|
+
FeedbackTextComponent,
|
|
2404
|
+
TediTranslationPipe,
|
|
2405
|
+
], providers: [
|
|
2406
|
+
{
|
|
2407
|
+
provide: NG_VALUE_ACCESSOR,
|
|
2408
|
+
useExisting: forwardRef(() => NumberFieldComponent),
|
|
2409
|
+
multi: true,
|
|
2410
|
+
},
|
|
2411
|
+
], template: "@if (label()) {\n <label tedi-label [for]=\"inputId()\" [required]=\"required()\" [size]=\"size()\">\n {{ label() }}\n </label>\n}\n<div\n [class]=\"{\n 'tedi-number-field': true,\n 'tedi-number-field--invalid': isInvalid(),\n 'tedi-number-field--disabled': isDisabled(),\n }\"\n>\n <button\n tedi-button\n type=\"button\"\n variant=\"secondary\"\n [class]=\"{\n 'tedi-number-field__button': true,\n 'tedi-number-field__button--decrement': true,\n 'tedi-number-field__button--small': size() === 'small',\n }\"\n [disabled]=\"decrementDisabled()\"\n [attr.aria-label]=\"'numberField.decrement' | tediTranslate: step()\"\n (click)=\"handleButtonClick('decrement')\"\n >\n <tedi-icon name=\"remove\" [size]=\"18\" />\n </button>\n <div\n [class]=\"{\n 'tedi-number-field__input-wrapper': true,\n 'tedi-number-field__input-wrapper--small': size() === 'small',\n 'tedi-number-field__input-wrapper--disabled': isDisabled(),\n 'tedi-number-field__input-wrapper--with-suffix': suffix(),\n 'tedi-number-field__input-wrapper--full-width': fullWidth(),\n }\"\n (click)=\"focus()\"\n >\n <input\n #inputElement\n [id]=\"inputId()\"\n type=\"number\"\n inputmode=\"numeric\"\n class=\"tedi-number-field__input\"\n [value]=\"value()\"\n [disabled]=\"isDisabled()\"\n [required]=\"required()\"\n [attr.min]=\"min()\"\n [attr.max]=\"max()\"\n [attr.step]=\"step()\"\n [attr.aria-invalid]=\"isInvalid()\"\n [attr.aria-describedby]=\"feedbackId()\"\n (input)=\"handleInputChange($event)\"\n (blur)=\"handleBlur()\"\n />\n @if (suffix()) {\n <small tedi-text color=\"tertiary\" class=\"tedi-number-field__suffix\">\n {{ suffix() }}\n </small>\n }\n </div>\n <button\n tedi-button\n type=\"button\"\n variant=\"secondary\"\n [class]=\"{\n 'tedi-number-field__button': true,\n 'tedi-number-field__button--increment': true,\n 'tedi-number-field__button--small': size() === 'small',\n }\"\n [disabled]=\"incrementDisabled()\"\n [attr.aria-label]=\"'numberField.increment' | tediTranslate: step()\"\n (click)=\"handleButtonClick('increment')\"\n >\n <tedi-icon name=\"add\" [size]=\"18\" />\n </button>\n</div>\n@if (feedbackText(); as feedback) {\n <tedi-feedback-text\n [attr.id]=\"feedbackId()\"\n [text]=\"feedback.text\"\n [type]=\"feedback.type\"\n [position]=\"feedback.position\"\n />\n}\n", styles: [".tedi-number-field{display:flex}.tedi-number-field:hover:not(.tedi-number-field--disabled) .tedi-number-field__button:not(:disabled),.tedi-number-field:hover:not(.tedi-number-field--disabled) .tedi-number-field__input-wrapper:not(:disabled){border-color:var(--form-input-border-hover)}.tedi-number-field .tedi-number-field__button{--general-icon-primary: currentcolor;width:var(--form-field-height);height:var(--form-field-height);border:var(--borders-01) solid var(--form-input-border-default)}.tedi-number-field .tedi-number-field__button:disabled{background-color:var(--form-input-background-disabled);border:var(--borders-01) solid var(--form-input-border-disabled);opacity:.5}.tedi-number-field .tedi-number-field__button--decrement{z-index:2;margin-right:calc(-1 * var(--borders-01));border-radius:0;border-top-left-radius:var(--button-radius-sm);border-bottom-left-radius:var(--button-radius-sm)}.tedi-number-field .tedi-number-field__button--increment{margin-left:calc(-1 * var(--borders-01));border-radius:0;border-top-right-radius:var(--button-radius-sm);border-bottom-right-radius:var(--button-radius-sm)}.tedi-number-field .tedi-number-field__button--small{width:var(--form-field-height-sm);height:var(--form-field-height-sm)}.tedi-number-field--invalid:not(.tedi-number-field--disabled) .tedi-number-field__button,.tedi-number-field--invalid:not(.tedi-number-field--disabled) .tedi-number-field__button:disabled,.tedi-number-field--invalid:not(.tedi-number-field--disabled) .tedi-number-field__button:hover,.tedi-number-field--invalid:not(.tedi-number-field--disabled) .tedi-number-field__input-wrapper{border-color:var(--form-general-feedback-error-border)}.tedi-number-field--invalid:not(.tedi-number-field--disabled) .tedi-number-field__input-wrapper:focus-within{outline-color:var(--form-general-feedback-error-border)}.tedi-number-field--invalid:not(.tedi-number-field--disabled) .tedi-number-field__input-wrapper:active{z-index:2;outline:none;border-color:var(--form-general-feedback-error-border);border-radius:0}.tedi-number-field--disabled .tedi-number-field__button,.tedi-number-field--disabled .tedi-number-field__button:disabled,.tedi-number-field--disabled .tedi-number-field__input-wrapper{background-color:var(--form-input-background-disabled);border-color:var(--form-input-border-disabled)}.tedi-number-field--disabled .tedi-number-field__input-wrapper{background-color:var(--form-input-background-disabled);opacity:.5}.tedi-number-field--disabled .tedi-number-field__input-wrapper .tedi-number-field__input{background-color:var(--form-input-background-disabled)}.tedi-number-field__input-wrapper{display:grid;grid-template-columns:repeat(2,1fr);gap:var(--form-field-inner-spacing-sm);align-items:stretch;width:var(--form-number-input-min-width);height:var(--form-field-height);padding-right:var(--form-field-padding-y-3-default);padding-left:var(--form-field-padding-y-3-default);background-color:var(--form-input-background-default);border:var(--borders-01) solid var(--form-input-border-default)}.tedi-number-field__input-wrapper:focus-within{z-index:2;outline:calc(2 * var(--borders-01)) solid var(--form-input-border-active);outline-offset:var(--borders-01);border-color:var(--form-input-border-active);border-radius:var(--button-radius-sm)}.tedi-number-field__input-wrapper:active:not(.tedi-number-field__input-wrapper--disabled){z-index:2;outline:none;border-color:var(--form-input-border-active);border-radius:0}.tedi-number-field__input-wrapper--small{height:var(--form-field-height-sm)}.tedi-number-field__input-wrapper--with-suffix .tedi-number-field__input{grid-column:span 1;text-align:right}.tedi-number-field__input-wrapper--with-suffix .tedi-number-field__suffix{align-self:center;text-align:left;-webkit-user-select:none;user-select:none}.tedi-number-field__input-wrapper--full-width{width:100%}.tedi-number-field__input{grid-column:span 2;width:100%;font-size:var(--heading-h6-size);color:var(--form-input-text-filled);text-align:center;outline:none;background-color:var(--form-input-background-default);border:0;border-radius:0}.tedi-number-field__input::-webkit-outer-spin-button,.tedi-number-field__input::-webkit-inner-spin-button{appearance:none}.tedi-number-field__input[type=number]{appearance:textfield}\n"] }]
|
|
2412
|
+
}], propDecorators: { inputRef: [{
|
|
2413
|
+
type: ViewChild,
|
|
2414
|
+
args: ["inputElement"]
|
|
2415
|
+
}] } });
|
|
2416
|
+
|
|
2417
|
+
class SpinnerComponent {
|
|
2418
|
+
/**
|
|
2419
|
+
* Size of the spinner in px.
|
|
2420
|
+
* @default 16
|
|
2421
|
+
*/
|
|
2422
|
+
size = input(16);
|
|
2423
|
+
/**
|
|
2424
|
+
* Specifies the color theme of the spinner.
|
|
2425
|
+
* The color should meet accessibility standards for color contrast.
|
|
2426
|
+
* @default primary
|
|
2427
|
+
*/
|
|
2428
|
+
color = input("primary");
|
|
2429
|
+
/**
|
|
2430
|
+
* Provides a text label for screen readers to announce the spinner's purpose or status.
|
|
2431
|
+
*/
|
|
2432
|
+
label = input();
|
|
2433
|
+
sizeConfig = {
|
|
2434
|
+
10: { strokeWidth: 4.4, r: 19.8 },
|
|
2435
|
+
16: { strokeWidth: 5.5, r: 19.25 },
|
|
2436
|
+
48: { strokeWidth: 3.6667, r: 20.1667 },
|
|
2437
|
+
};
|
|
2438
|
+
strokeWidth = computed(() => this.sizeConfig[this.size()].strokeWidth);
|
|
2439
|
+
r = computed(() => this.sizeConfig[this.size()].r);
|
|
2440
|
+
classes = computed(() => {
|
|
2441
|
+
const classList = [
|
|
2442
|
+
"tedi-spinner",
|
|
2443
|
+
`tedi-spinner--size-${this.size()}`,
|
|
2444
|
+
`tedi-spinner--color-${this.color()}`,
|
|
2445
|
+
];
|
|
2446
|
+
return classList.join(" ");
|
|
2447
|
+
});
|
|
2448
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: SpinnerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
2449
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "19.2.15", type: SpinnerComponent, isStandalone: true, selector: "tedi-spinner", inputs: { size: { classPropertyName: "size", publicName: "size", isSignal: true, isRequired: false, transformFunction: null }, color: { classPropertyName: "color", publicName: "color", isSignal: true, isRequired: false, transformFunction: null }, label: { classPropertyName: "label", publicName: "label", isSignal: true, isRequired: false, transformFunction: null } }, host: { attributes: { "role": "status", "aria-live": "polite" }, properties: { "class": "classes()", "attr.aria-label": "label() ? label() : null", "attr.aria-hidden": "!label()" } }, ngImport: i0, template: "<svg viewBox=\"0 0 44 44\" aria-hidden=\"true\">\n <circle\n class=\"tedi-spinner--inner\"\n cx=\"22\"\n cy=\"22\"\n [attr.r]=\"r()\"\n fill=\"none\"\n ></circle>\n</svg>", styles: [".tedi-spinner{display:flex;width:calc(var(--tedi-spinner-size, 16) * 1rem / 16);height:calc(var(--tedi-spinner-size, 16) * 1rem / 16);animation:1.4s linear 0s infinite normal none running tedi-spinner-outer}.tedi-spinner--inner{stroke-width:var(--tedi-spinner-stroke-width);stroke-dasharray:80,200;stroke-dashoffset:0;animation:1.4s ease-in-out 0s infinite normal none running tedi-spinner-inner}@media (prefers-reduced-motion: reduce){.tedi-spinner--inner{animation:none}}.tedi-spinner--color-primary{stroke:var(--loader-spinner-color-primary)}.tedi-spinner--color-secondary{stroke:var(--loader-spinner-color-secondary)}.tedi-spinner--size-10{--tedi-spinner-size: 10;--tedi-spinner-stroke-width: 4.4}.tedi-spinner--size-16{--tedi-spinner-size: 16;--tedi-spinner-stroke-width: 5.5}.tedi-spinner--size-48{--tedi-spinner-size: 48;--tedi-spinner-stroke-width: 3.6666666667}@media (prefers-reduced-motion: reduce){.tedi-spinner{animation:none}}@keyframes tedi-spinner-outer{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes tedi-spinner-inner{0%{stroke-dasharray:1,200;stroke-dashoffset:0}50%{stroke-dasharray:100,200;stroke-dashoffset:-15}to{stroke-dasharray:100,200;stroke-dashoffset:-125}}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
2450
|
+
}
|
|
2451
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: SpinnerComponent, decorators: [{
|
|
2452
|
+
type: Component,
|
|
2453
|
+
args: [{ selector: "tedi-spinner", standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, host: {
|
|
2454
|
+
"[class]": "classes()",
|
|
2455
|
+
"role": "status",
|
|
2456
|
+
"aria-live": "polite",
|
|
2457
|
+
"[attr.aria-label]": "label() ? label() : null",
|
|
2458
|
+
"[attr.aria-hidden]": "!label()"
|
|
2459
|
+
}, template: "<svg viewBox=\"0 0 44 44\" aria-hidden=\"true\">\n <circle\n class=\"tedi-spinner--inner\"\n cx=\"22\"\n cy=\"22\"\n [attr.r]=\"r()\"\n fill=\"none\"\n ></circle>\n</svg>", styles: [".tedi-spinner{display:flex;width:calc(var(--tedi-spinner-size, 16) * 1rem / 16);height:calc(var(--tedi-spinner-size, 16) * 1rem / 16);animation:1.4s linear 0s infinite normal none running tedi-spinner-outer}.tedi-spinner--inner{stroke-width:var(--tedi-spinner-stroke-width);stroke-dasharray:80,200;stroke-dashoffset:0;animation:1.4s ease-in-out 0s infinite normal none running tedi-spinner-inner}@media (prefers-reduced-motion: reduce){.tedi-spinner--inner{animation:none}}.tedi-spinner--color-primary{stroke:var(--loader-spinner-color-primary)}.tedi-spinner--color-secondary{stroke:var(--loader-spinner-color-secondary)}.tedi-spinner--size-10{--tedi-spinner-size: 10;--tedi-spinner-stroke-width: 4.4}.tedi-spinner--size-16{--tedi-spinner-size: 16;--tedi-spinner-stroke-width: 5.5}.tedi-spinner--size-48{--tedi-spinner-size: 48;--tedi-spinner-stroke-width: 3.6666666667}@media (prefers-reduced-motion: reduce){.tedi-spinner{animation:none}}@keyframes tedi-spinner-outer{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes tedi-spinner-inner{0%{stroke-dasharray:1,200;stroke-dashoffset:0}50%{stroke-dasharray:100,200;stroke-dashoffset:-15}to{stroke-dasharray:100,200;stroke-dashoffset:-125}}\n"] }]
|
|
2460
|
+
}] });
|
|
2461
|
+
|
|
2462
|
+
class TagComponent {
|
|
2463
|
+
idGenerator = inject(_IdGenerator);
|
|
2464
|
+
uniqueId = this.idGenerator.getId('tedi-tag');
|
|
2465
|
+
/**
|
|
2466
|
+
* Whether the tag is in loading state.
|
|
2467
|
+
* When true, a spinner will be displayed inside the tag.
|
|
2468
|
+
* @default false
|
|
2469
|
+
*/
|
|
2470
|
+
loading = input(false);
|
|
2471
|
+
/**
|
|
2472
|
+
* Whether the tag can be closed.
|
|
2473
|
+
* When true, a close button will be displayed that emits the 'closed' event when clicked.
|
|
2474
|
+
* @default false
|
|
2475
|
+
*/
|
|
2476
|
+
closable = input(false);
|
|
2477
|
+
/**
|
|
2478
|
+
* The visual style of the tag.
|
|
2479
|
+
* Possible values: 'primary', 'secondary', 'danger'
|
|
2480
|
+
* @default "primary"
|
|
2481
|
+
*/
|
|
2482
|
+
type = input("primary");
|
|
2483
|
+
/**
|
|
2484
|
+
* Event emitted when the close button is clicked.
|
|
2485
|
+
*/
|
|
2486
|
+
closed = output();
|
|
2487
|
+
classes = computed(() => {
|
|
2488
|
+
const classList = [];
|
|
2489
|
+
if (this.type()) {
|
|
2490
|
+
classList.push(`tedi-tag--${this.type()}`);
|
|
2491
|
+
}
|
|
2492
|
+
return classList.join(" ");
|
|
2493
|
+
});
|
|
2494
|
+
handleClose(event) {
|
|
2495
|
+
this.closed.emit(event);
|
|
2496
|
+
}
|
|
2497
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: TagComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
2498
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.15", type: TagComponent, isStandalone: true, selector: "tedi-tag", inputs: { loading: { classPropertyName: "loading", publicName: "loading", isSignal: true, isRequired: false, transformFunction: null }, closable: { classPropertyName: "closable", publicName: "closable", isSignal: true, isRequired: false, transformFunction: null }, type: { classPropertyName: "type", publicName: "type", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { closed: "closed" }, host: { properties: { "class.tedi-tag": "true", "class.tedi-tag--loading": "loading()", "class.tedi-tag--closable": "closable()", "class": "classes()" } }, ngImport: i0, template: "@if (type() === \"danger\") {\n <span class=\"tedi-tag__icon-wrapper\">\n <tedi-icon name=\"error\" color=\"danger\" [size]=\"16\" />\n </span>\n}\n\n<span class=\"tedi-tag__content\" [attr.id]=\"uniqueId\">\n <ng-content />\n</span>\n\n@if (loading()) {\n <span class=\"tedi-tag__spinner-wrapper\">\n <tedi-spinner [size]=\"48\" />\n </span>\n} @else if (closable()) {\n <button\n type=\"button\"\n tedi-closing-button\n size=\"small\"\n [iconSize]=\"18\"\n (click)=\"handleClose($event)\"\n [attr.aria-describedby]=\"uniqueId\"\n [ariaLabel]=\"'remove' | tediTranslate\"\n >\n </button>\n}\n", styles: [".tedi-tag{--_background-color: var(--tag-primary-background);--_border-color: var(--tag-primary-border);--_line-height: var(--body-small-regular-line-height);display:inline-flex;gap:var(--tag-default-padding-x);align-items:flex-start;padding:0 var(--tag-default-padding-x);font-family:var(--family-default);font-size:var(--body-small-regular-size);font-weight:var(--body-small-regular-weight);line-height:var(--_line-height);color:var(--general-text-primary);background-color:var(--_background-color);border-radius:var(--tag-default-radius);box-shadow:inset 0 0 0 1px var(--_border-color)}.tedi-tag__content{padding:var(--tag-default-padding-y) 0}.tedi-tag__icon-wrapper{line-height:var(--_line-height)}.tedi-tag__spinner-wrapper{display:flex;align-items:center;height:calc(var(--_line-height) + var(--tag-default-padding-y))}.tedi-tag__spinner-wrapper tedi-spinner{--tedi-spinner-size: 12;--tedi-spinner-stroke: 2}.tedi-tag--closable:not(.tedi-tag--loading){padding-right:0}.tedi-tag--closable:not(.tedi-tag--loading) .tedi-closing-button{border-radius:0 var(--button-radius-sm) var(--button-radius-sm) 0}.tedi-tag--secondary{--_background-color: var(--tag-secondary-background);--_border-color: var(--tag-secondary-border)}.tedi-tag--danger{--_background-color: var(--tag-danger-background);--_border-color: var(--tag-danger-border)}\n"], dependencies: [{ kind: "component", type: SpinnerComponent, selector: "tedi-spinner", inputs: ["size", "color", "label"] }, { kind: "component", type: IconComponent, selector: "tedi-icon", inputs: ["name", "size", "color", "background", "variant", "type", "label"] }, { kind: "component", type: ClosingButtonComponent, selector: "button[tedi-closing-button]", inputs: ["size", "iconSize", "ariaLabel"] }, { kind: "pipe", type: TediTranslationPipe, name: "tediTranslate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
2499
|
+
}
|
|
2500
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: TagComponent, decorators: [{
|
|
2501
|
+
type: Component,
|
|
2502
|
+
args: [{ selector: "tedi-tag", imports: [SpinnerComponent, IconComponent, ClosingButtonComponent, TediTranslationPipe], encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, host: {
|
|
2503
|
+
"[class.tedi-tag]": "true",
|
|
2504
|
+
"[class.tedi-tag--loading]": "loading()",
|
|
2505
|
+
"[class.tedi-tag--closable]": "closable()",
|
|
2506
|
+
"[class]": "classes()",
|
|
2507
|
+
}, template: "@if (type() === \"danger\") {\n <span class=\"tedi-tag__icon-wrapper\">\n <tedi-icon name=\"error\" color=\"danger\" [size]=\"16\" />\n </span>\n}\n\n<span class=\"tedi-tag__content\" [attr.id]=\"uniqueId\">\n <ng-content />\n</span>\n\n@if (loading()) {\n <span class=\"tedi-tag__spinner-wrapper\">\n <tedi-spinner [size]=\"48\" />\n </span>\n} @else if (closable()) {\n <button\n type=\"button\"\n tedi-closing-button\n size=\"small\"\n [iconSize]=\"18\"\n (click)=\"handleClose($event)\"\n [attr.aria-describedby]=\"uniqueId\"\n [ariaLabel]=\"'remove' | tediTranslate\"\n >\n </button>\n}\n", styles: [".tedi-tag{--_background-color: var(--tag-primary-background);--_border-color: var(--tag-primary-border);--_line-height: var(--body-small-regular-line-height);display:inline-flex;gap:var(--tag-default-padding-x);align-items:flex-start;padding:0 var(--tag-default-padding-x);font-family:var(--family-default);font-size:var(--body-small-regular-size);font-weight:var(--body-small-regular-weight);line-height:var(--_line-height);color:var(--general-text-primary);background-color:var(--_background-color);border-radius:var(--tag-default-radius);box-shadow:inset 0 0 0 1px var(--_border-color)}.tedi-tag__content{padding:var(--tag-default-padding-y) 0}.tedi-tag__icon-wrapper{line-height:var(--_line-height)}.tedi-tag__spinner-wrapper{display:flex;align-items:center;height:calc(var(--_line-height) + var(--tag-default-padding-y))}.tedi-tag__spinner-wrapper tedi-spinner{--tedi-spinner-size: 12;--tedi-spinner-stroke: 2}.tedi-tag--closable:not(.tedi-tag--loading){padding-right:0}.tedi-tag--closable:not(.tedi-tag--loading) .tedi-closing-button{border-radius:0 var(--button-radius-sm) var(--button-radius-sm) 0}.tedi-tag--secondary{--_background-color: var(--tag-secondary-background);--_border-color: var(--tag-secondary-border)}.tedi-tag--danger{--_background-color: var(--tag-danger-background);--_border-color: var(--tag-danger-border)}\n"] }]
|
|
2508
|
+
}] });
|
|
2509
|
+
|
|
2510
|
+
class DropdownItemValueComponent {
|
|
2511
|
+
/**
|
|
2512
|
+
* Type of item value - controls selection indicator
|
|
2513
|
+
* - 'default': No selection indicator
|
|
2514
|
+
* - 'checkbox': Shows checkbox (for multiselect)
|
|
2515
|
+
* - 'radio': Shows radio button (for single select listbox)
|
|
2516
|
+
* @default 'default'
|
|
2517
|
+
*/
|
|
2518
|
+
type = input("default");
|
|
2519
|
+
/**
|
|
2520
|
+
* Layout: 'horizontal' (side-by-side) or 'vertical' (stacked)
|
|
2521
|
+
* @default 'horizontal'
|
|
2522
|
+
*/
|
|
2523
|
+
layout = input("horizontal");
|
|
2524
|
+
/**
|
|
2525
|
+
* Whether the item is selected (controls checkbox/radio state)
|
|
2526
|
+
* @default false
|
|
2527
|
+
*/
|
|
2528
|
+
selected = input(false);
|
|
2529
|
+
/**
|
|
2530
|
+
* Whether the checkbox is in indeterminate state
|
|
2531
|
+
* @default false
|
|
2532
|
+
*/
|
|
2533
|
+
indeterminate = input(false);
|
|
2534
|
+
/**
|
|
2535
|
+
* Whether the item is disabled
|
|
2536
|
+
* @default false
|
|
2537
|
+
*/
|
|
2538
|
+
disabled = input(false);
|
|
2539
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: DropdownItemValueComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
2540
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.15", type: DropdownItemValueComponent, isStandalone: true, selector: "tedi-dropdown-item-value", inputs: { type: { classPropertyName: "type", publicName: "type", isSignal: true, isRequired: false, transformFunction: null }, layout: { classPropertyName: "layout", publicName: "layout", isSignal: true, isRequired: false, transformFunction: null }, selected: { classPropertyName: "selected", publicName: "selected", isSignal: true, isRequired: false, transformFunction: null }, indeterminate: { classPropertyName: "indeterminate", publicName: "indeterminate", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class.tedi-dropdown-item-value--vertical": "layout() === 'vertical'", "class.tedi-dropdown-item-value--horizontal": "layout() === 'horizontal'", "class.tedi-dropdown-item-value--checkbox": "type() === 'checkbox'", "class.tedi-dropdown-item-value--radio": "type() === 'radio'" }, classAttribute: "tedi-dropdown-item-value" }, ngImport: i0, template: "@if (type() === 'checkbox') {\n <input\n type=\"checkbox\"\n tedi-checkbox\n class=\"tedi-dropdown-item-value__checkbox\"\n [checked]=\"selected()\"\n [indeterminate]=\"indeterminate()\"\n [disabled]=\"disabled()\"\n (click)=\"$event.stopPropagation()\"\n />\n} @else if (type() === 'radio') {\n <input\n type=\"radio\"\n class=\"tedi-dropdown-item-value__radio\"\n [checked]=\"selected()\"\n [disabled]=\"disabled()\"\n (click)=\"$event.stopPropagation()\"\n />\n}\n<ng-content select=\"tedi-icon, [tediIcon]\" />\n<div class=\"tedi-dropdown-item-value__content\">\n <ng-content select=\"tedi-dropdown-item-value-label\" />\n <ng-content select=\"tedi-dropdown-item-value-meta\" />\n</div>\n<ng-content />\n", styles: [".tedi-dropdown-item-value{display:flex;gap:var(--dropdown-item-inner-spacing);align-items:center;width:100%}.tedi-dropdown-item-value--vertical.tedi-dropdown-item-value--checkbox,.tedi-dropdown-item-value--vertical.tedi-dropdown-item-value--radio{align-items:flex-start}.tedi-dropdown-item-value--vertical.tedi-dropdown-item-value--checkbox>input[tedi-checkbox][type=checkbox],.tedi-dropdown-item-value--vertical.tedi-dropdown-item-value--checkbox>input.tedi-dropdown-item-value__radio,.tedi-dropdown-item-value--vertical.tedi-dropdown-item-value--checkbox>.tedi-icon,.tedi-dropdown-item-value--vertical.tedi-dropdown-item-value--radio>input[tedi-checkbox][type=checkbox],.tedi-dropdown-item-value--vertical.tedi-dropdown-item-value--radio>input.tedi-dropdown-item-value__radio,.tedi-dropdown-item-value--vertical.tedi-dropdown-item-value--radio>.tedi-icon{margin-top:calc((var(--body-regular-line-height) - var(--form-checkbox-radio-size-responsive)) / 2)}.tedi-dropdown-item-value--radio{gap:var(--form-checkbox-radio-inner-spacing)}.tedi-dropdown-item-value__checkbox,.tedi-dropdown-item-value__radio{flex-shrink:0;pointer-events:none}.tedi-dropdown-item-value__radio{position:relative;width:var(--form-checkbox-radio-size-responsive);height:var(--form-checkbox-radio-size-responsive);padding:0;margin:0;vertical-align:middle;appearance:none;cursor:pointer;background-color:var(--form-checkbox-radio-default-background-default);border:var(--borders-01) solid var(--form-checkbox-radio-default-border-default);border-radius:var(--form-checkbox-radio-indicator-radius-radio)}.tedi-dropdown-item-value__radio:checked{background-color:var(--form-checkbox-radio-default-background-default);border-color:var(--form-checkbox-radio-default-border-selected)}.tedi-dropdown-item-value__radio:checked:before{position:absolute;top:50%;left:50%;width:calc(var(--form-checkbox-radio-size-responsive) * .625);height:calc(var(--form-checkbox-radio-size-responsive) * .625);content:\"\";background:var(--form-checkbox-radio-default-border-selected);border-radius:50%;transform:translate(-50%,-50%)}.tedi-dropdown-item-value__radio:disabled{cursor:not-allowed;background-color:var(--form-input-background-disabled);border-color:var(--form-input-border-disabled)}.tedi-dropdown-item-value__radio:disabled:checked{background-color:var(--form-checkbox-radio-default-background-default);border-color:var(--form-checkbox-radio-default-border-selected-disabled)}.tedi-dropdown-item-value__radio:disabled:checked:before{background:var(--form-checkbox-radio-default-border-selected-disabled)}.tedi-dropdown-item-value__content{display:flex;flex:1 0 0;min-width:0}.tedi-dropdown-item-value--horizontal .tedi-dropdown-item-value__content{flex-direction:row;gap:var(--dropdown-item-inner-spacing);align-items:center;justify-content:space-between}.tedi-dropdown-item-value--vertical .tedi-dropdown-item-value__content{flex-direction:column;align-items:flex-start}.tedi-dropdown-item-value__label{flex:1 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis;font-size:var(--body-regular-size);line-height:var(--body-regular-line-height);color:var(--dropdown-item-default-text)}.tedi-dropdown-item-value__meta{flex-shrink:0;font-size:var(--body-small-regular-size);line-height:var(--body-small-regular-line-height);color:var(--general-text-tertiary)}.tedi-dropdown-item-value--vertical .tedi-dropdown-item-value__meta{flex-shrink:1}li[tedi-dropdown-item][aria-selected=true] .tedi-dropdown-item-value__label,li[tedi-dropdown-item][aria-selected=true] .tedi-dropdown-item-value__meta,li[tedi-dropdown-item].tedi-dropdown-item--selected .tedi-dropdown-item-value__label,li[tedi-dropdown-item].tedi-dropdown-item--selected .tedi-dropdown-item-value__meta,.tedi-dropdown-item[aria-selected=true] .tedi-dropdown-item-value__label,.tedi-dropdown-item[aria-selected=true] .tedi-dropdown-item-value__meta,.tedi-dropdown-item.tedi-dropdown-item--selected .tedi-dropdown-item-value__label,.tedi-dropdown-item.tedi-dropdown-item--selected .tedi-dropdown-item-value__meta{color:inherit}li[tedi-dropdown-item]:hover:not(.tedi-dropdown-item--disabled,[aria-disabled=true]) .tedi-dropdown-item-value__label,li[tedi-dropdown-item]:hover:not(.tedi-dropdown-item--disabled,[aria-disabled=true]) .tedi-dropdown-item-value__meta,.tedi-dropdown-item:hover:not(.tedi-dropdown-item--disabled,[aria-disabled=true]) .tedi-dropdown-item-value__label,.tedi-dropdown-item:hover:not(.tedi-dropdown-item--disabled,[aria-disabled=true]) .tedi-dropdown-item-value__meta{color:inherit}li[tedi-dropdown-item][aria-disabled=true] .tedi-dropdown-item-value__label,li[tedi-dropdown-item][aria-disabled=true] .tedi-dropdown-item-value__meta,li[tedi-dropdown-item].tedi-dropdown-item--disabled .tedi-dropdown-item-value__label,li[tedi-dropdown-item].tedi-dropdown-item--disabled .tedi-dropdown-item-value__meta,.tedi-dropdown-item[aria-disabled=true] .tedi-dropdown-item-value__label,.tedi-dropdown-item[aria-disabled=true] .tedi-dropdown-item-value__meta,.tedi-dropdown-item.tedi-dropdown-item--disabled .tedi-dropdown-item-value__label,.tedi-dropdown-item.tedi-dropdown-item--disabled .tedi-dropdown-item-value__meta{color:inherit}li[tedi-dropdown-item]:has(.tedi-dropdown-item-value--checkbox,.tedi-dropdown-item-value--radio)[aria-selected=true],li[tedi-dropdown-item]:has(.tedi-dropdown-item-value--checkbox,.tedi-dropdown-item-value--radio).tedi-dropdown-item--selected,.tedi-dropdown-item:has(.tedi-dropdown-item-value--checkbox,.tedi-dropdown-item-value--radio)[aria-selected=true],.tedi-dropdown-item:has(.tedi-dropdown-item-value--checkbox,.tedi-dropdown-item-value--radio).tedi-dropdown-item--selected{color:var(--dropdown-item-default-text);background:var(--dropdown-item-default-background)}li[tedi-dropdown-item]:has(.tedi-dropdown-item-value--checkbox,.tedi-dropdown-item-value--radio)[aria-selected=true]:hover:not(.tedi-dropdown-item--disabled,[aria-disabled=true]),li[tedi-dropdown-item]:has(.tedi-dropdown-item-value--checkbox,.tedi-dropdown-item-value--radio).tedi-dropdown-item--selected:hover:not(.tedi-dropdown-item--disabled,[aria-disabled=true]),.tedi-dropdown-item:has(.tedi-dropdown-item-value--checkbox,.tedi-dropdown-item-value--radio)[aria-selected=true]:hover:not(.tedi-dropdown-item--disabled,[aria-disabled=true]),.tedi-dropdown-item:has(.tedi-dropdown-item-value--checkbox,.tedi-dropdown-item-value--radio).tedi-dropdown-item--selected:hover:not(.tedi-dropdown-item--disabled,[aria-disabled=true]){color:var(--dropdown-item-hover-text);background:var(--dropdown-item-hover-background)}li[tedi-dropdown-item]:hover:not(.tedi-dropdown-item--disabled,[aria-disabled=true]) .tedi-dropdown-item-value__radio,.tedi-dropdown-item:hover:not(.tedi-dropdown-item--disabled,[aria-disabled=true]) .tedi-dropdown-item-value__radio{background-color:var(--form-checkbox-radio-default-background-hover);border-color:var(--form-checkbox-radio-default-border-hover);border-width:var(--borders-02)}\n"], dependencies: [{ kind: "component", type: CheckboxComponent, selector: "input[type=checkbox][tedi-checkbox]", inputs: ["size", "invalid"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
2541
|
+
}
|
|
2542
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: DropdownItemValueComponent, decorators: [{
|
|
2543
|
+
type: Component,
|
|
2544
|
+
args: [{ selector: "tedi-dropdown-item-value", standalone: true, imports: [CheckboxComponent], changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, host: {
|
|
2545
|
+
class: "tedi-dropdown-item-value",
|
|
2546
|
+
"[class.tedi-dropdown-item-value--vertical]": "layout() === 'vertical'",
|
|
2547
|
+
"[class.tedi-dropdown-item-value--horizontal]": "layout() === 'horizontal'",
|
|
2548
|
+
"[class.tedi-dropdown-item-value--checkbox]": "type() === 'checkbox'",
|
|
2549
|
+
"[class.tedi-dropdown-item-value--radio]": "type() === 'radio'",
|
|
2550
|
+
}, template: "@if (type() === 'checkbox') {\n <input\n type=\"checkbox\"\n tedi-checkbox\n class=\"tedi-dropdown-item-value__checkbox\"\n [checked]=\"selected()\"\n [indeterminate]=\"indeterminate()\"\n [disabled]=\"disabled()\"\n (click)=\"$event.stopPropagation()\"\n />\n} @else if (type() === 'radio') {\n <input\n type=\"radio\"\n class=\"tedi-dropdown-item-value__radio\"\n [checked]=\"selected()\"\n [disabled]=\"disabled()\"\n (click)=\"$event.stopPropagation()\"\n />\n}\n<ng-content select=\"tedi-icon, [tediIcon]\" />\n<div class=\"tedi-dropdown-item-value__content\">\n <ng-content select=\"tedi-dropdown-item-value-label\" />\n <ng-content select=\"tedi-dropdown-item-value-meta\" />\n</div>\n<ng-content />\n", styles: [".tedi-dropdown-item-value{display:flex;gap:var(--dropdown-item-inner-spacing);align-items:center;width:100%}.tedi-dropdown-item-value--vertical.tedi-dropdown-item-value--checkbox,.tedi-dropdown-item-value--vertical.tedi-dropdown-item-value--radio{align-items:flex-start}.tedi-dropdown-item-value--vertical.tedi-dropdown-item-value--checkbox>input[tedi-checkbox][type=checkbox],.tedi-dropdown-item-value--vertical.tedi-dropdown-item-value--checkbox>input.tedi-dropdown-item-value__radio,.tedi-dropdown-item-value--vertical.tedi-dropdown-item-value--checkbox>.tedi-icon,.tedi-dropdown-item-value--vertical.tedi-dropdown-item-value--radio>input[tedi-checkbox][type=checkbox],.tedi-dropdown-item-value--vertical.tedi-dropdown-item-value--radio>input.tedi-dropdown-item-value__radio,.tedi-dropdown-item-value--vertical.tedi-dropdown-item-value--radio>.tedi-icon{margin-top:calc((var(--body-regular-line-height) - var(--form-checkbox-radio-size-responsive)) / 2)}.tedi-dropdown-item-value--radio{gap:var(--form-checkbox-radio-inner-spacing)}.tedi-dropdown-item-value__checkbox,.tedi-dropdown-item-value__radio{flex-shrink:0;pointer-events:none}.tedi-dropdown-item-value__radio{position:relative;width:var(--form-checkbox-radio-size-responsive);height:var(--form-checkbox-radio-size-responsive);padding:0;margin:0;vertical-align:middle;appearance:none;cursor:pointer;background-color:var(--form-checkbox-radio-default-background-default);border:var(--borders-01) solid var(--form-checkbox-radio-default-border-default);border-radius:var(--form-checkbox-radio-indicator-radius-radio)}.tedi-dropdown-item-value__radio:checked{background-color:var(--form-checkbox-radio-default-background-default);border-color:var(--form-checkbox-radio-default-border-selected)}.tedi-dropdown-item-value__radio:checked:before{position:absolute;top:50%;left:50%;width:calc(var(--form-checkbox-radio-size-responsive) * .625);height:calc(var(--form-checkbox-radio-size-responsive) * .625);content:\"\";background:var(--form-checkbox-radio-default-border-selected);border-radius:50%;transform:translate(-50%,-50%)}.tedi-dropdown-item-value__radio:disabled{cursor:not-allowed;background-color:var(--form-input-background-disabled);border-color:var(--form-input-border-disabled)}.tedi-dropdown-item-value__radio:disabled:checked{background-color:var(--form-checkbox-radio-default-background-default);border-color:var(--form-checkbox-radio-default-border-selected-disabled)}.tedi-dropdown-item-value__radio:disabled:checked:before{background:var(--form-checkbox-radio-default-border-selected-disabled)}.tedi-dropdown-item-value__content{display:flex;flex:1 0 0;min-width:0}.tedi-dropdown-item-value--horizontal .tedi-dropdown-item-value__content{flex-direction:row;gap:var(--dropdown-item-inner-spacing);align-items:center;justify-content:space-between}.tedi-dropdown-item-value--vertical .tedi-dropdown-item-value__content{flex-direction:column;align-items:flex-start}.tedi-dropdown-item-value__label{flex:1 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis;font-size:var(--body-regular-size);line-height:var(--body-regular-line-height);color:var(--dropdown-item-default-text)}.tedi-dropdown-item-value__meta{flex-shrink:0;font-size:var(--body-small-regular-size);line-height:var(--body-small-regular-line-height);color:var(--general-text-tertiary)}.tedi-dropdown-item-value--vertical .tedi-dropdown-item-value__meta{flex-shrink:1}li[tedi-dropdown-item][aria-selected=true] .tedi-dropdown-item-value__label,li[tedi-dropdown-item][aria-selected=true] .tedi-dropdown-item-value__meta,li[tedi-dropdown-item].tedi-dropdown-item--selected .tedi-dropdown-item-value__label,li[tedi-dropdown-item].tedi-dropdown-item--selected .tedi-dropdown-item-value__meta,.tedi-dropdown-item[aria-selected=true] .tedi-dropdown-item-value__label,.tedi-dropdown-item[aria-selected=true] .tedi-dropdown-item-value__meta,.tedi-dropdown-item.tedi-dropdown-item--selected .tedi-dropdown-item-value__label,.tedi-dropdown-item.tedi-dropdown-item--selected .tedi-dropdown-item-value__meta{color:inherit}li[tedi-dropdown-item]:hover:not(.tedi-dropdown-item--disabled,[aria-disabled=true]) .tedi-dropdown-item-value__label,li[tedi-dropdown-item]:hover:not(.tedi-dropdown-item--disabled,[aria-disabled=true]) .tedi-dropdown-item-value__meta,.tedi-dropdown-item:hover:not(.tedi-dropdown-item--disabled,[aria-disabled=true]) .tedi-dropdown-item-value__label,.tedi-dropdown-item:hover:not(.tedi-dropdown-item--disabled,[aria-disabled=true]) .tedi-dropdown-item-value__meta{color:inherit}li[tedi-dropdown-item][aria-disabled=true] .tedi-dropdown-item-value__label,li[tedi-dropdown-item][aria-disabled=true] .tedi-dropdown-item-value__meta,li[tedi-dropdown-item].tedi-dropdown-item--disabled .tedi-dropdown-item-value__label,li[tedi-dropdown-item].tedi-dropdown-item--disabled .tedi-dropdown-item-value__meta,.tedi-dropdown-item[aria-disabled=true] .tedi-dropdown-item-value__label,.tedi-dropdown-item[aria-disabled=true] .tedi-dropdown-item-value__meta,.tedi-dropdown-item.tedi-dropdown-item--disabled .tedi-dropdown-item-value__label,.tedi-dropdown-item.tedi-dropdown-item--disabled .tedi-dropdown-item-value__meta{color:inherit}li[tedi-dropdown-item]:has(.tedi-dropdown-item-value--checkbox,.tedi-dropdown-item-value--radio)[aria-selected=true],li[tedi-dropdown-item]:has(.tedi-dropdown-item-value--checkbox,.tedi-dropdown-item-value--radio).tedi-dropdown-item--selected,.tedi-dropdown-item:has(.tedi-dropdown-item-value--checkbox,.tedi-dropdown-item-value--radio)[aria-selected=true],.tedi-dropdown-item:has(.tedi-dropdown-item-value--checkbox,.tedi-dropdown-item-value--radio).tedi-dropdown-item--selected{color:var(--dropdown-item-default-text);background:var(--dropdown-item-default-background)}li[tedi-dropdown-item]:has(.tedi-dropdown-item-value--checkbox,.tedi-dropdown-item-value--radio)[aria-selected=true]:hover:not(.tedi-dropdown-item--disabled,[aria-disabled=true]),li[tedi-dropdown-item]:has(.tedi-dropdown-item-value--checkbox,.tedi-dropdown-item-value--radio).tedi-dropdown-item--selected:hover:not(.tedi-dropdown-item--disabled,[aria-disabled=true]),.tedi-dropdown-item:has(.tedi-dropdown-item-value--checkbox,.tedi-dropdown-item-value--radio)[aria-selected=true]:hover:not(.tedi-dropdown-item--disabled,[aria-disabled=true]),.tedi-dropdown-item:has(.tedi-dropdown-item-value--checkbox,.tedi-dropdown-item-value--radio).tedi-dropdown-item--selected:hover:not(.tedi-dropdown-item--disabled,[aria-disabled=true]){color:var(--dropdown-item-hover-text);background:var(--dropdown-item-hover-background)}li[tedi-dropdown-item]:hover:not(.tedi-dropdown-item--disabled,[aria-disabled=true]) .tedi-dropdown-item-value__radio,.tedi-dropdown-item:hover:not(.tedi-dropdown-item--disabled,[aria-disabled=true]) .tedi-dropdown-item-value__radio{background-color:var(--form-checkbox-radio-default-background-hover);border-color:var(--form-checkbox-radio-default-border-hover);border-width:var(--borders-02)}\n"] }]
|
|
2551
|
+
}] });
|
|
2552
|
+
|
|
2553
|
+
class DropdownItemValueLabelComponent {
|
|
2554
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: DropdownItemValueLabelComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
2555
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.15", type: DropdownItemValueLabelComponent, isStandalone: true, selector: "tedi-dropdown-item-value-label", host: { classAttribute: "tedi-dropdown-item-value__label" }, ngImport: i0, template: `<ng-content />`, isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
2556
|
+
}
|
|
2557
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: DropdownItemValueLabelComponent, decorators: [{
|
|
2558
|
+
type: Component,
|
|
2559
|
+
args: [{
|
|
2560
|
+
selector: "tedi-dropdown-item-value-label",
|
|
2561
|
+
template: `<ng-content />`,
|
|
2562
|
+
standalone: true,
|
|
2563
|
+
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
2564
|
+
encapsulation: ViewEncapsulation.None,
|
|
2565
|
+
host: {
|
|
2566
|
+
class: "tedi-dropdown-item-value__label",
|
|
2567
|
+
},
|
|
2568
|
+
}]
|
|
2569
|
+
}] });
|
|
2570
|
+
|
|
2571
|
+
/**
|
|
2572
|
+
* Directive for custom option template rendering in the dropdown.
|
|
2573
|
+
*
|
|
2574
|
+
* @example
|
|
2575
|
+
* ```html
|
|
2576
|
+
* <tedi-select [options]="options">
|
|
2577
|
+
* <ng-template tediSelectOption let-item>
|
|
2578
|
+
* <div class="custom-option">
|
|
2579
|
+
* <strong>{{ item.title }}</strong>
|
|
2580
|
+
* <span>{{ item.description }}</span>
|
|
2581
|
+
* </div>
|
|
2582
|
+
* </ng-template>
|
|
2583
|
+
* </tedi-select>
|
|
2584
|
+
* ```
|
|
2585
|
+
*/
|
|
2586
|
+
class SelectOptionTemplateDirective {
|
|
2587
|
+
template = inject(TemplateRef);
|
|
2588
|
+
static ngTemplateContextGuard(_dir, ctx) {
|
|
2589
|
+
return true;
|
|
2590
|
+
}
|
|
2591
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: SelectOptionTemplateDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
2592
|
+
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.2.15", type: SelectOptionTemplateDirective, isStandalone: true, selector: "[tediSelectOption]", ngImport: i0 });
|
|
2593
|
+
}
|
|
2594
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: SelectOptionTemplateDirective, decorators: [{
|
|
2595
|
+
type: Directive,
|
|
2596
|
+
args: [{
|
|
2597
|
+
selector: "[tediSelectOption]",
|
|
2598
|
+
standalone: true,
|
|
2599
|
+
}]
|
|
2600
|
+
}] });
|
|
2601
|
+
/**
|
|
2602
|
+
* Directive for custom value template rendering (selected value display in trigger).
|
|
2603
|
+
* Used for single-select to display custom content like colors, icons, etc.
|
|
2604
|
+
*
|
|
2605
|
+
* @example
|
|
2606
|
+
* ```html
|
|
2607
|
+
* <tedi-select [options]="colors" bindLabel="name" bindValue="id">
|
|
2608
|
+
* <ng-template tediSelectValue let-item>
|
|
2609
|
+
* <div class="color-swatch" [style.background]="item.color"></div>
|
|
2610
|
+
* </ng-template>
|
|
2611
|
+
* </tedi-select>
|
|
2612
|
+
* ```
|
|
2613
|
+
*/
|
|
2614
|
+
class SelectValueTemplateDirective {
|
|
2615
|
+
template = inject(TemplateRef);
|
|
2616
|
+
static ngTemplateContextGuard(_dir, ctx) {
|
|
2617
|
+
return true;
|
|
2618
|
+
}
|
|
2619
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: SelectValueTemplateDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
2620
|
+
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.2.15", type: SelectValueTemplateDirective, isStandalone: true, selector: "[tediSelectValue]", ngImport: i0 });
|
|
2621
|
+
}
|
|
2622
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: SelectValueTemplateDirective, decorators: [{
|
|
2623
|
+
type: Directive,
|
|
2624
|
+
args: [{
|
|
2625
|
+
selector: "[tediSelectValue]",
|
|
2626
|
+
standalone: true,
|
|
2627
|
+
}]
|
|
2628
|
+
}] });
|
|
2629
|
+
|
|
2630
|
+
var SpecialOptionControls;
|
|
2631
|
+
(function (SpecialOptionControls) {
|
|
2632
|
+
SpecialOptionControls["SELECT_ALL"] = "\0SELECT_ALL";
|
|
2633
|
+
SpecialOptionControls["SELECT_GROUP"] = "\0SELECT_GROUP_";
|
|
2634
|
+
})(SpecialOptionControls || (SpecialOptionControls = {}));
|
|
2635
|
+
class SelectComponent {
|
|
2636
|
+
/**
|
|
2637
|
+
* Unique identifier for the select input element.
|
|
2638
|
+
* Used for label association and accessibility.
|
|
2639
|
+
*/
|
|
2640
|
+
inputId = input.required();
|
|
2641
|
+
/**
|
|
2642
|
+
* Label text displayed above the select.
|
|
2643
|
+
*/
|
|
2644
|
+
label = input();
|
|
2645
|
+
/**
|
|
2646
|
+
* Whether the field is required.
|
|
2647
|
+
* @default false
|
|
2648
|
+
*/
|
|
2649
|
+
required = input(false);
|
|
2650
|
+
/**
|
|
2651
|
+
* Placeholder text shown when no value is selected.
|
|
2652
|
+
* @default ""
|
|
2653
|
+
*/
|
|
2654
|
+
placeholder = input("");
|
|
2655
|
+
/**
|
|
2656
|
+
* Visual state of the input.
|
|
2657
|
+
* @default "default"
|
|
2658
|
+
*/
|
|
2659
|
+
state = input("default");
|
|
2660
|
+
/**
|
|
2661
|
+
* Size variant of the select.
|
|
2662
|
+
* @default "default"
|
|
2663
|
+
*/
|
|
2664
|
+
size = input("default");
|
|
2665
|
+
/**
|
|
2666
|
+
* Whether to show a clear button when a value is selected.
|
|
2667
|
+
* @default false
|
|
2668
|
+
*/
|
|
2669
|
+
clearable = input(false);
|
|
2670
|
+
/**
|
|
2671
|
+
* Element reference used to determine dropdown width.
|
|
2672
|
+
* When null, dropdown width matches the host element.
|
|
2673
|
+
*/
|
|
2674
|
+
dropdownWidthRef = input();
|
|
2675
|
+
/**
|
|
2676
|
+
* Configuration for the feedback text displayed below the select.
|
|
2677
|
+
*/
|
|
2678
|
+
feedbackText = input();
|
|
2679
|
+
/**
|
|
2680
|
+
* Array of options to display in the dropdown.
|
|
2681
|
+
* Can be an array of objects or primitive values.
|
|
2682
|
+
* @default []
|
|
2683
|
+
*/
|
|
2684
|
+
options = input([]);
|
|
2685
|
+
/**
|
|
2686
|
+
* Property name to use as the display label for object items.
|
|
2687
|
+
* @default "label"
|
|
2688
|
+
*/
|
|
2689
|
+
bindLabel = input("label");
|
|
2690
|
+
/**
|
|
2691
|
+
* Property name to use as the value for object items.
|
|
2692
|
+
* When undefined, the entire object is used as the value.
|
|
2693
|
+
*/
|
|
2694
|
+
bindValue = input(undefined);
|
|
2695
|
+
/**
|
|
2696
|
+
* Whether multiple items can be selected.
|
|
2697
|
+
* @default false
|
|
2698
|
+
*/
|
|
2699
|
+
allowMultiple = input(false);
|
|
2700
|
+
/**
|
|
2701
|
+
* Property name or function used to group options.
|
|
2702
|
+
* When a string, uses that property from the item.
|
|
2703
|
+
* When a function, calls it with each item to determine the group.
|
|
2704
|
+
*/
|
|
2705
|
+
groupBy = input(undefined);
|
|
2706
|
+
/**
|
|
2707
|
+
* Whether to show a "Select All" option in multiselect mode.
|
|
2708
|
+
* @default false
|
|
2709
|
+
*/
|
|
2710
|
+
showSelectAll = input(false);
|
|
2711
|
+
/**
|
|
2712
|
+
* Whether group headers are selectable in multiselect mode.
|
|
2713
|
+
* Clicking a group header selects/deselects all options in that group.
|
|
2714
|
+
* @default false
|
|
2715
|
+
*/
|
|
2716
|
+
selectableGroups = input(false);
|
|
2717
|
+
/**
|
|
2718
|
+
* Whether selected tags are individually removable in multiselect mode.
|
|
2719
|
+
* @default false
|
|
2720
|
+
*/
|
|
2721
|
+
isTagRemovable = input(false);
|
|
2722
|
+
/**
|
|
2723
|
+
* Whether selected tags wrap to multiple rows in multiselect mode.
|
|
2724
|
+
* When false, overflow tags are hidden and a counter is shown.
|
|
2725
|
+
* @default false
|
|
2726
|
+
*/
|
|
2727
|
+
multiRow = input(false);
|
|
2728
|
+
/**
|
|
2729
|
+
* Function used to compare option values for equality.
|
|
2730
|
+
* Used to determine which options are selected.
|
|
2731
|
+
* @default (a, b) => a === b
|
|
2732
|
+
*/
|
|
2733
|
+
compareWith = input((a, b) => a === b);
|
|
2734
|
+
/**
|
|
2735
|
+
* Property name to check for disabled state on items.
|
|
2736
|
+
* @default "disabled"
|
|
2737
|
+
*/
|
|
2738
|
+
disabledKey = input("disabled");
|
|
2739
|
+
/**
|
|
2740
|
+
* Text displayed when no options match the search term.
|
|
2741
|
+
*/
|
|
2742
|
+
noOptionsMessage = input();
|
|
2743
|
+
/**
|
|
2744
|
+
* Maximum height of the dropdown menu in pixels.
|
|
2745
|
+
* When not set, the dropdown height is calculated based on available viewport space.
|
|
2746
|
+
*/
|
|
2747
|
+
maxDropdownHeight = input();
|
|
2748
|
+
/**
|
|
2749
|
+
* Layout type for the dropdown options.
|
|
2750
|
+
* - `"menu"` (default): vertical list of options.
|
|
2751
|
+
* - `"grid"`: swatch grid layout for use with custom option templates
|
|
2752
|
+
* (e.g. color or icon pickers). Customizable via `--tedi-swatch-size`,
|
|
2753
|
+
* `--tedi-swatch-gap`, and `--tedi-swatch-columns` CSS properties.
|
|
2754
|
+
* @default "menu"
|
|
2755
|
+
*/
|
|
2756
|
+
dropdownType = input('menu');
|
|
2757
|
+
/**
|
|
2758
|
+
* Whether the select has a search input for filtering options.
|
|
2759
|
+
* @default false
|
|
2760
|
+
*/
|
|
2761
|
+
searchable = input(false);
|
|
2762
|
+
SpecialOptionControls = SpecialOptionControls;
|
|
2763
|
+
dropdownPositions = [
|
|
2764
|
+
// Open below, expand downward
|
|
2765
|
+
{
|
|
2766
|
+
originX: "start",
|
|
2767
|
+
originY: "bottom",
|
|
2768
|
+
overlayX: "start",
|
|
2769
|
+
overlayY: "top",
|
|
2770
|
+
},
|
|
2771
|
+
// Fallback: open above, expand upward
|
|
2772
|
+
{
|
|
2773
|
+
originX: "start",
|
|
2774
|
+
originY: "top",
|
|
2775
|
+
overlayX: "start",
|
|
2776
|
+
overlayY: "bottom",
|
|
2777
|
+
},
|
|
2778
|
+
];
|
|
2779
|
+
listboxId = computed(() => this.inputId() + "-listbox");
|
|
2780
|
+
labelId = computed(() => this.inputId() + "-label");
|
|
2781
|
+
isOpen = signal(false);
|
|
2782
|
+
selectedValues = signal([]);
|
|
2783
|
+
disabled = signal(false);
|
|
2784
|
+
dropdownWidth = signal(null);
|
|
2785
|
+
dropdownMaxHeight = signal(null);
|
|
2786
|
+
visibleTagsCount = signal(null);
|
|
2787
|
+
searchTerm = signal("");
|
|
2788
|
+
searchFocused = signal(false);
|
|
2789
|
+
hiddenTagsCount = computed(() => {
|
|
2790
|
+
const visible = this.visibleTagsCount();
|
|
2791
|
+
const total = this.selectedValues().length;
|
|
2792
|
+
if (visible === null || visible >= total)
|
|
2793
|
+
return 0;
|
|
2794
|
+
return total - visible;
|
|
2795
|
+
});
|
|
2796
|
+
listboxRef = viewChild(CdkListbox, { read: ElementRef });
|
|
2797
|
+
cdkListboxRef = viewChild(CdkListbox);
|
|
2798
|
+
triggerRef = viewChild(CdkOverlayOrigin, { read: ElementRef });
|
|
2799
|
+
searchInputRef = viewChild("searchInput");
|
|
2800
|
+
multiselectContainerRef = viewChild("multiselectContainer");
|
|
2801
|
+
tagRefs = viewChildren("tagElement", { read: ElementRef });
|
|
2802
|
+
hostRef = inject(ElementRef);
|
|
2803
|
+
ngZone = inject(NgZone);
|
|
2804
|
+
// Template queries for custom rendering
|
|
2805
|
+
optionTemplate = contentChild(SelectOptionTemplateDirective);
|
|
2806
|
+
valueTemplate = contentChild(SelectValueTemplateDirective);
|
|
2807
|
+
normalizedOptions = computed(() => {
|
|
2808
|
+
const items = this.options();
|
|
2809
|
+
if (!items || items.length === 0)
|
|
2810
|
+
return [];
|
|
2811
|
+
return items.map((item) => {
|
|
2812
|
+
if (typeof item === "string" || typeof item === "number") {
|
|
2813
|
+
return {
|
|
2814
|
+
value: item,
|
|
2815
|
+
label: String(item),
|
|
2816
|
+
disabled: false,
|
|
2817
|
+
group: undefined,
|
|
2818
|
+
};
|
|
2819
|
+
}
|
|
2820
|
+
const itemRecord = item;
|
|
2821
|
+
const bindLabel = this.bindLabel();
|
|
2822
|
+
const bindValue = this.bindValue();
|
|
2823
|
+
const disabledKey = this.disabledKey();
|
|
2824
|
+
const groupBy = this.groupBy();
|
|
2825
|
+
const label = String(itemRecord[bindLabel] ?? item);
|
|
2826
|
+
const value = bindValue ? itemRecord[bindValue] : item;
|
|
2827
|
+
const disabled = !!itemRecord[disabledKey];
|
|
2828
|
+
let group;
|
|
2829
|
+
if (typeof groupBy === "string") {
|
|
2830
|
+
group = itemRecord[groupBy];
|
|
2831
|
+
}
|
|
2832
|
+
else if (typeof groupBy === "function") {
|
|
2833
|
+
group = groupBy(item);
|
|
2834
|
+
}
|
|
2835
|
+
return { ...itemRecord, value, label, disabled, group };
|
|
2836
|
+
});
|
|
2837
|
+
});
|
|
2838
|
+
filteredOptions = computed(() => {
|
|
2839
|
+
const options = this.normalizedOptions();
|
|
2840
|
+
const term = this.searchTerm().toLowerCase().trim();
|
|
2841
|
+
if (!term) {
|
|
2842
|
+
return options;
|
|
2843
|
+
}
|
|
2844
|
+
return options.filter((option) => option.label.toLowerCase().includes(term));
|
|
2845
|
+
});
|
|
2846
|
+
optionGroups = computed(() => {
|
|
2847
|
+
const options = this.filteredOptions();
|
|
2848
|
+
const groups = [];
|
|
2849
|
+
options.forEach((option) => {
|
|
2850
|
+
const groupLabel = option.group ?? "";
|
|
2851
|
+
const existingGroup = groups.find((g) => g.label === groupLabel);
|
|
2852
|
+
if (existingGroup) {
|
|
2853
|
+
existingGroup.options.push(option);
|
|
2854
|
+
}
|
|
2855
|
+
else {
|
|
2856
|
+
groups.push({ label: groupLabel, options: [option] });
|
|
2857
|
+
}
|
|
2858
|
+
});
|
|
2859
|
+
return groups;
|
|
2860
|
+
});
|
|
2861
|
+
selectedOptions = computed(() => {
|
|
2862
|
+
const values = this.selectedValues();
|
|
2863
|
+
const options = this.normalizedOptions();
|
|
2864
|
+
const compareWith = this.compareWith();
|
|
2865
|
+
return options.filter((option) => values.some((val) => compareWith(option.value, val)));
|
|
2866
|
+
});
|
|
2867
|
+
visibleSelectedValues = computed(() => {
|
|
2868
|
+
const selected = this.selectedValues();
|
|
2869
|
+
const filtered = this.filteredOptions();
|
|
2870
|
+
const compareWith = this.compareWith();
|
|
2871
|
+
return selected.filter((val) => filtered.some((opt) => compareWith(opt.value, val)));
|
|
2872
|
+
});
|
|
2873
|
+
selectedLabels = computed(() => {
|
|
2874
|
+
return this.selectedOptions().map((option) => option.label);
|
|
2875
|
+
});
|
|
2876
|
+
showSingleSelectedValue = computed(() => {
|
|
2877
|
+
return !this.searchTerm() && !!this.selectedValues().length && !this.allowMultiple();
|
|
2878
|
+
});
|
|
2879
|
+
allOptionsSelected = computed(() => {
|
|
2880
|
+
const enabledOptions = this.normalizedOptions().filter((o) => !o.disabled);
|
|
2881
|
+
const selected = this.selectedValues();
|
|
2882
|
+
const compareWith = this.compareWith();
|
|
2883
|
+
return (enabledOptions.length > 0 &&
|
|
2884
|
+
enabledOptions.every((option) => selected.some((val) => compareWith(option.value, val))));
|
|
2885
|
+
});
|
|
2886
|
+
ngAfterContentChecked() {
|
|
2887
|
+
this.setDropdownWidth();
|
|
2888
|
+
}
|
|
2889
|
+
ngAfterViewChecked() {
|
|
2890
|
+
if (this.allowMultiple() && !this.multiRow()) {
|
|
2891
|
+
this.calculateVisibleTags();
|
|
2892
|
+
}
|
|
2893
|
+
}
|
|
2894
|
+
onWindowResize() {
|
|
2895
|
+
this.setDropdownWidth();
|
|
2896
|
+
if (this.allowMultiple() && !this.multiRow()) {
|
|
2897
|
+
this.visibleTagsCount.set(null);
|
|
2898
|
+
}
|
|
2899
|
+
}
|
|
2900
|
+
onDocumentClick(event) {
|
|
2901
|
+
if (!this.isOpen())
|
|
2902
|
+
return;
|
|
2903
|
+
const target = event.target;
|
|
2904
|
+
const hostElement = this.hostRef.nativeElement;
|
|
2905
|
+
const listboxElement = this.listboxRef()?.nativeElement;
|
|
2906
|
+
const clickedInside = hostElement.contains(target) || listboxElement?.contains(target);
|
|
2907
|
+
if (!clickedInside) {
|
|
2908
|
+
this.isOpen.set(false);
|
|
2909
|
+
this.searchTerm.set("");
|
|
2910
|
+
}
|
|
2911
|
+
}
|
|
2912
|
+
focusListboxWhenVisible = effect(() => {
|
|
2913
|
+
if (this.isOpen() && this.searchable() && this.searchInputRef()) {
|
|
2914
|
+
this.searchInputRef()?.nativeElement.focus();
|
|
2915
|
+
}
|
|
2916
|
+
else if (this.isOpen() && this.listboxRef() && !this.searchable()) {
|
|
2917
|
+
this.listboxRef()?.nativeElement.focus();
|
|
2918
|
+
}
|
|
2919
|
+
});
|
|
2920
|
+
constructor() {
|
|
2921
|
+
/**
|
|
2922
|
+
* Workaround: Prevent CDK from resetting active item to the first selected
|
|
2923
|
+
* option whenever [cdkListboxValue] changes in multiselect mode. CDK calls
|
|
2924
|
+
* _setNextFocusToSelectedOption inside _setSelection, which moves focus
|
|
2925
|
+
* away from the user's current position after each selection toggle.
|
|
2926
|
+
* Tested against @angular/cdk 19. Revisit when CDK exposes a public API
|
|
2927
|
+
* to control this behavior.
|
|
2928
|
+
*/
|
|
2929
|
+
effect(() => {
|
|
2930
|
+
const listbox = this.cdkListboxRef();
|
|
2931
|
+
if (listbox && this.allowMultiple()) {
|
|
2932
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
2933
|
+
listbox._setNextFocusToSelectedOption = () => { };
|
|
2934
|
+
}
|
|
2935
|
+
});
|
|
2936
|
+
}
|
|
2937
|
+
resetVisibleTagsOnSelectionChange = effect(() => {
|
|
2938
|
+
this.selectedValues();
|
|
2939
|
+
this.visibleTagsCount.set(null);
|
|
2940
|
+
});
|
|
2941
|
+
toggleIsOpen(close) {
|
|
2942
|
+
if (this.disabled() && !close)
|
|
2943
|
+
return;
|
|
2944
|
+
if (close) {
|
|
2945
|
+
this.closeDropdown();
|
|
2946
|
+
this.focusTrigger();
|
|
2947
|
+
}
|
|
2948
|
+
else {
|
|
2949
|
+
const willOpen = !this.isOpen();
|
|
2950
|
+
if (willOpen) {
|
|
2951
|
+
this.openDropdown();
|
|
2952
|
+
}
|
|
2953
|
+
else {
|
|
2954
|
+
this.dropdownMaxHeight.set(null);
|
|
2955
|
+
this.isOpen.set(false);
|
|
2956
|
+
}
|
|
2957
|
+
}
|
|
2958
|
+
}
|
|
2959
|
+
onSearchInput(event) {
|
|
2960
|
+
const input = event.target;
|
|
2961
|
+
this.searchTerm.set(input.value);
|
|
2962
|
+
if (!this.isOpen()) {
|
|
2963
|
+
this.openDropdown();
|
|
2964
|
+
}
|
|
2965
|
+
}
|
|
2966
|
+
onSearchFocus() {
|
|
2967
|
+
this.searchFocused.set(true);
|
|
2968
|
+
}
|
|
2969
|
+
onSearchBlur() {
|
|
2970
|
+
this.searchFocused.set(false);
|
|
2971
|
+
this.onTouched();
|
|
2972
|
+
}
|
|
2973
|
+
onTriggerClick() {
|
|
2974
|
+
if (this.disabled())
|
|
2975
|
+
return;
|
|
2976
|
+
if (this.searchable()) {
|
|
2977
|
+
this.searchInputRef()?.nativeElement.focus();
|
|
2978
|
+
if (!this.isOpen()) {
|
|
2979
|
+
this.openDropdown();
|
|
2980
|
+
}
|
|
2981
|
+
}
|
|
2982
|
+
else {
|
|
2983
|
+
this.toggleIsOpen();
|
|
2984
|
+
}
|
|
2985
|
+
}
|
|
2986
|
+
onTriggerEnter() {
|
|
2987
|
+
if (!this.isOpen()) {
|
|
2988
|
+
this.openDropdown();
|
|
2989
|
+
}
|
|
2990
|
+
}
|
|
2991
|
+
onSearchKeydown(event) {
|
|
2992
|
+
event.stopPropagation();
|
|
2993
|
+
switch (event.key) {
|
|
2994
|
+
case "ArrowDown":
|
|
2995
|
+
case "ArrowUp":
|
|
2996
|
+
case "Home":
|
|
2997
|
+
case "End":
|
|
2998
|
+
event.preventDefault();
|
|
2999
|
+
if (this.isOpen()) {
|
|
3000
|
+
this.forwardToCdkListbox(event.key);
|
|
3001
|
+
}
|
|
3002
|
+
else {
|
|
3003
|
+
this.openDropdown();
|
|
3004
|
+
}
|
|
3005
|
+
break;
|
|
3006
|
+
case "Enter":
|
|
3007
|
+
event.preventDefault();
|
|
3008
|
+
if (this.isOpen()) {
|
|
3009
|
+
this.forwardToCdkListbox(event.key);
|
|
3010
|
+
}
|
|
3011
|
+
else {
|
|
3012
|
+
this.openDropdown();
|
|
3013
|
+
}
|
|
3014
|
+
break;
|
|
3015
|
+
case " ":
|
|
3016
|
+
if (!this.isOpen()) {
|
|
3017
|
+
event.preventDefault();
|
|
3018
|
+
this.openDropdown();
|
|
3019
|
+
}
|
|
3020
|
+
break;
|
|
3021
|
+
case "Escape":
|
|
3022
|
+
case "Tab":
|
|
3023
|
+
if (this.isOpen()) {
|
|
3024
|
+
this.closeDropdown();
|
|
3025
|
+
}
|
|
3026
|
+
break;
|
|
3027
|
+
}
|
|
3028
|
+
}
|
|
3029
|
+
static KEY_CODES = {
|
|
3030
|
+
ArrowDown: 40,
|
|
3031
|
+
ArrowUp: 38,
|
|
3032
|
+
Home: 36,
|
|
3033
|
+
End: 35,
|
|
3034
|
+
Enter: 13,
|
|
3035
|
+
" ": 32,
|
|
3036
|
+
};
|
|
3037
|
+
forwardToCdkListbox(key) {
|
|
3038
|
+
const listbox = this.cdkListboxRef();
|
|
3039
|
+
if (listbox) {
|
|
3040
|
+
const keyCode = SelectComponent.KEY_CODES[key] ?? 0;
|
|
3041
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
3042
|
+
listbox._handleKeydown(new KeyboardEvent("keydown", { key, keyCode, bubbles: true }));
|
|
3043
|
+
}
|
|
3044
|
+
}
|
|
3045
|
+
openDropdown() {
|
|
3046
|
+
this.calculateDropdownMaxHeight();
|
|
3047
|
+
this.isOpen.set(true);
|
|
3048
|
+
}
|
|
3049
|
+
calculateDropdownMaxHeight() {
|
|
3050
|
+
const inputMaxHeight = this.maxDropdownHeight();
|
|
3051
|
+
if (inputMaxHeight != null) {
|
|
3052
|
+
this.dropdownMaxHeight.set(inputMaxHeight);
|
|
3053
|
+
return;
|
|
3054
|
+
}
|
|
3055
|
+
const trigger = this.triggerRef()?.nativeElement;
|
|
3056
|
+
if (!trigger) {
|
|
3057
|
+
this.dropdownMaxHeight.set(null);
|
|
3058
|
+
return;
|
|
3059
|
+
}
|
|
3060
|
+
const triggerRect = trigger.getBoundingClientRect();
|
|
3061
|
+
const viewportHeight = window.innerHeight;
|
|
3062
|
+
const margin = 16; // Margin from viewport edges
|
|
3063
|
+
// Calculate space below and above the trigger
|
|
3064
|
+
const spaceBelow = viewportHeight - triggerRect.bottom - margin;
|
|
3065
|
+
const spaceAbove = triggerRect.top - margin;
|
|
3066
|
+
// Use the larger available space
|
|
3067
|
+
const maxHeight = Math.max(spaceBelow, spaceAbove);
|
|
3068
|
+
this.dropdownMaxHeight.set(maxHeight);
|
|
3069
|
+
}
|
|
3070
|
+
closeDropdown() {
|
|
3071
|
+
this.isOpen.set(false);
|
|
3072
|
+
this.searchTerm.set("");
|
|
3073
|
+
this.dropdownMaxHeight.set(null);
|
|
3074
|
+
}
|
|
3075
|
+
handleValueChange(event) {
|
|
3076
|
+
const values = event.value;
|
|
3077
|
+
const selectAllIndex = values.findIndex((v) => v === SpecialOptionControls.SELECT_ALL);
|
|
3078
|
+
const selectGroupValue = values.find((v) => typeof v === "string" &&
|
|
3079
|
+
v.startsWith(SpecialOptionControls.SELECT_GROUP));
|
|
3080
|
+
if (selectAllIndex !== -1) {
|
|
3081
|
+
this.toggleSelectAll();
|
|
3082
|
+
this.onTouched();
|
|
3083
|
+
return;
|
|
3084
|
+
}
|
|
3085
|
+
if (selectGroupValue) {
|
|
3086
|
+
const groupLabel = selectGroupValue.replace(SpecialOptionControls.SELECT_GROUP, "");
|
|
3087
|
+
this.toggleGroupSelection(groupLabel);
|
|
3088
|
+
this.onTouched();
|
|
3089
|
+
return;
|
|
3090
|
+
}
|
|
3091
|
+
if (this.allowMultiple()) {
|
|
3092
|
+
let newSelection;
|
|
3093
|
+
if (this.searchable() && this.searchTerm().trim()) {
|
|
3094
|
+
const filtered = this.filteredOptions();
|
|
3095
|
+
const compareWith = this.compareWith();
|
|
3096
|
+
const hiddenSelected = this.selectedValues().filter((val) => !filtered.some((opt) => compareWith(opt.value, val)));
|
|
3097
|
+
newSelection = [...hiddenSelected, ...values];
|
|
3098
|
+
}
|
|
3099
|
+
else {
|
|
3100
|
+
newSelection = [...values];
|
|
3101
|
+
}
|
|
3102
|
+
this.selectedValues.set(newSelection);
|
|
3103
|
+
this.onChange(newSelection);
|
|
3104
|
+
this.searchTerm.set("");
|
|
3105
|
+
if (this.searchable()) {
|
|
3106
|
+
this.searchInputRef()?.nativeElement.focus();
|
|
3107
|
+
}
|
|
3108
|
+
}
|
|
3109
|
+
else {
|
|
3110
|
+
const selected = values[0] ?? null;
|
|
3111
|
+
this.selectedValues.set(selected != null ? [selected] : []);
|
|
3112
|
+
this.onChange(selected);
|
|
3113
|
+
this.toggleIsOpen(true);
|
|
3114
|
+
}
|
|
3115
|
+
this.onTouched();
|
|
3116
|
+
}
|
|
3117
|
+
clear(event) {
|
|
3118
|
+
event.preventDefault();
|
|
3119
|
+
event.stopPropagation();
|
|
3120
|
+
event.stopImmediatePropagation();
|
|
3121
|
+
this.selectedValues.set([]);
|
|
3122
|
+
if (this.allowMultiple()) {
|
|
3123
|
+
this.onChange([]);
|
|
3124
|
+
}
|
|
3125
|
+
else {
|
|
3126
|
+
this.onChange(null);
|
|
3127
|
+
}
|
|
3128
|
+
this.onTouched();
|
|
3129
|
+
this.focusTrigger();
|
|
3130
|
+
}
|
|
3131
|
+
deselect(event, value) {
|
|
3132
|
+
event.stopPropagation();
|
|
3133
|
+
event.preventDefault();
|
|
3134
|
+
if (this.disabled())
|
|
3135
|
+
return;
|
|
3136
|
+
const compareWith = this.compareWith();
|
|
3137
|
+
const newSelection = this.selectedValues().filter((v) => !compareWith(v, value));
|
|
3138
|
+
this.selectedValues.set(newSelection);
|
|
3139
|
+
this.onChange(newSelection);
|
|
3140
|
+
this.onTouched();
|
|
3141
|
+
}
|
|
3142
|
+
isOptionSelected(optionValue) {
|
|
3143
|
+
const compareWith = this.compareWith();
|
|
3144
|
+
return this.selectedValues().some((val) => compareWith(val, optionValue));
|
|
3145
|
+
}
|
|
3146
|
+
getLabel(value) {
|
|
3147
|
+
const compareWith = this.compareWith();
|
|
3148
|
+
const option = this.normalizedOptions().find((o) => compareWith(o.value, value));
|
|
3149
|
+
return option?.label ?? String(value);
|
|
3150
|
+
}
|
|
3151
|
+
/**
|
|
3152
|
+
* Get the original item from the items array for a given option.
|
|
3153
|
+
* Used for custom templates that need access to the full item data.
|
|
3154
|
+
*/
|
|
3155
|
+
getOriginalItem(option) {
|
|
3156
|
+
const compareWith = this.compareWith();
|
|
3157
|
+
const bindValue = this.bindValue();
|
|
3158
|
+
if (!bindValue) {
|
|
3159
|
+
return option.value;
|
|
3160
|
+
}
|
|
3161
|
+
// Find the original item by matching the value
|
|
3162
|
+
const items = this.options();
|
|
3163
|
+
const found = items.find((item) => {
|
|
3164
|
+
const itemRecord = item;
|
|
3165
|
+
return compareWith(itemRecord[bindValue], option.value);
|
|
3166
|
+
});
|
|
3167
|
+
return found ?? option;
|
|
3168
|
+
}
|
|
3169
|
+
/** Create context object for custom option templates. */
|
|
3170
|
+
getOptionContext(option, index) {
|
|
3171
|
+
const item = this.getOriginalItem(option);
|
|
3172
|
+
return {
|
|
3173
|
+
$implicit: item,
|
|
3174
|
+
item,
|
|
3175
|
+
index,
|
|
3176
|
+
selected: this.isOptionSelected(option.value),
|
|
3177
|
+
disabled: option.disabled ?? false,
|
|
3178
|
+
};
|
|
3179
|
+
}
|
|
3180
|
+
/** Create context object for custom value templates. */
|
|
3181
|
+
getValueContext(option) {
|
|
3182
|
+
const item = this.getOriginalItem(option);
|
|
3183
|
+
return { $implicit: item, item, label: option.label };
|
|
3184
|
+
}
|
|
3185
|
+
isGroupSelected(groupLabel) {
|
|
3186
|
+
const group = this.optionGroups().find((g) => g.label === groupLabel);
|
|
3187
|
+
if (!group)
|
|
3188
|
+
return false;
|
|
3189
|
+
const enabledGroupOptions = group.options.filter((o) => !o.disabled);
|
|
3190
|
+
if (enabledGroupOptions.length === 0)
|
|
3191
|
+
return false;
|
|
3192
|
+
const compareWith = this.compareWith();
|
|
3193
|
+
const selected = this.selectedValues();
|
|
3194
|
+
return enabledGroupOptions.every((option) => selected.some((val) => compareWith(option.value, val)));
|
|
3195
|
+
}
|
|
3196
|
+
isGroupIndeterminate(groupLabel) {
|
|
3197
|
+
const group = this.optionGroups().find((g) => g.label === groupLabel);
|
|
3198
|
+
if (!group)
|
|
3199
|
+
return false;
|
|
3200
|
+
const enabledGroupOptions = group.options.filter((o) => !o.disabled);
|
|
3201
|
+
if (enabledGroupOptions.length === 0)
|
|
3202
|
+
return false;
|
|
3203
|
+
const compareWith = this.compareWith();
|
|
3204
|
+
const selected = this.selectedValues();
|
|
3205
|
+
const selectedCount = enabledGroupOptions.filter((option) => selected.some((val) => compareWith(option.value, val))).length;
|
|
3206
|
+
return selectedCount > 0 && selectedCount < enabledGroupOptions.length;
|
|
3207
|
+
}
|
|
3208
|
+
focusTrigger() {
|
|
3209
|
+
if (this.searchable()) {
|
|
3210
|
+
this.searchInputRef()?.nativeElement.focus();
|
|
3211
|
+
}
|
|
3212
|
+
else {
|
|
3213
|
+
this.triggerRef()?.nativeElement.focus();
|
|
3214
|
+
}
|
|
3215
|
+
}
|
|
3216
|
+
getAvailableTagWidth() {
|
|
3217
|
+
const trigger = this.triggerRef()?.nativeElement;
|
|
3218
|
+
if (!trigger)
|
|
3219
|
+
return 0;
|
|
3220
|
+
const triggerWidth = trigger.clientWidth;
|
|
3221
|
+
if (triggerWidth === 0)
|
|
3222
|
+
return 0;
|
|
3223
|
+
const triggerStyle = getComputedStyle(trigger);
|
|
3224
|
+
const padding = (parseFloat(triggerStyle.paddingLeft) || 0) + (parseFloat(triggerStyle.paddingRight) || 0);
|
|
3225
|
+
let nonTagWidth = 0;
|
|
3226
|
+
const arrow = trigger.querySelector(".tedi-select__arrow");
|
|
3227
|
+
const clear = trigger.querySelector(".tedi-select__clear");
|
|
3228
|
+
const searchInput = trigger.querySelector(".tedi-select__search-input");
|
|
3229
|
+
if (arrow)
|
|
3230
|
+
nonTagWidth += arrow.offsetWidth + (parseFloat(getComputedStyle(arrow).marginLeft) || 0) + (parseFloat(getComputedStyle(arrow).paddingLeft) || 0);
|
|
3231
|
+
if (clear)
|
|
3232
|
+
nonTagWidth += clear.offsetWidth;
|
|
3233
|
+
if (searchInput)
|
|
3234
|
+
nonTagWidth += parseFloat(getComputedStyle(searchInput).minWidth) || 0;
|
|
3235
|
+
return triggerWidth - padding - nonTagWidth;
|
|
3236
|
+
}
|
|
3237
|
+
calculateVisibleTags() {
|
|
3238
|
+
const tags = this.tagRefs();
|
|
3239
|
+
if (tags.length === 0 || this.visibleTagsCount() !== null)
|
|
3240
|
+
return;
|
|
3241
|
+
const availableWidth = this.getAvailableTagWidth();
|
|
3242
|
+
if (availableWidth <= 0)
|
|
3243
|
+
return;
|
|
3244
|
+
const gap = 8;
|
|
3245
|
+
const counterTagWidth = 40;
|
|
3246
|
+
let usedWidth = 0;
|
|
3247
|
+
let visibleCount = 0;
|
|
3248
|
+
for (let i = 0; i < tags.length; i++) {
|
|
3249
|
+
const tagWidth = tags[i].nativeElement.offsetWidth;
|
|
3250
|
+
const spaceNeeded = usedWidth + tagWidth + (visibleCount > 0 ? gap : 0);
|
|
3251
|
+
const hasMoreItems = i < tags.length - 1;
|
|
3252
|
+
const reservedSpace = hasMoreItems ? counterTagWidth + gap : 0;
|
|
3253
|
+
if (spaceNeeded + reservedSpace <= availableWidth) {
|
|
3254
|
+
usedWidth = spaceNeeded;
|
|
3255
|
+
visibleCount++;
|
|
3256
|
+
}
|
|
3257
|
+
else {
|
|
3258
|
+
break;
|
|
3259
|
+
}
|
|
3260
|
+
}
|
|
3261
|
+
if (visibleCount === 0 && tags.length > 0) {
|
|
3262
|
+
visibleCount = 1;
|
|
3263
|
+
}
|
|
3264
|
+
this.ngZone.run(() => {
|
|
3265
|
+
this.visibleTagsCount.set(visibleCount);
|
|
3266
|
+
});
|
|
3267
|
+
}
|
|
3268
|
+
setDropdownWidth() {
|
|
3269
|
+
const widthRef = this.dropdownWidthRef();
|
|
3270
|
+
if (widthRef === null) {
|
|
3271
|
+
this.dropdownWidth.set(null);
|
|
3272
|
+
return;
|
|
3273
|
+
}
|
|
3274
|
+
const element = widthRef?.nativeElement ?? this.hostRef?.nativeElement;
|
|
3275
|
+
const computedWidth = element?.getBoundingClientRect()?.width ?? 0;
|
|
3276
|
+
this.dropdownWidth.set(computedWidth);
|
|
3277
|
+
}
|
|
3278
|
+
toggleSelectAll() {
|
|
3279
|
+
const options = this.normalizedOptions();
|
|
3280
|
+
const enabledOptions = options.filter((o) => !o.disabled);
|
|
3281
|
+
const compareWith = this.compareWith();
|
|
3282
|
+
const disabledSelectedValues = this.selectedValues().filter((val) => options.some((o) => o.disabled && compareWith(val, o.value)));
|
|
3283
|
+
if (this.allOptionsSelected()) {
|
|
3284
|
+
this.selectedValues.set(disabledSelectedValues);
|
|
3285
|
+
this.onChange(disabledSelectedValues);
|
|
3286
|
+
}
|
|
3287
|
+
else {
|
|
3288
|
+
const allEnabledValues = enabledOptions.map((o) => o.value);
|
|
3289
|
+
const mergedValues = [...disabledSelectedValues, ...allEnabledValues];
|
|
3290
|
+
this.selectedValues.set(mergedValues);
|
|
3291
|
+
this.onChange(mergedValues);
|
|
3292
|
+
}
|
|
3293
|
+
}
|
|
3294
|
+
toggleGroupSelection(groupLabel) {
|
|
3295
|
+
const group = this.optionGroups().find((g) => g.label === groupLabel);
|
|
3296
|
+
if (!group)
|
|
3297
|
+
return;
|
|
3298
|
+
const enabledGroupOptions = group.options.filter((o) => !o.disabled);
|
|
3299
|
+
const groupValues = enabledGroupOptions.map((o) => o.value);
|
|
3300
|
+
const isGroupSelected = this.isGroupSelected(groupLabel);
|
|
3301
|
+
const compareWith = this.compareWith();
|
|
3302
|
+
let newSelection;
|
|
3303
|
+
if (isGroupSelected) {
|
|
3304
|
+
newSelection = this.selectedValues().filter((val) => !groupValues.some((gv) => compareWith(val, gv)));
|
|
3305
|
+
}
|
|
3306
|
+
else {
|
|
3307
|
+
newSelection = [...this.selectedValues()];
|
|
3308
|
+
for (const gv of groupValues) {
|
|
3309
|
+
if (!newSelection.some((val) => compareWith(val, gv))) {
|
|
3310
|
+
newSelection.push(gv);
|
|
3311
|
+
}
|
|
3312
|
+
}
|
|
3313
|
+
}
|
|
3314
|
+
this.selectedValues.set(newSelection);
|
|
3315
|
+
this.onChange(newSelection);
|
|
3316
|
+
}
|
|
3317
|
+
onChange = () => { };
|
|
3318
|
+
onTouched = () => { };
|
|
3319
|
+
writeValue(value) {
|
|
3320
|
+
if (this.allowMultiple()) {
|
|
3321
|
+
this.selectedValues.set(Array.isArray(value) ? value : []);
|
|
3322
|
+
}
|
|
3323
|
+
else {
|
|
3324
|
+
this.selectedValues.set(value != null ? [value] : []);
|
|
3325
|
+
}
|
|
3326
|
+
}
|
|
3327
|
+
registerOnChange(fn) {
|
|
3328
|
+
this.onChange = fn;
|
|
3329
|
+
}
|
|
3330
|
+
registerOnTouched(fn) {
|
|
3331
|
+
this.onTouched = fn;
|
|
3332
|
+
}
|
|
3333
|
+
setDisabledState(isDisabled) {
|
|
3334
|
+
this.disabled.set(isDisabled);
|
|
3335
|
+
if (isDisabled) {
|
|
3336
|
+
this.closeDropdown();
|
|
3337
|
+
}
|
|
3338
|
+
}
|
|
3339
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: SelectComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
3340
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.15", type: SelectComponent, isStandalone: true, selector: "tedi-select", inputs: { inputId: { classPropertyName: "inputId", publicName: "inputId", isSignal: true, isRequired: true, transformFunction: null }, label: { classPropertyName: "label", publicName: "label", isSignal: true, isRequired: false, transformFunction: null }, required: { classPropertyName: "required", publicName: "required", isSignal: true, isRequired: false, transformFunction: null }, placeholder: { classPropertyName: "placeholder", publicName: "placeholder", isSignal: true, isRequired: false, transformFunction: null }, state: { classPropertyName: "state", publicName: "state", isSignal: true, isRequired: false, transformFunction: null }, size: { classPropertyName: "size", publicName: "size", isSignal: true, isRequired: false, transformFunction: null }, clearable: { classPropertyName: "clearable", publicName: "clearable", isSignal: true, isRequired: false, transformFunction: null }, dropdownWidthRef: { classPropertyName: "dropdownWidthRef", publicName: "dropdownWidthRef", isSignal: true, isRequired: false, transformFunction: null }, feedbackText: { classPropertyName: "feedbackText", publicName: "feedbackText", isSignal: true, isRequired: false, transformFunction: null }, options: { classPropertyName: "options", publicName: "options", isSignal: true, isRequired: false, transformFunction: null }, bindLabel: { classPropertyName: "bindLabel", publicName: "bindLabel", isSignal: true, isRequired: false, transformFunction: null }, bindValue: { classPropertyName: "bindValue", publicName: "bindValue", isSignal: true, isRequired: false, transformFunction: null }, allowMultiple: { classPropertyName: "allowMultiple", publicName: "allowMultiple", isSignal: true, isRequired: false, transformFunction: null }, groupBy: { classPropertyName: "groupBy", publicName: "groupBy", isSignal: true, isRequired: false, transformFunction: null }, showSelectAll: { classPropertyName: "showSelectAll", publicName: "showSelectAll", isSignal: true, isRequired: false, transformFunction: null }, selectableGroups: { classPropertyName: "selectableGroups", publicName: "selectableGroups", isSignal: true, isRequired: false, transformFunction: null }, isTagRemovable: { classPropertyName: "isTagRemovable", publicName: "isTagRemovable", isSignal: true, isRequired: false, transformFunction: null }, multiRow: { classPropertyName: "multiRow", publicName: "multiRow", isSignal: true, isRequired: false, transformFunction: null }, compareWith: { classPropertyName: "compareWith", publicName: "compareWith", isSignal: true, isRequired: false, transformFunction: null }, disabledKey: { classPropertyName: "disabledKey", publicName: "disabledKey", isSignal: true, isRequired: false, transformFunction: null }, noOptionsMessage: { classPropertyName: "noOptionsMessage", publicName: "noOptionsMessage", isSignal: true, isRequired: false, transformFunction: null }, maxDropdownHeight: { classPropertyName: "maxDropdownHeight", publicName: "maxDropdownHeight", isSignal: true, isRequired: false, transformFunction: null }, dropdownType: { classPropertyName: "dropdownType", publicName: "dropdownType", isSignal: true, isRequired: false, transformFunction: null }, searchable: { classPropertyName: "searchable", publicName: "searchable", isSignal: true, isRequired: false, transformFunction: null } }, host: { listeners: { "window:resize": "onWindowResize()", "document:click": "onDocumentClick($event)" }, properties: { "class.tedi-select--multiselect": "allowMultiple()" }, classAttribute: "tedi-select" }, providers: [
|
|
3341
|
+
{
|
|
3342
|
+
provide: NG_VALUE_ACCESSOR,
|
|
3343
|
+
useExisting: forwardRef(() => SelectComponent),
|
|
3344
|
+
multi: true,
|
|
3345
|
+
},
|
|
3346
|
+
], queries: [{ propertyName: "optionTemplate", first: true, predicate: SelectOptionTemplateDirective, descendants: true, isSignal: true }, { propertyName: "valueTemplate", first: true, predicate: SelectValueTemplateDirective, descendants: true, isSignal: true }], viewQueries: [{ propertyName: "listboxRef", first: true, predicate: CdkListbox, descendants: true, read: ElementRef, isSignal: true }, { propertyName: "cdkListboxRef", first: true, predicate: CdkListbox, descendants: true, isSignal: true }, { propertyName: "triggerRef", first: true, predicate: CdkOverlayOrigin, descendants: true, read: ElementRef, isSignal: true }, { propertyName: "searchInputRef", first: true, predicate: ["searchInput"], descendants: true, isSignal: true }, { propertyName: "multiselectContainerRef", first: true, predicate: ["multiselectContainer"], descendants: true, isSignal: true }, { propertyName: "tagRefs", predicate: ["tagElement"], descendants: true, read: ElementRef, isSignal: true }], ngImport: i0, template: "@if (label()) {\n <label\n [id]=\"labelId()\"\n tedi-label\n [for]=\"inputId()\"\n [required]=\"required()\"\n [size]=\"size()\"\n >\n {{ label() }}\n </label>\n}\n<div\n [id]=\"inputId()\"\n class=\"tedi-select__trigger tedi-input\"\n [class.tedi-input--disabled]=\"disabled()\"\n [class.tedi-input--small]=\"size() === 'small'\"\n [class.tedi-input--error]=\"state() === 'error'\"\n [class.tedi-input--valid]=\"state() === 'valid'\"\n [class.tedi-select__trigger--searchable]=\"searchable()\"\n [class.tedi-select__trigger--search-focused]=\"searchFocused()\"\n cdkOverlayOrigin\n #trigger=\"cdkOverlayOrigin\"\n [attr.role]=\"searchable() ? null : 'combobox'\"\n [attr.aria-haspopup]=\"searchable() ? null : 'listbox'\"\n [attr.aria-expanded]=\"searchable() ? null : isOpen()\"\n [attr.aria-controls]=\"searchable() ? null : listboxId()\"\n [attr.aria-labelledby]=\"!searchable() && label() ? labelId() : null\"\n [tabindex]=\"searchable() || disabled() ? -1 : 0\"\n (click)=\"onTriggerClick()\"\n (keydown.enter)=\"onTriggerEnter()\"\n (keydown.space)=\"$event.preventDefault(); toggleIsOpen()\"\n (keydown.arrowdown)=\"$event.preventDefault(); toggleIsOpen()\"\n (blur)=\"onTouched()\"\n>\n @if (searchable()) {\n <div class=\"tedi-select__search-wrapper\">\n @if (showSingleSelectedValue()) {\n <span class=\"tedi-select__selected-value\">\n @if (valueTemplate(); as tpl) {\n @if (selectedOptions()[0]; as option) {\n <ng-container\n [ngTemplateOutlet]=\"tpl.template\"\n [ngTemplateOutletContext]=\"getValueContext(option)\"\n />\n }\n } @else {\n {{ selectedLabels().join(\", \") }}\n }\n </span>\n }\n @if (allowMultiple() && selectedValues().length) {\n <ng-container\n [ngTemplateOutlet]=\"multiselectTags\"\n [ngTemplateOutletContext]=\"{ $implicit: multiselectContainerRef }\"\n />\n }\n <input\n #searchInput\n type=\"text\"\n class=\"tedi-select__search-input\"\n [class.tedi-select__search-input--hidden]=\"showSingleSelectedValue()\"\n [placeholder]=\"selectedValues().length ? '' : placeholder()\"\n [value]=\"searchTerm()\"\n [disabled]=\"disabled()\"\n (input)=\"onSearchInput($event)\"\n (focus)=\"onSearchFocus()\"\n (blur)=\"onSearchBlur()\"\n (keydown)=\"onSearchKeydown($event)\"\n autocomplete=\"off\"\n role=\"combobox\"\n aria-autocomplete=\"list\"\n [attr.aria-expanded]=\"isOpen()\"\n [attr.aria-controls]=\"listboxId()\"\n [attr.aria-labelledby]=\"label() ? labelId() : null\"\n />\n </div>\n } @else {\n <span class=\"tedi-select__label\">\n @if (selectedValues().length) {\n @if (allowMultiple()) {\n <ng-container\n [ngTemplateOutlet]=\"multiselectTags\"\n [ngTemplateOutletContext]=\"{ $implicit: multiselectContainerRef }\"\n />\n } @else {\n @if (valueTemplate(); as tpl) {\n @if (selectedOptions()[0]; as option) {\n <ng-container\n [ngTemplateOutlet]=\"tpl.template\"\n [ngTemplateOutletContext]=\"getValueContext(option)\"\n />\n }\n } @else {\n {{ selectedLabels().join(\", \") }}\n }\n }\n } @else {\n <span class=\"tedi-select__label--placeholder\">\n {{ placeholder() }}\n </span>\n }\n </span>\n }\n\n @if (clearable() && selectedValues().length) {\n <button\n class=\"tedi-select__clear\"\n tedi-closing-button\n type=\"button\"\n size=\"small\"\n [iconSize]=\"18\"\n [ariaLabel]=\"'clear' | tediTranslate\"\n (click)=\"clear($event)\"\n (keydown.enter)=\"clear($event)\"\n (keydown.space)=\"clear($event)\"\n [attr.aria-describedby]=\"label() ? labelId() : null\"\n ></button>\n }\n\n <tedi-icon class=\"tedi-select__arrow\" name=\"arrow_drop_down\" />\n</div>\n@if (feedbackText(); as feedback) {\n <tedi-feedback-text\n [text]=\"feedback.text\"\n [type]=\"feedback.type\"\n [position]=\"feedback.position\"\n />\n}\n\n<ng-template #multiselectTags>\n <div\n class=\"tedi-select__multiselect-container\"\n [class.tedi-select__multiselect-container--single-row]=\"!multiRow()\"\n #multiselectContainer\n >\n @if (multiRow()) {\n @for (value of selectedValues(); track value) {\n <tedi-tag\n [closable]=\"isTagRemovable()\"\n (closed)=\"deselect($event, value)\"\n >\n {{ getLabel(value) }}\n </tedi-tag>\n }\n } @else {\n @for (value of selectedValues(); track value; let i = $index) {\n @if (visibleTagsCount() === null || i < visibleTagsCount()!) {\n <tedi-tag\n #tagElement\n [closable]=\"isTagRemovable()\"\n (closed)=\"deselect($event, value)\"\n >\n {{ getLabel(value) }}\n </tedi-tag>\n }\n }\n @if (hiddenTagsCount() > 0) {\n <tedi-tag>+{{ hiddenTagsCount() }}</tedi-tag>\n }\n }\n </div>\n</ng-template>\n\n<ng-template\n cdkConnectedOverlay\n [cdkConnectedOverlayOrigin]=\"trigger\"\n [cdkConnectedOverlayOpen]=\"isOpen()\"\n [cdkConnectedOverlayPositions]=\"dropdownPositions\"\n [cdkConnectedOverlayFlexibleDimensions]=\"true\"\n [cdkConnectedOverlayGrowAfterOpen]=\"true\"\n (detach)=\"toggleIsOpen(true)\"\n>\n <div\n class=\"tedi-select__dropdown\"\n [style.width]=\"!!dropdownWidth() ? dropdownWidth() + 'px' : 'auto'\"\n [style.max-height]=\"dropdownMaxHeight() ? dropdownMaxHeight() + 'px' : null\"\n >\n <ul\n [id]=\"listboxId()\"\n class=\"tedi-select__options\"\n [class.tedi-select__options--multiselect]=\"allowMultiple()\"\n [class.tedi-select__options--swatch-grid]=\"dropdownType() === 'grid'\"\n cdkListbox\n [cdkListboxMultiple]=\"allowMultiple()\"\n [cdkListboxValue]=\"visibleSelectedValues()\"\n [cdkListboxNavigatesDisabledOptions]=\"false\"\n [cdkListboxUseActiveDescendant]=\"true\"\n (cdkListboxValueChange)=\"handleValueChange($event)\"\n (keydown.tab)=\"toggleIsOpen(true)\"\n (keydown.escape)=\"toggleIsOpen(true)\"\n #listbox=\"cdkListbox\"\n >\n @if (filteredOptions().length) {\n @if (allowMultiple() && showSelectAll()) {\n <li\n class=\"tedi-dropdown-item\"\n [cdkOption]=\"SpecialOptionControls.SELECT_ALL\"\n >\n <tedi-dropdown-item-value type=\"checkbox\" [selected]=\"allOptionsSelected()\">\n <tedi-dropdown-item-value-label>{{ \"select.select-all\" | tediTranslate }}</tedi-dropdown-item-value-label>\n </tedi-dropdown-item-value>\n </li>\n }\n\n @for (group of optionGroups(); track group.label) {\n @if (group.label.length > 0) {\n @if (allowMultiple() && selectableGroups()) {\n <li\n class=\"tedi-dropdown-item tedi-select__group-name tedi-select__group-name--selectable\"\n [cdkOption]=\"SpecialOptionControls.SELECT_GROUP + group.label\"\n >\n <tedi-dropdown-item-value type=\"checkbox\" [selected]=\"isGroupSelected(group.label)\" [indeterminate]=\"isGroupIndeterminate(group.label)\">\n <tedi-dropdown-item-value-label>{{ group.label }}</tedi-dropdown-item-value-label>\n </tedi-dropdown-item-value>\n </li>\n } @else {\n <li class=\"tedi-select__group-name\" role=\"presentation\">\n <span tedi-text color=\"tertiary\">\n {{ group.label }}\n </span>\n </li>\n }\n }\n\n @for (option of group.options; track option.value; let i = $index) {\n <li\n class=\"tedi-dropdown-item\"\n [class.tedi-dropdown-item--selected]=\"!allowMultiple() && isOptionSelected(option.value)\"\n [class.tedi-dropdown-item--disabled]=\"option.disabled\"\n [class.tedi-dropdown-item--custom]=\"optionTemplate()\"\n [cdkOption]=\"option.value\"\n [cdkOptionDisabled]=\"option.disabled\"\n >\n @if (optionTemplate(); as tpl) {\n <ng-container\n [ngTemplateOutlet]=\"tpl.template\"\n [ngTemplateOutletContext]=\"getOptionContext(option, i)\"\n />\n } @else {\n <tedi-dropdown-item-value\n [type]=\"allowMultiple() ? 'checkbox' : 'default'\"\n [selected]=\"isOptionSelected(option.value)\"\n [disabled]=\"!!option.disabled\"\n >\n <tedi-dropdown-item-value-label>{{ option.label }}</tedi-dropdown-item-value-label>\n </tedi-dropdown-item-value>\n }\n </li>\n }\n }\n } @else {\n <li class=\"tedi-dropdown-item tedi-select__no-options\">\n {{ noOptionsMessage() || (\"select.no-options\" | tediTranslate) }}\n </li>\n }\n </ul>\n </div>\n</ng-template>\n", styles: ["li[tedi-dropdown-item],.tedi-dropdown-item{display:flex;gap:var(--dropdown-item-inner-spacing);align-items:center;width:100%;min-height:40px;padding:var(--dropdown-item-padding-y) var(--dropdown-item-padding-x);color:var(--dropdown-item-default-text);cursor:pointer;background:var(--dropdown-item-default-background)}li[tedi-dropdown-item]:hover:not(.tedi-dropdown-item--disabled,[aria-disabled=true]),.tedi-dropdown-item:hover:not(.tedi-dropdown-item--disabled,[aria-disabled=true]){color:var(--dropdown-item-hover-text);background:var(--dropdown-item-hover-background)}li[tedi-dropdown-item]:focus-visible,.tedi-dropdown-item:focus-visible{outline:var(--borders-02) solid var(--tedi-primary-500);outline-offset:calc(-1 * var(--borders-02))}li[tedi-dropdown-item][aria-selected=true],li[tedi-dropdown-item].tedi-dropdown-item--selected,.tedi-dropdown-item[aria-selected=true],.tedi-dropdown-item.tedi-dropdown-item--selected{color:var(--dropdown-item-active-text);background:var(--dropdown-item-active-background)}li[tedi-dropdown-item][aria-disabled=true],li[tedi-dropdown-item].tedi-dropdown-item--disabled,.tedi-dropdown-item[aria-disabled=true],.tedi-dropdown-item.tedi-dropdown-item--disabled{color:var(--general-text-disabled);cursor:not-allowed;background:var(--dropdown-item-disabled-background)}.tedi-input{--_border-color: var(--form-input-border-default);--_color: var(--form-input-text-filled);--_background-color: var(--form-input-background-default);--_placeholder-color: var(--form-input-text-placeholder);--_border-radius: var(--form-field-radius);--_font-size: var(--body-regular-size);--_line-height: var(--body-regular-line-height);--_padding-y: var(--form-field-padding-y-md-default);--_padding-x: var(--form-field-padding-x-md-default);--_search-input-min-width: 50px;min-height:var(--form-field-height);padding:calc(var(--_padding-y) - var(--borders-01)) var(--_padding-x);margin-bottom:0;font-family:var(--family-default);font-size:var(--_font-size);line-height:var(--_line-height);color:var(--_color);background-color:var(--_background-color);border:var(--borders-01) solid var(--_border-color);border-radius:var(--_border-radius)}.tedi-input:hover{--_border-color: var(--form-input-border-hover)}.tedi-input:focus,.tedi-input:active,.tedi-input.tedi-select__trigger--search-focused{border-color:var(--form-input-border-hover);box-shadow:inset 0 0 0 1px var(--form-input-border-hover)}.tedi-input--disabled{--_color: var(--form-input-text-disabled);--_border-color: var(--form-input-border-disabled);--_background-color: var(--form-input-background-disabled);pointer-events:none}.tedi-input--error:not(.tedi-input--disabled){--_border-color: var(--form-general-feedback-error-border)}.tedi-input--error:not(.tedi-input--disabled):focus,.tedi-input--error:not(.tedi-input--disabled):active,.tedi-input--error:not(.tedi-input--disabled).tedi-select__trigger--search-focused{border-color:var(--form-general-feedback-error-border);box-shadow:inset 0 0 0 1px var(--form-general-feedback-error-border)}.tedi-input--valid:not(.tedi-input--disabled){--_border-color: var(--form-general-feedback-success-border)}.tedi-input--valid:not(.tedi-input--disabled):focus,.tedi-input--valid:not(.tedi-input--disabled):active,.tedi-input--valid:not(.tedi-input--disabled).tedi-select__trigger--search-focused{border-color:var(--form-general-feedback-success-border);box-shadow:inset 0 0 0 1px var(--form-general-feedback-success-border)}.tedi-input--small{--_padding-y: var(--form-field-padding-y-sm);min-height:var(--form-field-height-sm)}.tedi-select{display:block;width:100%}.tedi-select .tedi-feedback-text{margin-top:var(--form-field-outer-spacing)}.tedi-select__trigger{display:flex;justify-content:space-between;width:100%;cursor:pointer}.tedi-select__label{flex-grow:1;overflow:hidden;text-align:left;cursor:default}.tedi-select__label--placeholder{color:var(--_placeholder-color);pointer-events:none}.tedi-select__clear{flex-grow:0;padding:0;margin:0;color:var(--button-close-text-default);cursor:pointer;background:none;border:none}.tedi-select__clear+.tedi-select__arrow{border-left:1px solid var(--general-border-primary)}.tedi-select__arrow{flex-grow:0;padding-left:var(--form-field-inner-spacing);margin-left:var(--form-field-inner-spacing);cursor:default}.tedi-select__dropdown{display:flex;flex-direction:column;max-height:100%;margin-top:var(--form-field-outer-spacing);margin-bottom:var(--form-field-outer-spacing);background:var(--card-background-primary);border-radius:var(--card-border-radius);box-shadow:0 1px 5px 0 var(--tedi-alpha-20)}.tedi-select__trigger--searchable{cursor:text}.tedi-select__search-wrapper{position:relative;display:flex;flex-grow:1;flex-wrap:wrap;gap:var(--form-field-inner-spacing);align-items:center;min-height:var(--_line-height);overflow:hidden}.tedi-select__selected-value{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;pointer-events:none}.tedi-select__search-input{position:absolute;top:0;left:0;width:100%;height:100%;padding:0;font-family:inherit;font-size:inherit;line-height:inherit;color:inherit;background:transparent;border:none}.tedi-select__search-input:focus{outline:none}.tedi-select__search-input::placeholder{color:var(--form-input-text-placeholder)}.tedi-select__search-input--hidden{color:transparent;caret-color:var(--form-input-text-filled)}.tedi-select__search-input:not(.tedi-select__search-input--hidden){position:relative;flex:1;width:auto;min-width:var(--_search-input-min-width);height:auto}.tedi-select__options{flex:1;min-height:0;padding:0;margin:0;overflow-y:auto;outline:none}.tedi-select__options .tedi-dropdown-item{outline:none}.tedi-select__options .tedi-dropdown-item.cdk-option-active:not(.tedi-dropdown-item--disabled){outline:var(--borders-02) solid var(--tedi-primary-500);outline-offset:calc(-1 * var(--borders-02))}.tedi-select__options .tedi-dropdown-item[aria-selected=true],.tedi-select__options .tedi-dropdown-item.tedi-dropdown-item--selected{color:var(--dropdown-item-active-text);background:var(--dropdown-item-active-background)}.tedi-select__options .tedi-dropdown-item[aria-selected=true] .tedi-icon,.tedi-select__options .tedi-dropdown-item.tedi-dropdown-item--selected .tedi-icon{color:inherit}.tedi-select__dropdown-item--label{display:none}.tedi-select__dropdown-item--custom-content:empty+.tedi-select__dropdown-item--label{display:block}.tedi-select__group-name{display:block;padding:var(--dropdown-group-label-padding-y) var(--dropdown-group-label-padding-x) var(--layout-grid-gutters-04);font-size:var(--heading-subtitle-small-size);font-weight:var(--heading-subtitle-small-weight);line-height:var(--heading-subtitle-small-line-height);text-transform:uppercase;letter-spacing:0}.tedi-select__group-name--selectable{padding:var(--dropdown-item-padding-y) var(--dropdown-item-padding-x);font-size:var(--body-regular-size);font-weight:var(--body-regular-weight);line-height:var(--body-regular-line-height);text-transform:none;letter-spacing:inherit}.tedi-select__group-name--selectable~.tedi-dropdown-item:not(.tedi-select__group-name){padding-left:var(--form-checkbox-radio-subitem-padding-left)}.tedi-select--multiselect .tedi-select__trigger{align-items:flex-start}.tedi-select__multiselect-container{display:flex;flex-wrap:wrap;gap:var(--form-field-inner-spacing)}.tedi-select__multiselect-container--single-row{flex-wrap:nowrap;overflow:hidden}.tedi-select__multiselect-container--single-row .tedi-tag{flex-shrink:0}.tedi-select__multiselect-container--single-row .tedi-tag__content{white-space:nowrap}.tedi-select__no-options{color:var(--general-text-tertiary);cursor:default}.tedi-select__no-options:hover{color:var(--general-text-tertiary);background:var(--dropdown-item-default-background)}.tedi-select__dropdown:has(.tedi-select__options--swatch-grid){width:fit-content}.tedi-select__options--swatch-grid{--tedi-swatch-size: 24px;--tedi-swatch-gap: var(--layout-grid-gutters-04);--tedi-swatch-columns: 11;display:grid;grid-template-columns:repeat(auto-fit,var(--tedi-swatch-size));gap:var(--tedi-swatch-gap);max-width:calc(var(--tedi-swatch-columns) * (var(--tedi-swatch-size) + var(--tedi-swatch-gap)));padding:var(--dropdown-body-padding-y) var(--dropdown-body-padding-x)}.tedi-select__options--swatch-grid .tedi-dropdown-item{display:flex;align-items:center;justify-content:center;width:var(--tedi-swatch-size);height:var(--tedi-swatch-size);min-height:auto;padding:var(--layout-grid-gutters-02);color:inherit;background:transparent;border-radius:var(--card-radius-rounded)}.tedi-select__options--swatch-grid .tedi-dropdown-item.cdk-option-active:not(.tedi-dropdown-item--disabled){outline-offset:0}.tedi-select__options--swatch-grid .tedi-dropdown-item[aria-selected=true],.tedi-select__options--swatch-grid .tedi-dropdown-item.tedi-dropdown-item--selected{color:inherit;background:transparent;border:var(--borders-02) solid var(--card-border-selected)}.tedi-select__options--swatch-grid .tedi-dropdown-item:hover:not(.tedi-dropdown-item--disabled){background:transparent}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1$1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "ngmodule", type: OverlayModule }, { kind: "directive", type: i2.CdkConnectedOverlay, selector: "[cdk-connected-overlay], [connected-overlay], [cdkConnectedOverlay]", inputs: ["cdkConnectedOverlayOrigin", "cdkConnectedOverlayPositions", "cdkConnectedOverlayPositionStrategy", "cdkConnectedOverlayOffsetX", "cdkConnectedOverlayOffsetY", "cdkConnectedOverlayWidth", "cdkConnectedOverlayHeight", "cdkConnectedOverlayMinWidth", "cdkConnectedOverlayMinHeight", "cdkConnectedOverlayBackdropClass", "cdkConnectedOverlayPanelClass", "cdkConnectedOverlayViewportMargin", "cdkConnectedOverlayScrollStrategy", "cdkConnectedOverlayOpen", "cdkConnectedOverlayDisableClose", "cdkConnectedOverlayTransformOriginOn", "cdkConnectedOverlayHasBackdrop", "cdkConnectedOverlayLockPosition", "cdkConnectedOverlayFlexibleDimensions", "cdkConnectedOverlayGrowAfterOpen", "cdkConnectedOverlayPush", "cdkConnectedOverlayDisposeOnNavigation"], outputs: ["backdropClick", "positionChange", "attach", "detach", "overlayKeydown", "overlayOutsideClick"], exportAs: ["cdkConnectedOverlay"] }, { kind: "directive", type: i2.CdkOverlayOrigin, selector: "[cdk-overlay-origin], [overlay-origin], [cdkOverlayOrigin]", exportAs: ["cdkOverlayOrigin"] }, { kind: "ngmodule", type: CdkListboxModule }, { kind: "directive", type: i3.CdkListbox, selector: "[cdkListbox]", inputs: ["id", "tabindex", "cdkListboxValue", "cdkListboxMultiple", "cdkListboxDisabled", "cdkListboxUseActiveDescendant", "cdkListboxOrientation", "cdkListboxCompareWith", "cdkListboxNavigationWrapDisabled", "cdkListboxNavigatesDisabledOptions"], outputs: ["cdkListboxValueChange"], exportAs: ["cdkListbox"] }, { kind: "directive", type: i3.CdkOption, selector: "[cdkOption]", inputs: ["id", "cdkOption", "cdkOptionTypeaheadLabel", "cdkOptionDisabled", "tabindex"], exportAs: ["cdkOption"] }, { kind: "component", type: ClosingButtonComponent, selector: "button[tedi-closing-button]", inputs: ["size", "iconSize", "ariaLabel"] }, { kind: "component", type: IconComponent, selector: "tedi-icon", inputs: ["name", "size", "color", "background", "variant", "type", "label"] }, { kind: "component", type: LabelComponent, selector: "[tedi-label]", inputs: ["size", "required", "color"] }, { kind: "component", type: FeedbackTextComponent, selector: "tedi-feedback-text", inputs: ["text", "type", "position"] }, { kind: "component", type: TextComponent, selector: "[tedi-text]", inputs: ["modifiers", "color"] }, { kind: "component", type: TagComponent, selector: "tedi-tag", inputs: ["loading", "closable", "type"], outputs: ["closed"] }, { kind: "pipe", type: TediTranslationPipe, name: "tediTranslate" }, { kind: "component", type: DropdownItemValueComponent, selector: "tedi-dropdown-item-value", inputs: ["type", "layout", "selected", "indeterminate", "disabled"] }, { kind: "component", type: DropdownItemValueLabelComponent, selector: "tedi-dropdown-item-value-label" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
3347
|
+
}
|
|
3348
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: SelectComponent, decorators: [{
|
|
3349
|
+
type: Component,
|
|
3350
|
+
args: [{ selector: "tedi-select", imports: [
|
|
3351
|
+
CommonModule,
|
|
3352
|
+
OverlayModule,
|
|
3353
|
+
CdkListboxModule,
|
|
3354
|
+
ClosingButtonComponent,
|
|
3355
|
+
IconComponent,
|
|
3356
|
+
LabelComponent,
|
|
3357
|
+
FeedbackTextComponent,
|
|
3358
|
+
TextComponent,
|
|
3359
|
+
TagComponent,
|
|
3360
|
+
TediTranslationPipe,
|
|
3361
|
+
DropdownItemValueComponent,
|
|
3362
|
+
DropdownItemValueLabelComponent,
|
|
3363
|
+
], standalone: true, encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, host: {
|
|
3364
|
+
class: "tedi-select",
|
|
3365
|
+
"[class.tedi-select--multiselect]": "allowMultiple()",
|
|
3366
|
+
}, providers: [
|
|
3367
|
+
{
|
|
3368
|
+
provide: NG_VALUE_ACCESSOR,
|
|
3369
|
+
useExisting: forwardRef(() => SelectComponent),
|
|
3370
|
+
multi: true,
|
|
3371
|
+
},
|
|
3372
|
+
], template: "@if (label()) {\n <label\n [id]=\"labelId()\"\n tedi-label\n [for]=\"inputId()\"\n [required]=\"required()\"\n [size]=\"size()\"\n >\n {{ label() }}\n </label>\n}\n<div\n [id]=\"inputId()\"\n class=\"tedi-select__trigger tedi-input\"\n [class.tedi-input--disabled]=\"disabled()\"\n [class.tedi-input--small]=\"size() === 'small'\"\n [class.tedi-input--error]=\"state() === 'error'\"\n [class.tedi-input--valid]=\"state() === 'valid'\"\n [class.tedi-select__trigger--searchable]=\"searchable()\"\n [class.tedi-select__trigger--search-focused]=\"searchFocused()\"\n cdkOverlayOrigin\n #trigger=\"cdkOverlayOrigin\"\n [attr.role]=\"searchable() ? null : 'combobox'\"\n [attr.aria-haspopup]=\"searchable() ? null : 'listbox'\"\n [attr.aria-expanded]=\"searchable() ? null : isOpen()\"\n [attr.aria-controls]=\"searchable() ? null : listboxId()\"\n [attr.aria-labelledby]=\"!searchable() && label() ? labelId() : null\"\n [tabindex]=\"searchable() || disabled() ? -1 : 0\"\n (click)=\"onTriggerClick()\"\n (keydown.enter)=\"onTriggerEnter()\"\n (keydown.space)=\"$event.preventDefault(); toggleIsOpen()\"\n (keydown.arrowdown)=\"$event.preventDefault(); toggleIsOpen()\"\n (blur)=\"onTouched()\"\n>\n @if (searchable()) {\n <div class=\"tedi-select__search-wrapper\">\n @if (showSingleSelectedValue()) {\n <span class=\"tedi-select__selected-value\">\n @if (valueTemplate(); as tpl) {\n @if (selectedOptions()[0]; as option) {\n <ng-container\n [ngTemplateOutlet]=\"tpl.template\"\n [ngTemplateOutletContext]=\"getValueContext(option)\"\n />\n }\n } @else {\n {{ selectedLabels().join(\", \") }}\n }\n </span>\n }\n @if (allowMultiple() && selectedValues().length) {\n <ng-container\n [ngTemplateOutlet]=\"multiselectTags\"\n [ngTemplateOutletContext]=\"{ $implicit: multiselectContainerRef }\"\n />\n }\n <input\n #searchInput\n type=\"text\"\n class=\"tedi-select__search-input\"\n [class.tedi-select__search-input--hidden]=\"showSingleSelectedValue()\"\n [placeholder]=\"selectedValues().length ? '' : placeholder()\"\n [value]=\"searchTerm()\"\n [disabled]=\"disabled()\"\n (input)=\"onSearchInput($event)\"\n (focus)=\"onSearchFocus()\"\n (blur)=\"onSearchBlur()\"\n (keydown)=\"onSearchKeydown($event)\"\n autocomplete=\"off\"\n role=\"combobox\"\n aria-autocomplete=\"list\"\n [attr.aria-expanded]=\"isOpen()\"\n [attr.aria-controls]=\"listboxId()\"\n [attr.aria-labelledby]=\"label() ? labelId() : null\"\n />\n </div>\n } @else {\n <span class=\"tedi-select__label\">\n @if (selectedValues().length) {\n @if (allowMultiple()) {\n <ng-container\n [ngTemplateOutlet]=\"multiselectTags\"\n [ngTemplateOutletContext]=\"{ $implicit: multiselectContainerRef }\"\n />\n } @else {\n @if (valueTemplate(); as tpl) {\n @if (selectedOptions()[0]; as option) {\n <ng-container\n [ngTemplateOutlet]=\"tpl.template\"\n [ngTemplateOutletContext]=\"getValueContext(option)\"\n />\n }\n } @else {\n {{ selectedLabels().join(\", \") }}\n }\n }\n } @else {\n <span class=\"tedi-select__label--placeholder\">\n {{ placeholder() }}\n </span>\n }\n </span>\n }\n\n @if (clearable() && selectedValues().length) {\n <button\n class=\"tedi-select__clear\"\n tedi-closing-button\n type=\"button\"\n size=\"small\"\n [iconSize]=\"18\"\n [ariaLabel]=\"'clear' | tediTranslate\"\n (click)=\"clear($event)\"\n (keydown.enter)=\"clear($event)\"\n (keydown.space)=\"clear($event)\"\n [attr.aria-describedby]=\"label() ? labelId() : null\"\n ></button>\n }\n\n <tedi-icon class=\"tedi-select__arrow\" name=\"arrow_drop_down\" />\n</div>\n@if (feedbackText(); as feedback) {\n <tedi-feedback-text\n [text]=\"feedback.text\"\n [type]=\"feedback.type\"\n [position]=\"feedback.position\"\n />\n}\n\n<ng-template #multiselectTags>\n <div\n class=\"tedi-select__multiselect-container\"\n [class.tedi-select__multiselect-container--single-row]=\"!multiRow()\"\n #multiselectContainer\n >\n @if (multiRow()) {\n @for (value of selectedValues(); track value) {\n <tedi-tag\n [closable]=\"isTagRemovable()\"\n (closed)=\"deselect($event, value)\"\n >\n {{ getLabel(value) }}\n </tedi-tag>\n }\n } @else {\n @for (value of selectedValues(); track value; let i = $index) {\n @if (visibleTagsCount() === null || i < visibleTagsCount()!) {\n <tedi-tag\n #tagElement\n [closable]=\"isTagRemovable()\"\n (closed)=\"deselect($event, value)\"\n >\n {{ getLabel(value) }}\n </tedi-tag>\n }\n }\n @if (hiddenTagsCount() > 0) {\n <tedi-tag>+{{ hiddenTagsCount() }}</tedi-tag>\n }\n }\n </div>\n</ng-template>\n\n<ng-template\n cdkConnectedOverlay\n [cdkConnectedOverlayOrigin]=\"trigger\"\n [cdkConnectedOverlayOpen]=\"isOpen()\"\n [cdkConnectedOverlayPositions]=\"dropdownPositions\"\n [cdkConnectedOverlayFlexibleDimensions]=\"true\"\n [cdkConnectedOverlayGrowAfterOpen]=\"true\"\n (detach)=\"toggleIsOpen(true)\"\n>\n <div\n class=\"tedi-select__dropdown\"\n [style.width]=\"!!dropdownWidth() ? dropdownWidth() + 'px' : 'auto'\"\n [style.max-height]=\"dropdownMaxHeight() ? dropdownMaxHeight() + 'px' : null\"\n >\n <ul\n [id]=\"listboxId()\"\n class=\"tedi-select__options\"\n [class.tedi-select__options--multiselect]=\"allowMultiple()\"\n [class.tedi-select__options--swatch-grid]=\"dropdownType() === 'grid'\"\n cdkListbox\n [cdkListboxMultiple]=\"allowMultiple()\"\n [cdkListboxValue]=\"visibleSelectedValues()\"\n [cdkListboxNavigatesDisabledOptions]=\"false\"\n [cdkListboxUseActiveDescendant]=\"true\"\n (cdkListboxValueChange)=\"handleValueChange($event)\"\n (keydown.tab)=\"toggleIsOpen(true)\"\n (keydown.escape)=\"toggleIsOpen(true)\"\n #listbox=\"cdkListbox\"\n >\n @if (filteredOptions().length) {\n @if (allowMultiple() && showSelectAll()) {\n <li\n class=\"tedi-dropdown-item\"\n [cdkOption]=\"SpecialOptionControls.SELECT_ALL\"\n >\n <tedi-dropdown-item-value type=\"checkbox\" [selected]=\"allOptionsSelected()\">\n <tedi-dropdown-item-value-label>{{ \"select.select-all\" | tediTranslate }}</tedi-dropdown-item-value-label>\n </tedi-dropdown-item-value>\n </li>\n }\n\n @for (group of optionGroups(); track group.label) {\n @if (group.label.length > 0) {\n @if (allowMultiple() && selectableGroups()) {\n <li\n class=\"tedi-dropdown-item tedi-select__group-name tedi-select__group-name--selectable\"\n [cdkOption]=\"SpecialOptionControls.SELECT_GROUP + group.label\"\n >\n <tedi-dropdown-item-value type=\"checkbox\" [selected]=\"isGroupSelected(group.label)\" [indeterminate]=\"isGroupIndeterminate(group.label)\">\n <tedi-dropdown-item-value-label>{{ group.label }}</tedi-dropdown-item-value-label>\n </tedi-dropdown-item-value>\n </li>\n } @else {\n <li class=\"tedi-select__group-name\" role=\"presentation\">\n <span tedi-text color=\"tertiary\">\n {{ group.label }}\n </span>\n </li>\n }\n }\n\n @for (option of group.options; track option.value; let i = $index) {\n <li\n class=\"tedi-dropdown-item\"\n [class.tedi-dropdown-item--selected]=\"!allowMultiple() && isOptionSelected(option.value)\"\n [class.tedi-dropdown-item--disabled]=\"option.disabled\"\n [class.tedi-dropdown-item--custom]=\"optionTemplate()\"\n [cdkOption]=\"option.value\"\n [cdkOptionDisabled]=\"option.disabled\"\n >\n @if (optionTemplate(); as tpl) {\n <ng-container\n [ngTemplateOutlet]=\"tpl.template\"\n [ngTemplateOutletContext]=\"getOptionContext(option, i)\"\n />\n } @else {\n <tedi-dropdown-item-value\n [type]=\"allowMultiple() ? 'checkbox' : 'default'\"\n [selected]=\"isOptionSelected(option.value)\"\n [disabled]=\"!!option.disabled\"\n >\n <tedi-dropdown-item-value-label>{{ option.label }}</tedi-dropdown-item-value-label>\n </tedi-dropdown-item-value>\n }\n </li>\n }\n }\n } @else {\n <li class=\"tedi-dropdown-item tedi-select__no-options\">\n {{ noOptionsMessage() || (\"select.no-options\" | tediTranslate) }}\n </li>\n }\n </ul>\n </div>\n</ng-template>\n", styles: ["li[tedi-dropdown-item],.tedi-dropdown-item{display:flex;gap:var(--dropdown-item-inner-spacing);align-items:center;width:100%;min-height:40px;padding:var(--dropdown-item-padding-y) var(--dropdown-item-padding-x);color:var(--dropdown-item-default-text);cursor:pointer;background:var(--dropdown-item-default-background)}li[tedi-dropdown-item]:hover:not(.tedi-dropdown-item--disabled,[aria-disabled=true]),.tedi-dropdown-item:hover:not(.tedi-dropdown-item--disabled,[aria-disabled=true]){color:var(--dropdown-item-hover-text);background:var(--dropdown-item-hover-background)}li[tedi-dropdown-item]:focus-visible,.tedi-dropdown-item:focus-visible{outline:var(--borders-02) solid var(--tedi-primary-500);outline-offset:calc(-1 * var(--borders-02))}li[tedi-dropdown-item][aria-selected=true],li[tedi-dropdown-item].tedi-dropdown-item--selected,.tedi-dropdown-item[aria-selected=true],.tedi-dropdown-item.tedi-dropdown-item--selected{color:var(--dropdown-item-active-text);background:var(--dropdown-item-active-background)}li[tedi-dropdown-item][aria-disabled=true],li[tedi-dropdown-item].tedi-dropdown-item--disabled,.tedi-dropdown-item[aria-disabled=true],.tedi-dropdown-item.tedi-dropdown-item--disabled{color:var(--general-text-disabled);cursor:not-allowed;background:var(--dropdown-item-disabled-background)}.tedi-input{--_border-color: var(--form-input-border-default);--_color: var(--form-input-text-filled);--_background-color: var(--form-input-background-default);--_placeholder-color: var(--form-input-text-placeholder);--_border-radius: var(--form-field-radius);--_font-size: var(--body-regular-size);--_line-height: var(--body-regular-line-height);--_padding-y: var(--form-field-padding-y-md-default);--_padding-x: var(--form-field-padding-x-md-default);--_search-input-min-width: 50px;min-height:var(--form-field-height);padding:calc(var(--_padding-y) - var(--borders-01)) var(--_padding-x);margin-bottom:0;font-family:var(--family-default);font-size:var(--_font-size);line-height:var(--_line-height);color:var(--_color);background-color:var(--_background-color);border:var(--borders-01) solid var(--_border-color);border-radius:var(--_border-radius)}.tedi-input:hover{--_border-color: var(--form-input-border-hover)}.tedi-input:focus,.tedi-input:active,.tedi-input.tedi-select__trigger--search-focused{border-color:var(--form-input-border-hover);box-shadow:inset 0 0 0 1px var(--form-input-border-hover)}.tedi-input--disabled{--_color: var(--form-input-text-disabled);--_border-color: var(--form-input-border-disabled);--_background-color: var(--form-input-background-disabled);pointer-events:none}.tedi-input--error:not(.tedi-input--disabled){--_border-color: var(--form-general-feedback-error-border)}.tedi-input--error:not(.tedi-input--disabled):focus,.tedi-input--error:not(.tedi-input--disabled):active,.tedi-input--error:not(.tedi-input--disabled).tedi-select__trigger--search-focused{border-color:var(--form-general-feedback-error-border);box-shadow:inset 0 0 0 1px var(--form-general-feedback-error-border)}.tedi-input--valid:not(.tedi-input--disabled){--_border-color: var(--form-general-feedback-success-border)}.tedi-input--valid:not(.tedi-input--disabled):focus,.tedi-input--valid:not(.tedi-input--disabled):active,.tedi-input--valid:not(.tedi-input--disabled).tedi-select__trigger--search-focused{border-color:var(--form-general-feedback-success-border);box-shadow:inset 0 0 0 1px var(--form-general-feedback-success-border)}.tedi-input--small{--_padding-y: var(--form-field-padding-y-sm);min-height:var(--form-field-height-sm)}.tedi-select{display:block;width:100%}.tedi-select .tedi-feedback-text{margin-top:var(--form-field-outer-spacing)}.tedi-select__trigger{display:flex;justify-content:space-between;width:100%;cursor:pointer}.tedi-select__label{flex-grow:1;overflow:hidden;text-align:left;cursor:default}.tedi-select__label--placeholder{color:var(--_placeholder-color);pointer-events:none}.tedi-select__clear{flex-grow:0;padding:0;margin:0;color:var(--button-close-text-default);cursor:pointer;background:none;border:none}.tedi-select__clear+.tedi-select__arrow{border-left:1px solid var(--general-border-primary)}.tedi-select__arrow{flex-grow:0;padding-left:var(--form-field-inner-spacing);margin-left:var(--form-field-inner-spacing);cursor:default}.tedi-select__dropdown{display:flex;flex-direction:column;max-height:100%;margin-top:var(--form-field-outer-spacing);margin-bottom:var(--form-field-outer-spacing);background:var(--card-background-primary);border-radius:var(--card-border-radius);box-shadow:0 1px 5px 0 var(--tedi-alpha-20)}.tedi-select__trigger--searchable{cursor:text}.tedi-select__search-wrapper{position:relative;display:flex;flex-grow:1;flex-wrap:wrap;gap:var(--form-field-inner-spacing);align-items:center;min-height:var(--_line-height);overflow:hidden}.tedi-select__selected-value{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;pointer-events:none}.tedi-select__search-input{position:absolute;top:0;left:0;width:100%;height:100%;padding:0;font-family:inherit;font-size:inherit;line-height:inherit;color:inherit;background:transparent;border:none}.tedi-select__search-input:focus{outline:none}.tedi-select__search-input::placeholder{color:var(--form-input-text-placeholder)}.tedi-select__search-input--hidden{color:transparent;caret-color:var(--form-input-text-filled)}.tedi-select__search-input:not(.tedi-select__search-input--hidden){position:relative;flex:1;width:auto;min-width:var(--_search-input-min-width);height:auto}.tedi-select__options{flex:1;min-height:0;padding:0;margin:0;overflow-y:auto;outline:none}.tedi-select__options .tedi-dropdown-item{outline:none}.tedi-select__options .tedi-dropdown-item.cdk-option-active:not(.tedi-dropdown-item--disabled){outline:var(--borders-02) solid var(--tedi-primary-500);outline-offset:calc(-1 * var(--borders-02))}.tedi-select__options .tedi-dropdown-item[aria-selected=true],.tedi-select__options .tedi-dropdown-item.tedi-dropdown-item--selected{color:var(--dropdown-item-active-text);background:var(--dropdown-item-active-background)}.tedi-select__options .tedi-dropdown-item[aria-selected=true] .tedi-icon,.tedi-select__options .tedi-dropdown-item.tedi-dropdown-item--selected .tedi-icon{color:inherit}.tedi-select__dropdown-item--label{display:none}.tedi-select__dropdown-item--custom-content:empty+.tedi-select__dropdown-item--label{display:block}.tedi-select__group-name{display:block;padding:var(--dropdown-group-label-padding-y) var(--dropdown-group-label-padding-x) var(--layout-grid-gutters-04);font-size:var(--heading-subtitle-small-size);font-weight:var(--heading-subtitle-small-weight);line-height:var(--heading-subtitle-small-line-height);text-transform:uppercase;letter-spacing:0}.tedi-select__group-name--selectable{padding:var(--dropdown-item-padding-y) var(--dropdown-item-padding-x);font-size:var(--body-regular-size);font-weight:var(--body-regular-weight);line-height:var(--body-regular-line-height);text-transform:none;letter-spacing:inherit}.tedi-select__group-name--selectable~.tedi-dropdown-item:not(.tedi-select__group-name){padding-left:var(--form-checkbox-radio-subitem-padding-left)}.tedi-select--multiselect .tedi-select__trigger{align-items:flex-start}.tedi-select__multiselect-container{display:flex;flex-wrap:wrap;gap:var(--form-field-inner-spacing)}.tedi-select__multiselect-container--single-row{flex-wrap:nowrap;overflow:hidden}.tedi-select__multiselect-container--single-row .tedi-tag{flex-shrink:0}.tedi-select__multiselect-container--single-row .tedi-tag__content{white-space:nowrap}.tedi-select__no-options{color:var(--general-text-tertiary);cursor:default}.tedi-select__no-options:hover{color:var(--general-text-tertiary);background:var(--dropdown-item-default-background)}.tedi-select__dropdown:has(.tedi-select__options--swatch-grid){width:fit-content}.tedi-select__options--swatch-grid{--tedi-swatch-size: 24px;--tedi-swatch-gap: var(--layout-grid-gutters-04);--tedi-swatch-columns: 11;display:grid;grid-template-columns:repeat(auto-fit,var(--tedi-swatch-size));gap:var(--tedi-swatch-gap);max-width:calc(var(--tedi-swatch-columns) * (var(--tedi-swatch-size) + var(--tedi-swatch-gap)));padding:var(--dropdown-body-padding-y) var(--dropdown-body-padding-x)}.tedi-select__options--swatch-grid .tedi-dropdown-item{display:flex;align-items:center;justify-content:center;width:var(--tedi-swatch-size);height:var(--tedi-swatch-size);min-height:auto;padding:var(--layout-grid-gutters-02);color:inherit;background:transparent;border-radius:var(--card-radius-rounded)}.tedi-select__options--swatch-grid .tedi-dropdown-item.cdk-option-active:not(.tedi-dropdown-item--disabled){outline-offset:0}.tedi-select__options--swatch-grid .tedi-dropdown-item[aria-selected=true],.tedi-select__options--swatch-grid .tedi-dropdown-item.tedi-dropdown-item--selected{color:inherit;background:transparent;border:var(--borders-02) solid var(--card-border-selected)}.tedi-select__options--swatch-grid .tedi-dropdown-item:hover:not(.tedi-dropdown-item--disabled){background:transparent}\n"] }]
|
|
3373
|
+
}], ctorParameters: () => [], propDecorators: { onWindowResize: [{
|
|
3374
|
+
type: HostListener,
|
|
3375
|
+
args: ["window:resize"]
|
|
3376
|
+
}], onDocumentClick: [{
|
|
3377
|
+
type: HostListener,
|
|
3378
|
+
args: ["document:click", ["$event"]]
|
|
3379
|
+
}] } });
|
|
3380
|
+
|
|
3381
|
+
class ToggleComponent {
|
|
3382
|
+
/**
|
|
3383
|
+
* The unique identifier for the input element that is associated with label.
|
|
3384
|
+
*/
|
|
3385
|
+
inputId = input.required();
|
|
3386
|
+
/**
|
|
3387
|
+
* Is toggle checked? Supports two-way binding, use with form controls.
|
|
3388
|
+
*/
|
|
3389
|
+
checked = model(false);
|
|
3390
|
+
/**
|
|
3391
|
+
* Is input disabled?
|
|
3392
|
+
* @default false
|
|
3393
|
+
*/
|
|
3394
|
+
disabled = input(false);
|
|
3395
|
+
/**
|
|
3396
|
+
* Indicates whether the input field is required.
|
|
3397
|
+
* @default false
|
|
3398
|
+
*/
|
|
3399
|
+
required = input(false);
|
|
3400
|
+
/**
|
|
3401
|
+
* Color variant of the toggle
|
|
3402
|
+
* @default primary
|
|
3403
|
+
*/
|
|
3404
|
+
variant = input("primary");
|
|
3405
|
+
/**
|
|
3406
|
+
* Type of the toggle
|
|
3407
|
+
* @default filled
|
|
3408
|
+
*/
|
|
3409
|
+
type = input("filled");
|
|
3410
|
+
/**
|
|
3411
|
+
* Size of the toggle
|
|
3412
|
+
* @default default
|
|
3413
|
+
*/
|
|
3414
|
+
size = input("default");
|
|
3415
|
+
/**
|
|
3416
|
+
* Should the toggle show lock icon. Works only with large toggle.
|
|
3417
|
+
* @default false
|
|
3418
|
+
*/
|
|
3419
|
+
icon = input(false);
|
|
3420
|
+
inputRef;
|
|
3421
|
+
onChange = () => { };
|
|
3422
|
+
onTouched = () => { };
|
|
3423
|
+
writeValue(checked) {
|
|
3424
|
+
this.checked.set(checked);
|
|
3425
|
+
}
|
|
3426
|
+
registerOnChange(fn) {
|
|
3427
|
+
this.onChange = fn;
|
|
3428
|
+
}
|
|
3429
|
+
registerOnTouched(fn) {
|
|
3430
|
+
this.onTouched = fn;
|
|
3431
|
+
}
|
|
3432
|
+
focus() {
|
|
3433
|
+
this.inputRef.nativeElement.focus();
|
|
3434
|
+
}
|
|
3435
|
+
blur() {
|
|
3436
|
+
this.inputRef.nativeElement.blur();
|
|
3437
|
+
this.onTouched();
|
|
3438
|
+
}
|
|
3439
|
+
handleChange = (event) => {
|
|
3440
|
+
const target = event.target;
|
|
3441
|
+
this.checked.set(target.checked);
|
|
3442
|
+
this.onChange(target.checked);
|
|
3443
|
+
};
|
|
3444
|
+
classes = computed(() => {
|
|
3445
|
+
return [
|
|
3446
|
+
"tedi-toggle",
|
|
3447
|
+
`tedi-toggle--${this.variant()}-${this.type()}`,
|
|
3448
|
+
`tedi-toggle--size-${this.size()}`,
|
|
3449
|
+
].join(" ");
|
|
3450
|
+
});
|
|
3451
|
+
iconColor = computed(() => {
|
|
3452
|
+
if (this.type() === "outlined") {
|
|
3453
|
+
return 'white';
|
|
3454
|
+
}
|
|
3455
|
+
switch (this.variant()) {
|
|
3456
|
+
case "primary":
|
|
3457
|
+
return this.checked() ? "brand" : "tertiary";
|
|
3458
|
+
case "colored":
|
|
3459
|
+
return this.checked() ? "success" : "danger";
|
|
3460
|
+
}
|
|
3461
|
+
});
|
|
3462
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: ToggleComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
3463
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.15", type: ToggleComponent, isStandalone: true, selector: "tedi-toggle", inputs: { inputId: { classPropertyName: "inputId", publicName: "inputId", isSignal: true, isRequired: true, transformFunction: null }, checked: { classPropertyName: "checked", publicName: "checked", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null }, required: { classPropertyName: "required", publicName: "required", isSignal: true, isRequired: false, transformFunction: null }, variant: { classPropertyName: "variant", publicName: "variant", isSignal: true, isRequired: false, transformFunction: null }, type: { classPropertyName: "type", publicName: "type", isSignal: true, isRequired: false, transformFunction: null }, size: { classPropertyName: "size", publicName: "size", isSignal: true, isRequired: false, transformFunction: null }, icon: { classPropertyName: "icon", publicName: "icon", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { checked: "checkedChange" }, host: { properties: { "class": "classes()" } }, providers: [
|
|
3464
|
+
{
|
|
3465
|
+
provide: NG_VALUE_ACCESSOR,
|
|
3466
|
+
useExisting: forwardRef(() => ToggleComponent),
|
|
3467
|
+
multi: true
|
|
3468
|
+
}
|
|
3469
|
+
], viewQueries: [{ propertyName: "inputRef", first: true, predicate: ["inputElement"], descendants: true }], ngImport: i0, template: "<input\n #inputElement\n [id]=\"inputId()\"\n [checked]=\"checked()\"\n [disabled]=\"disabled()\"\n [required]=\"required()\"\n [attr.aria-checked]=\"checked()\"\n type=\"checkbox\"\n class=\"tedi-toggle__input\"\n role=\"switch\"\n (change)=\"handleChange($event)\"\n/>\n<span class=\"tedi-toggle__slider\" aria-hidden=\"true\">\n @if (icon() && size() === 'large') {\n <tedi-icon\n [name]=\"checked() ? 'lock_open_right' : 'lock'\"\n [color]=\"iconColor()\"\n [size]=\"16\"\n class=\"tedi-toggle__icon\"\n />\n }\n</span>\n", styles: [".tedi-toggle{position:relative;display:block}.tedi-toggle--size-default{--_toggle-indicator: var(--form-toggl-default-indicator);width:var(--form-toggl-default-width);height:var(--form-toggl-default-height)}.tedi-toggle--size-default .tedi-toggle__slider{width:var(--form-toggl-default-indicator);height:var(--form-toggl-default-indicator)}.tedi-toggle--size-large{--_toggle-indicator: var(--form-toggl-large-indicator);width:var(--form-toggl-large-width);height:var(--form-toggl-large-height)}.tedi-toggle--size-large .tedi-toggle__slider{width:var(--form-toggl-large-indicator);height:var(--form-toggl-large-indicator)}.tedi-toggle--primary-filled .tedi-toggle__input{background-color:var(--form-toggl-primary-inactive-default)}.tedi-toggle--primary-filled .tedi-toggle__input:hover{background-color:var(--form-toggl-primary-inactive-hover)}.tedi-toggle--primary-filled .tedi-toggle__input:active{background-color:var(--form-toggl-primary-inactive-active)}.tedi-toggle--primary-filled .tedi-toggle__input:focus-visible{outline:calc(2 * var(--borders-01)) solid var(--form-toggl-primary-active-default);outline-offset:var(--borders-01);background-color:var(--form-toggl-primary-inactive-default)}.tedi-toggle--primary-filled .tedi-toggle__input:disabled{cursor:not-allowed;background-color:var(--form-toggl-primary-inactive-default);opacity:.5}.tedi-toggle--primary-filled .tedi-toggle__input:disabled+.tedi-toggle__slider .tedi-toggle__icon{opacity:.5}.tedi-toggle--primary-filled .tedi-toggle__input+.tedi-toggle__slider{background-color:var(--form-toggl-primary-inactive-indicator)}.tedi-toggle--primary-filled .tedi-toggle__input:checked{background-color:var(--form-toggl-primary-active-default)}.tedi-toggle--primary-filled .tedi-toggle__input:checked:hover{background-color:var(--form-toggl-primary-active-hover)}.tedi-toggle--primary-filled .tedi-toggle__input:checked:active{background-color:var(--form-toggl-primary-active-active)}.tedi-toggle--primary-filled .tedi-toggle__input:checked:focus-visible{outline:calc(2 * var(--borders-01)) solid var(--form-toggl-primary-active-default);outline-offset:var(--borders-01);background-color:var(--form-toggl-primary-active-default)}.tedi-toggle--primary-filled .tedi-toggle__input:checked:disabled{cursor:not-allowed;background-color:var(--form-toggl-primary-active-default);opacity:.5}.tedi-toggle--primary-filled .tedi-toggle__input:checked:disabled+.tedi-toggle__slider .tedi-toggle__icon{opacity:.5}.tedi-toggle--primary-filled .tedi-toggle__input:checked+.tedi-toggle__slider{background-color:var(--form-toggl-primary-active-indicator)}.tedi-toggle--primary-outlined .tedi-toggle__input{border:var(--borders-01) solid var(--form-toggl-primary-inactive-default)}.tedi-toggle--primary-outlined .tedi-toggle__input+.tedi-toggle__slider{background-color:var(--form-toggl-primary-inactive-default)}.tedi-toggle--primary-outlined .tedi-toggle__input:hover{border:var(--borders-01) solid var(--form-toggl-primary-inactive-hover)}.tedi-toggle--primary-outlined .tedi-toggle__input:hover+.tedi-toggle__slider{background-color:var(--form-toggl-primary-inactive-hover)}.tedi-toggle--primary-outlined .tedi-toggle__input:active{border:var(--borders-01) solid var(--form-toggl-primary-inactive-active)}.tedi-toggle--primary-outlined .tedi-toggle__input:active+.tedi-toggle__slider{background-color:var(--form-toggl-primary-inactive-active)}.tedi-toggle--primary-outlined .tedi-toggle__input:focus-visible{outline:calc(2 * var(--borders-01)) solid var(--form-toggl-primary-active-default);outline-offset:var(--borders-01);border:var(--borders-01) solid var(--form-toggl-primary-inactive-default)}.tedi-toggle--primary-outlined .tedi-toggle__input:focus-visible+.tedi-toggle__slider{background-color:var(--form-toggl-primary-inactive-default)}.tedi-toggle--primary-outlined .tedi-toggle__input:disabled{cursor:not-allowed;border:var(--borders-01) solid var(--form-toggl-primary-inactive-default);opacity:.5}.tedi-toggle--primary-outlined .tedi-toggle__input:disabled+.tedi-toggle__slider{background-color:var(--form-toggl-primary-inactive-default)}.tedi-toggle--primary-outlined .tedi-toggle__input:disabled+.tedi-toggle__slider{opacity:.5}.tedi-toggle--primary-outlined .tedi-toggle__input:checked{border:var(--borders-01) solid var(--form-toggl-primary-active-default)}.tedi-toggle--primary-outlined .tedi-toggle__input:checked+.tedi-toggle__slider{background-color:var(--form-toggl-primary-active-default)}.tedi-toggle--primary-outlined .tedi-toggle__input:checked:hover{border:var(--borders-01) solid var(--form-toggl-primary-active-hover)}.tedi-toggle--primary-outlined .tedi-toggle__input:checked:hover+.tedi-toggle__slider{background-color:var(--form-toggl-primary-active-hover)}.tedi-toggle--primary-outlined .tedi-toggle__input:checked:active{border:var(--borders-01) solid var(--form-toggl-primary-active-active)}.tedi-toggle--primary-outlined .tedi-toggle__input:checked:active+.tedi-toggle__slider{background-color:var(--form-toggl-primary-active-active)}.tedi-toggle--primary-outlined .tedi-toggle__input:checked:focus-visible{outline:calc(2 * var(--borders-01)) solid var(--form-toggl-primary-active-default);outline-offset:var(--borders-01);border:var(--borders-01) solid var(--form-toggl-primary-active-default)}.tedi-toggle--primary-outlined .tedi-toggle__input:checked:focus-visible+.tedi-toggle__slider{background-color:var(--form-toggl-primary-active-default)}.tedi-toggle--primary-outlined .tedi-toggle__input:checked:disabled{cursor:not-allowed;border:var(--borders-01) solid var(--form-toggl-primary-active-default);opacity:.5}.tedi-toggle--primary-outlined .tedi-toggle__input:checked:disabled+.tedi-toggle__slider{background-color:var(--form-toggl-primary-active-default)}.tedi-toggle--primary-outlined .tedi-toggle__input:checked:disabled+.tedi-toggle__slider{opacity:.5}.tedi-toggle--colored-filled .tedi-toggle__input{background-color:var(--form-toggl-colored-inactive-default)}.tedi-toggle--colored-filled .tedi-toggle__input:hover{background-color:var(--form-toggl-colored-inactive-hover)}.tedi-toggle--colored-filled .tedi-toggle__input:active{background-color:var(--form-toggl-colored-inactive-active)}.tedi-toggle--colored-filled .tedi-toggle__input:focus-visible{outline:calc(2 * var(--borders-01)) solid var(--form-toggl-primary-active-default);outline-offset:var(--borders-01);background-color:var(--form-toggl-colored-inactive-default)}.tedi-toggle--colored-filled .tedi-toggle__input:disabled{cursor:not-allowed;background-color:var(--form-toggl-colored-inactive-default);opacity:.5}.tedi-toggle--colored-filled .tedi-toggle__input:disabled+.tedi-toggle__slider .tedi-toggle__icon{opacity:.5}.tedi-toggle--colored-filled .tedi-toggle__input+.tedi-toggle__slider{background-color:var(--form-toggl-colored-inactive-indicator)}.tedi-toggle--colored-filled .tedi-toggle__input:checked{background-color:var(--form-toggl-colored-active-default)}.tedi-toggle--colored-filled .tedi-toggle__input:checked:hover{background-color:var(--form-toggl-colored-active-hover)}.tedi-toggle--colored-filled .tedi-toggle__input:checked:active{background-color:var(--form-toggl-colored-active-active)}.tedi-toggle--colored-filled .tedi-toggle__input:checked:focus-visible{outline:calc(2 * var(--borders-01)) solid var(--form-toggl-primary-active-default);outline-offset:var(--borders-01);background-color:var(--form-toggl-colored-active-default)}.tedi-toggle--colored-filled .tedi-toggle__input:checked:disabled{cursor:not-allowed;background-color:var(--form-toggl-colored-active-default);opacity:.5}.tedi-toggle--colored-filled .tedi-toggle__input:checked:disabled+.tedi-toggle__slider .tedi-toggle__icon{opacity:.5}.tedi-toggle--colored-filled .tedi-toggle__input:checked+.tedi-toggle__slider{background-color:var(--form-toggl-colored-active-indicator)}.tedi-toggle--colored-outlined .tedi-toggle__input{border:var(--borders-01) solid var(--form-toggl-colored-inactive-default)}.tedi-toggle--colored-outlined .tedi-toggle__input+.tedi-toggle__slider{background-color:var(--form-toggl-colored-inactive-default)}.tedi-toggle--colored-outlined .tedi-toggle__input:hover{border:var(--borders-01) solid var(--form-toggl-colored-inactive-hover)}.tedi-toggle--colored-outlined .tedi-toggle__input:hover+.tedi-toggle__slider{background-color:var(--form-toggl-colored-inactive-hover)}.tedi-toggle--colored-outlined .tedi-toggle__input:active{border:var(--borders-01) solid var(--form-toggl-colored-inactive-active)}.tedi-toggle--colored-outlined .tedi-toggle__input:active+.tedi-toggle__slider{background-color:var(--form-toggl-colored-inactive-active)}.tedi-toggle--colored-outlined .tedi-toggle__input:focus-visible{outline:calc(2 * var(--borders-01)) solid var(--form-toggl-primary-active-default);outline-offset:var(--borders-01);border:var(--borders-01) solid var(--form-toggl-colored-inactive-default)}.tedi-toggle--colored-outlined .tedi-toggle__input:focus-visible+.tedi-toggle__slider{background-color:var(--form-toggl-colored-inactive-default)}.tedi-toggle--colored-outlined .tedi-toggle__input:disabled{cursor:not-allowed;border:var(--borders-01) solid var(--form-toggl-colored-inactive-default);opacity:.5}.tedi-toggle--colored-outlined .tedi-toggle__input:disabled+.tedi-toggle__slider{background-color:var(--form-toggl-colored-inactive-default)}.tedi-toggle--colored-outlined .tedi-toggle__input:disabled+.tedi-toggle__slider{opacity:.5}.tedi-toggle--colored-outlined .tedi-toggle__input:checked{border:var(--borders-01) solid var(--form-toggl-colored-active-default)}.tedi-toggle--colored-outlined .tedi-toggle__input:checked+.tedi-toggle__slider{background-color:var(--form-toggl-colored-active-default)}.tedi-toggle--colored-outlined .tedi-toggle__input:checked:hover{border:var(--borders-01) solid var(--form-toggl-colored-active-hover)}.tedi-toggle--colored-outlined .tedi-toggle__input:checked:hover+.tedi-toggle__slider{background-color:var(--form-toggl-colored-active-hover)}.tedi-toggle--colored-outlined .tedi-toggle__input:checked:active{border:var(--borders-01) solid var(--form-toggl-colored-active-active)}.tedi-toggle--colored-outlined .tedi-toggle__input:checked:active+.tedi-toggle__slider{background-color:var(--form-toggl-colored-active-active)}.tedi-toggle--colored-outlined .tedi-toggle__input:checked:focus-visible{outline:calc(2 * var(--borders-01)) solid var(--form-toggl-primary-active-default);outline-offset:var(--borders-01);border:var(--borders-01) solid var(--form-toggl-colored-active-default)}.tedi-toggle--colored-outlined .tedi-toggle__input:checked:focus-visible+.tedi-toggle__slider{background-color:var(--form-toggl-colored-active-default)}.tedi-toggle--colored-outlined .tedi-toggle__input:checked:disabled{cursor:not-allowed;border:var(--borders-01) solid var(--form-toggl-colored-active-default);opacity:.5}.tedi-toggle--colored-outlined .tedi-toggle__input:checked:disabled+.tedi-toggle__slider{background-color:var(--form-toggl-colored-active-default)}.tedi-toggle--colored-outlined .tedi-toggle__input:checked:disabled+.tedi-toggle__slider{opacity:.5}.tedi-toggle__input{width:100%;height:100%;margin:0;appearance:none;cursor:pointer;border-radius:var(--form-toggl-radius)}.tedi-toggle__input:checked+.tedi-toggle__slider{left:calc(100% - var(--_toggle-indicator) - var(--form-toggl-padding));transform:translateY(-50%)}.tedi-toggle__slider{position:absolute;top:50%;left:var(--form-toggl-padding);display:flex;align-items:center;justify-content:center;pointer-events:none;border-radius:50%;transform:translateY(-50%);transition:left .17s ease-out}\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 });
|
|
3470
|
+
}
|
|
3471
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: ToggleComponent, decorators: [{
|
|
3472
|
+
type: Component,
|
|
3473
|
+
args: [{ selector: "tedi-toggle", standalone: true, encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, imports: [IconComponent], providers: [
|
|
3474
|
+
{
|
|
3475
|
+
provide: NG_VALUE_ACCESSOR,
|
|
3476
|
+
useExisting: forwardRef(() => ToggleComponent),
|
|
3477
|
+
multi: true
|
|
3478
|
+
}
|
|
3479
|
+
], host: {
|
|
3480
|
+
"[class]": "classes()"
|
|
3481
|
+
}, template: "<input\n #inputElement\n [id]=\"inputId()\"\n [checked]=\"checked()\"\n [disabled]=\"disabled()\"\n [required]=\"required()\"\n [attr.aria-checked]=\"checked()\"\n type=\"checkbox\"\n class=\"tedi-toggle__input\"\n role=\"switch\"\n (change)=\"handleChange($event)\"\n/>\n<span class=\"tedi-toggle__slider\" aria-hidden=\"true\">\n @if (icon() && size() === 'large') {\n <tedi-icon\n [name]=\"checked() ? 'lock_open_right' : 'lock'\"\n [color]=\"iconColor()\"\n [size]=\"16\"\n class=\"tedi-toggle__icon\"\n />\n }\n</span>\n", styles: [".tedi-toggle{position:relative;display:block}.tedi-toggle--size-default{--_toggle-indicator: var(--form-toggl-default-indicator);width:var(--form-toggl-default-width);height:var(--form-toggl-default-height)}.tedi-toggle--size-default .tedi-toggle__slider{width:var(--form-toggl-default-indicator);height:var(--form-toggl-default-indicator)}.tedi-toggle--size-large{--_toggle-indicator: var(--form-toggl-large-indicator);width:var(--form-toggl-large-width);height:var(--form-toggl-large-height)}.tedi-toggle--size-large .tedi-toggle__slider{width:var(--form-toggl-large-indicator);height:var(--form-toggl-large-indicator)}.tedi-toggle--primary-filled .tedi-toggle__input{background-color:var(--form-toggl-primary-inactive-default)}.tedi-toggle--primary-filled .tedi-toggle__input:hover{background-color:var(--form-toggl-primary-inactive-hover)}.tedi-toggle--primary-filled .tedi-toggle__input:active{background-color:var(--form-toggl-primary-inactive-active)}.tedi-toggle--primary-filled .tedi-toggle__input:focus-visible{outline:calc(2 * var(--borders-01)) solid var(--form-toggl-primary-active-default);outline-offset:var(--borders-01);background-color:var(--form-toggl-primary-inactive-default)}.tedi-toggle--primary-filled .tedi-toggle__input:disabled{cursor:not-allowed;background-color:var(--form-toggl-primary-inactive-default);opacity:.5}.tedi-toggle--primary-filled .tedi-toggle__input:disabled+.tedi-toggle__slider .tedi-toggle__icon{opacity:.5}.tedi-toggle--primary-filled .tedi-toggle__input+.tedi-toggle__slider{background-color:var(--form-toggl-primary-inactive-indicator)}.tedi-toggle--primary-filled .tedi-toggle__input:checked{background-color:var(--form-toggl-primary-active-default)}.tedi-toggle--primary-filled .tedi-toggle__input:checked:hover{background-color:var(--form-toggl-primary-active-hover)}.tedi-toggle--primary-filled .tedi-toggle__input:checked:active{background-color:var(--form-toggl-primary-active-active)}.tedi-toggle--primary-filled .tedi-toggle__input:checked:focus-visible{outline:calc(2 * var(--borders-01)) solid var(--form-toggl-primary-active-default);outline-offset:var(--borders-01);background-color:var(--form-toggl-primary-active-default)}.tedi-toggle--primary-filled .tedi-toggle__input:checked:disabled{cursor:not-allowed;background-color:var(--form-toggl-primary-active-default);opacity:.5}.tedi-toggle--primary-filled .tedi-toggle__input:checked:disabled+.tedi-toggle__slider .tedi-toggle__icon{opacity:.5}.tedi-toggle--primary-filled .tedi-toggle__input:checked+.tedi-toggle__slider{background-color:var(--form-toggl-primary-active-indicator)}.tedi-toggle--primary-outlined .tedi-toggle__input{border:var(--borders-01) solid var(--form-toggl-primary-inactive-default)}.tedi-toggle--primary-outlined .tedi-toggle__input+.tedi-toggle__slider{background-color:var(--form-toggl-primary-inactive-default)}.tedi-toggle--primary-outlined .tedi-toggle__input:hover{border:var(--borders-01) solid var(--form-toggl-primary-inactive-hover)}.tedi-toggle--primary-outlined .tedi-toggle__input:hover+.tedi-toggle__slider{background-color:var(--form-toggl-primary-inactive-hover)}.tedi-toggle--primary-outlined .tedi-toggle__input:active{border:var(--borders-01) solid var(--form-toggl-primary-inactive-active)}.tedi-toggle--primary-outlined .tedi-toggle__input:active+.tedi-toggle__slider{background-color:var(--form-toggl-primary-inactive-active)}.tedi-toggle--primary-outlined .tedi-toggle__input:focus-visible{outline:calc(2 * var(--borders-01)) solid var(--form-toggl-primary-active-default);outline-offset:var(--borders-01);border:var(--borders-01) solid var(--form-toggl-primary-inactive-default)}.tedi-toggle--primary-outlined .tedi-toggle__input:focus-visible+.tedi-toggle__slider{background-color:var(--form-toggl-primary-inactive-default)}.tedi-toggle--primary-outlined .tedi-toggle__input:disabled{cursor:not-allowed;border:var(--borders-01) solid var(--form-toggl-primary-inactive-default);opacity:.5}.tedi-toggle--primary-outlined .tedi-toggle__input:disabled+.tedi-toggle__slider{background-color:var(--form-toggl-primary-inactive-default)}.tedi-toggle--primary-outlined .tedi-toggle__input:disabled+.tedi-toggle__slider{opacity:.5}.tedi-toggle--primary-outlined .tedi-toggle__input:checked{border:var(--borders-01) solid var(--form-toggl-primary-active-default)}.tedi-toggle--primary-outlined .tedi-toggle__input:checked+.tedi-toggle__slider{background-color:var(--form-toggl-primary-active-default)}.tedi-toggle--primary-outlined .tedi-toggle__input:checked:hover{border:var(--borders-01) solid var(--form-toggl-primary-active-hover)}.tedi-toggle--primary-outlined .tedi-toggle__input:checked:hover+.tedi-toggle__slider{background-color:var(--form-toggl-primary-active-hover)}.tedi-toggle--primary-outlined .tedi-toggle__input:checked:active{border:var(--borders-01) solid var(--form-toggl-primary-active-active)}.tedi-toggle--primary-outlined .tedi-toggle__input:checked:active+.tedi-toggle__slider{background-color:var(--form-toggl-primary-active-active)}.tedi-toggle--primary-outlined .tedi-toggle__input:checked:focus-visible{outline:calc(2 * var(--borders-01)) solid var(--form-toggl-primary-active-default);outline-offset:var(--borders-01);border:var(--borders-01) solid var(--form-toggl-primary-active-default)}.tedi-toggle--primary-outlined .tedi-toggle__input:checked:focus-visible+.tedi-toggle__slider{background-color:var(--form-toggl-primary-active-default)}.tedi-toggle--primary-outlined .tedi-toggle__input:checked:disabled{cursor:not-allowed;border:var(--borders-01) solid var(--form-toggl-primary-active-default);opacity:.5}.tedi-toggle--primary-outlined .tedi-toggle__input:checked:disabled+.tedi-toggle__slider{background-color:var(--form-toggl-primary-active-default)}.tedi-toggle--primary-outlined .tedi-toggle__input:checked:disabled+.tedi-toggle__slider{opacity:.5}.tedi-toggle--colored-filled .tedi-toggle__input{background-color:var(--form-toggl-colored-inactive-default)}.tedi-toggle--colored-filled .tedi-toggle__input:hover{background-color:var(--form-toggl-colored-inactive-hover)}.tedi-toggle--colored-filled .tedi-toggle__input:active{background-color:var(--form-toggl-colored-inactive-active)}.tedi-toggle--colored-filled .tedi-toggle__input:focus-visible{outline:calc(2 * var(--borders-01)) solid var(--form-toggl-primary-active-default);outline-offset:var(--borders-01);background-color:var(--form-toggl-colored-inactive-default)}.tedi-toggle--colored-filled .tedi-toggle__input:disabled{cursor:not-allowed;background-color:var(--form-toggl-colored-inactive-default);opacity:.5}.tedi-toggle--colored-filled .tedi-toggle__input:disabled+.tedi-toggle__slider .tedi-toggle__icon{opacity:.5}.tedi-toggle--colored-filled .tedi-toggle__input+.tedi-toggle__slider{background-color:var(--form-toggl-colored-inactive-indicator)}.tedi-toggle--colored-filled .tedi-toggle__input:checked{background-color:var(--form-toggl-colored-active-default)}.tedi-toggle--colored-filled .tedi-toggle__input:checked:hover{background-color:var(--form-toggl-colored-active-hover)}.tedi-toggle--colored-filled .tedi-toggle__input:checked:active{background-color:var(--form-toggl-colored-active-active)}.tedi-toggle--colored-filled .tedi-toggle__input:checked:focus-visible{outline:calc(2 * var(--borders-01)) solid var(--form-toggl-primary-active-default);outline-offset:var(--borders-01);background-color:var(--form-toggl-colored-active-default)}.tedi-toggle--colored-filled .tedi-toggle__input:checked:disabled{cursor:not-allowed;background-color:var(--form-toggl-colored-active-default);opacity:.5}.tedi-toggle--colored-filled .tedi-toggle__input:checked:disabled+.tedi-toggle__slider .tedi-toggle__icon{opacity:.5}.tedi-toggle--colored-filled .tedi-toggle__input:checked+.tedi-toggle__slider{background-color:var(--form-toggl-colored-active-indicator)}.tedi-toggle--colored-outlined .tedi-toggle__input{border:var(--borders-01) solid var(--form-toggl-colored-inactive-default)}.tedi-toggle--colored-outlined .tedi-toggle__input+.tedi-toggle__slider{background-color:var(--form-toggl-colored-inactive-default)}.tedi-toggle--colored-outlined .tedi-toggle__input:hover{border:var(--borders-01) solid var(--form-toggl-colored-inactive-hover)}.tedi-toggle--colored-outlined .tedi-toggle__input:hover+.tedi-toggle__slider{background-color:var(--form-toggl-colored-inactive-hover)}.tedi-toggle--colored-outlined .tedi-toggle__input:active{border:var(--borders-01) solid var(--form-toggl-colored-inactive-active)}.tedi-toggle--colored-outlined .tedi-toggle__input:active+.tedi-toggle__slider{background-color:var(--form-toggl-colored-inactive-active)}.tedi-toggle--colored-outlined .tedi-toggle__input:focus-visible{outline:calc(2 * var(--borders-01)) solid var(--form-toggl-primary-active-default);outline-offset:var(--borders-01);border:var(--borders-01) solid var(--form-toggl-colored-inactive-default)}.tedi-toggle--colored-outlined .tedi-toggle__input:focus-visible+.tedi-toggle__slider{background-color:var(--form-toggl-colored-inactive-default)}.tedi-toggle--colored-outlined .tedi-toggle__input:disabled{cursor:not-allowed;border:var(--borders-01) solid var(--form-toggl-colored-inactive-default);opacity:.5}.tedi-toggle--colored-outlined .tedi-toggle__input:disabled+.tedi-toggle__slider{background-color:var(--form-toggl-colored-inactive-default)}.tedi-toggle--colored-outlined .tedi-toggle__input:disabled+.tedi-toggle__slider{opacity:.5}.tedi-toggle--colored-outlined .tedi-toggle__input:checked{border:var(--borders-01) solid var(--form-toggl-colored-active-default)}.tedi-toggle--colored-outlined .tedi-toggle__input:checked+.tedi-toggle__slider{background-color:var(--form-toggl-colored-active-default)}.tedi-toggle--colored-outlined .tedi-toggle__input:checked:hover{border:var(--borders-01) solid var(--form-toggl-colored-active-hover)}.tedi-toggle--colored-outlined .tedi-toggle__input:checked:hover+.tedi-toggle__slider{background-color:var(--form-toggl-colored-active-hover)}.tedi-toggle--colored-outlined .tedi-toggle__input:checked:active{border:var(--borders-01) solid var(--form-toggl-colored-active-active)}.tedi-toggle--colored-outlined .tedi-toggle__input:checked:active+.tedi-toggle__slider{background-color:var(--form-toggl-colored-active-active)}.tedi-toggle--colored-outlined .tedi-toggle__input:checked:focus-visible{outline:calc(2 * var(--borders-01)) solid var(--form-toggl-primary-active-default);outline-offset:var(--borders-01);border:var(--borders-01) solid var(--form-toggl-colored-active-default)}.tedi-toggle--colored-outlined .tedi-toggle__input:checked:focus-visible+.tedi-toggle__slider{background-color:var(--form-toggl-colored-active-default)}.tedi-toggle--colored-outlined .tedi-toggle__input:checked:disabled{cursor:not-allowed;border:var(--borders-01) solid var(--form-toggl-colored-active-default);opacity:.5}.tedi-toggle--colored-outlined .tedi-toggle__input:checked:disabled+.tedi-toggle__slider{background-color:var(--form-toggl-colored-active-default)}.tedi-toggle--colored-outlined .tedi-toggle__input:checked:disabled+.tedi-toggle__slider{opacity:.5}.tedi-toggle__input{width:100%;height:100%;margin:0;appearance:none;cursor:pointer;border-radius:var(--form-toggl-radius)}.tedi-toggle__input:checked+.tedi-toggle__slider{left:calc(100% - var(--_toggle-indicator) - var(--form-toggl-padding));transform:translateY(-50%)}.tedi-toggle__slider{position:absolute;top:50%;left:var(--form-toggl-padding);display:flex;align-items:center;justify-content:center;pointer-events:none;border-radius:50%;transform:translateY(-50%);transition:left .17s ease-out}\n"] }]
|
|
3482
|
+
}], propDecorators: { inputRef: [{
|
|
3483
|
+
type: ViewChild,
|
|
3484
|
+
args: ['inputElement']
|
|
3485
|
+
}] } });
|
|
3486
|
+
|
|
3487
|
+
class SeparatorComponent {
|
|
3488
|
+
/**
|
|
3489
|
+
* Axis of separator.
|
|
3490
|
+
*/
|
|
3491
|
+
axis = input("horizontal");
|
|
3492
|
+
/**
|
|
3493
|
+
* Color of separator
|
|
3494
|
+
*/
|
|
3495
|
+
color = input("primary");
|
|
3496
|
+
/**
|
|
3497
|
+
* Separator style variant.
|
|
3498
|
+
*/
|
|
3499
|
+
variant = input();
|
|
3500
|
+
/**
|
|
3501
|
+
* Dot size. Only used when variant is "dot-only".
|
|
3502
|
+
*/
|
|
3503
|
+
dotSize = input();
|
|
3504
|
+
/**
|
|
3505
|
+
* Is dot filled? Only used when variant is "dot-only".
|
|
3506
|
+
*/
|
|
3507
|
+
dotFilled = input(true);
|
|
3508
|
+
/**
|
|
3509
|
+
* Thickness in pixels (ignored if variant is used).
|
|
3510
|
+
* @default 1
|
|
3511
|
+
*/
|
|
3512
|
+
thickness = input(1);
|
|
3513
|
+
/**
|
|
3514
|
+
* Spacing applied based on the axis:
|
|
3515
|
+
* - For horizontal axis, spacing is applied to top and bottom of the separator.
|
|
3516
|
+
* - For vertical axis, spacing is applied to left and right of the separator.
|
|
3517
|
+
*/
|
|
3518
|
+
spacing = input();
|
|
3519
|
+
/**
|
|
3520
|
+
* Size of separator based on the axis:
|
|
3521
|
+
* - For horizontal axis, size defines width.
|
|
3522
|
+
* - For vertical axis, size defines height (when using percentages, then parent container must have height set).
|
|
3523
|
+
* @default 100%
|
|
3524
|
+
*/
|
|
3525
|
+
size = input("100%");
|
|
3526
|
+
// eslint-disable-next-line complexity
|
|
3527
|
+
classes = computed(() => {
|
|
3528
|
+
const classList = [
|
|
3529
|
+
"tedi-separator",
|
|
3530
|
+
`tedi-separator--${this.color()}`,
|
|
3531
|
+
`tedi-separator--${this.axis()}`,
|
|
3532
|
+
];
|
|
3533
|
+
if (this.variant()) {
|
|
3534
|
+
classList.push(`tedi-separator--${this.variant()}`);
|
|
3535
|
+
}
|
|
3536
|
+
if (this.variant() && this.dotSize()) {
|
|
3537
|
+
classList.push(`tedi-separator--${this.variant()}-${this.dotSize()}`);
|
|
3538
|
+
}
|
|
3539
|
+
if (this.variant() === "dot-only" && this.dotFilled()) {
|
|
3540
|
+
classList.push(`tedi-separator--${this.variant()}-filled`);
|
|
3541
|
+
}
|
|
3542
|
+
else {
|
|
3543
|
+
classList.push(`tedi-separator--${this.variant()}-outlined`);
|
|
3544
|
+
}
|
|
3545
|
+
if (this.thickness()) {
|
|
3546
|
+
classList.push(`tedi-separator--thickness-${this.thickness()}`);
|
|
3547
|
+
}
|
|
3548
|
+
const spacing = this.spacing();
|
|
3549
|
+
if (spacing && typeof spacing === "number") {
|
|
3550
|
+
classList.push(`tedi-separator--spacing-${spacing}`.replace(".", "-"));
|
|
3551
|
+
}
|
|
3552
|
+
else if (spacing) {
|
|
3553
|
+
if (this.axis() === "horizontal") {
|
|
3554
|
+
if (spacing.top) {
|
|
3555
|
+
classList.push(`tedi-separator--top-${spacing.top}`.replace(".", "-"));
|
|
3556
|
+
}
|
|
3557
|
+
if (spacing.bottom) {
|
|
3558
|
+
classList.push(`tedi-separator--bottom-${spacing.bottom}`.replace(".", "-"));
|
|
3559
|
+
}
|
|
3560
|
+
}
|
|
3561
|
+
else {
|
|
3562
|
+
if (spacing.left) {
|
|
3563
|
+
classList.push(`tedi-separator--left-${spacing.left}`.replace(".", "-"));
|
|
3564
|
+
}
|
|
3565
|
+
if (spacing.right) {
|
|
3566
|
+
classList.push(`tedi-separator--right-${spacing.right}`.replace(".", "-"));
|
|
3567
|
+
}
|
|
3568
|
+
}
|
|
3569
|
+
}
|
|
3570
|
+
return classList.join(" ");
|
|
3571
|
+
});
|
|
3572
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: SeparatorComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
3573
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "19.2.15", type: SeparatorComponent, isStandalone: true, selector: "tedi-separator", inputs: { axis: { classPropertyName: "axis", publicName: "axis", isSignal: true, isRequired: false, transformFunction: null }, color: { classPropertyName: "color", publicName: "color", isSignal: true, isRequired: false, transformFunction: null }, variant: { classPropertyName: "variant", publicName: "variant", isSignal: true, isRequired: false, transformFunction: null }, dotSize: { classPropertyName: "dotSize", publicName: "dotSize", isSignal: true, isRequired: false, transformFunction: null }, dotFilled: { classPropertyName: "dotFilled", publicName: "dotFilled", isSignal: true, isRequired: false, transformFunction: null }, thickness: { classPropertyName: "thickness", publicName: "thickness", isSignal: true, isRequired: false, transformFunction: null }, spacing: { classPropertyName: "spacing", publicName: "spacing", isSignal: true, isRequired: false, transformFunction: null }, size: { classPropertyName: "size", publicName: "size", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class": "classes()", "style.width": "variant() === 'dot-only' ? null : axis() === 'horizontal' ? size() : '0px'", "style.height": "variant() === 'dot-only' ? null : axis() === 'vertical' ? size() : '0px'" } }, ngImport: i0, template: "", isInline: true, styles: [".tedi-separator{position:relative;display:block;margin:0;border:0;border-style:solid;border-top-width:1px}@media print{.tedi-separator{filter:grayscale(1)}}.tedi-separator--vertical{border-top-width:0;border-left-width:1px}.tedi-separator--primary{border-color:var(--general-border-primary)}.tedi-separator--secondary{border-color:var(--general-border-secondary)}.tedi-separator--accent{border-color:var(--general-border-accent)}.tedi-separator--block{display:block}.tedi-separator--inline{display:inline}.tedi-separator--dotted:before,.tedi-separator--dotted-small:before{position:absolute;top:1.25rem;width:var(--separator-dotted-dot-lg);height:var(--separator-dotted-dot-lg);content:\"\";background-color:var(--general-border-primary);border-radius:100%;transform:translate(-8px)}@media print{.tedi-separator--dotted:before,.tedi-separator--dotted-small:before{filter:grayscale(1)}}.tedi-separator--dotted.tedi-separator--secondary:before,.tedi-separator--dotted-small.tedi-separator--secondary:before{background-color:var(--general-border-secondary)}.tedi-separator--dotted.tedi-separator--accent:before,.tedi-separator--dotted-small.tedi-separator--accent:before{background-color:var(--general-border-accent)}.tedi-separator--dotted-small:before{top:1.5rem;width:var(--separator-dotted-dot-md);height:var(--separator-dotted-dot-md);transform:translate(-5px)}.tedi-separator--horizontal.tedi-separator--top-0{margin-top:0}.tedi-separator--horizontal.tedi-separator--bottom-0{margin-bottom:0}.tedi-separator--vertical.tedi-separator--left-0{margin-left:0}.tedi-separator--vertical.tedi-separator--right-0{margin-right:0}.tedi-separator--horizontal.tedi-separator--spacing-0:not(.tedi-separator--dot-only){margin-top:0;margin-bottom:0}.tedi-separator--horizontal.tedi-separator--dot-only.tedi-separator--spacing-0,.tedi-separator--vertical.tedi-separator--spacing-0{margin-right:0;margin-left:0}.tedi-separator--horizontal.tedi-separator--top-0-25{margin-top:.25rem}.tedi-separator--horizontal.tedi-separator--bottom-0-25{margin-bottom:.25rem}.tedi-separator--vertical.tedi-separator--left-0-25{margin-left:.25rem}.tedi-separator--vertical.tedi-separator--right-0-25{margin-right:.25rem}.tedi-separator--horizontal.tedi-separator--spacing-0-25:not(.tedi-separator--dot-only){margin-top:.25rem;margin-bottom:.25rem}.tedi-separator--horizontal.tedi-separator--dot-only.tedi-separator--spacing-0-25,.tedi-separator--vertical.tedi-separator--spacing-0-25{margin-right:.25rem;margin-left:.25rem}.tedi-separator--horizontal.tedi-separator--top-0-5{margin-top:.5rem}.tedi-separator--horizontal.tedi-separator--bottom-0-5{margin-bottom:.5rem}.tedi-separator--vertical.tedi-separator--left-0-5{margin-left:.5rem}.tedi-separator--vertical.tedi-separator--right-0-5{margin-right:.5rem}.tedi-separator--horizontal.tedi-separator--spacing-0-5:not(.tedi-separator--dot-only){margin-top:.5rem;margin-bottom:.5rem}.tedi-separator--horizontal.tedi-separator--dot-only.tedi-separator--spacing-0-5,.tedi-separator--vertical.tedi-separator--spacing-0-5{margin-right:.5rem;margin-left:.5rem}.tedi-separator--horizontal.tedi-separator--top-0-75{margin-top:.75rem}.tedi-separator--horizontal.tedi-separator--bottom-0-75{margin-bottom:.75rem}.tedi-separator--vertical.tedi-separator--left-0-75{margin-left:.75rem}.tedi-separator--vertical.tedi-separator--right-0-75{margin-right:.75rem}.tedi-separator--horizontal.tedi-separator--spacing-0-75:not(.tedi-separator--dot-only){margin-top:.75rem;margin-bottom:.75rem}.tedi-separator--horizontal.tedi-separator--dot-only.tedi-separator--spacing-0-75,.tedi-separator--vertical.tedi-separator--spacing-0-75{margin-right:.75rem;margin-left:.75rem}.tedi-separator--horizontal.tedi-separator--top-1{margin-top:1rem}.tedi-separator--horizontal.tedi-separator--bottom-1{margin-bottom:1rem}.tedi-separator--vertical.tedi-separator--left-1{margin-left:1rem}.tedi-separator--vertical.tedi-separator--right-1{margin-right:1rem}.tedi-separator--horizontal.tedi-separator--spacing-1:not(.tedi-separator--dot-only){margin-top:1rem;margin-bottom:1rem}.tedi-separator--horizontal.tedi-separator--dot-only.tedi-separator--spacing-1,.tedi-separator--vertical.tedi-separator--spacing-1{margin-right:1rem;margin-left:1rem}.tedi-separator--horizontal.tedi-separator--top-1-25{margin-top:1.25rem}.tedi-separator--horizontal.tedi-separator--bottom-1-25{margin-bottom:1.25rem}.tedi-separator--vertical.tedi-separator--left-1-25{margin-left:1.25rem}.tedi-separator--vertical.tedi-separator--right-1-25{margin-right:1.25rem}.tedi-separator--horizontal.tedi-separator--spacing-1-25:not(.tedi-separator--dot-only){margin-top:1.25rem;margin-bottom:1.25rem}.tedi-separator--horizontal.tedi-separator--dot-only.tedi-separator--spacing-1-25,.tedi-separator--vertical.tedi-separator--spacing-1-25{margin-right:1.25rem;margin-left:1.25rem}.tedi-separator--horizontal.tedi-separator--top-1-5{margin-top:1.5rem}.tedi-separator--horizontal.tedi-separator--bottom-1-5{margin-bottom:1.5rem}.tedi-separator--vertical.tedi-separator--left-1-5{margin-left:1.5rem}.tedi-separator--vertical.tedi-separator--right-1-5{margin-right:1.5rem}.tedi-separator--horizontal.tedi-separator--spacing-1-5:not(.tedi-separator--dot-only){margin-top:1.5rem;margin-bottom:1.5rem}.tedi-separator--horizontal.tedi-separator--dot-only.tedi-separator--spacing-1-5,.tedi-separator--vertical.tedi-separator--spacing-1-5{margin-right:1.5rem;margin-left:1.5rem}.tedi-separator--horizontal.tedi-separator--top-1-75{margin-top:1.75rem}.tedi-separator--horizontal.tedi-separator--bottom-1-75{margin-bottom:1.75rem}.tedi-separator--vertical.tedi-separator--left-1-75{margin-left:1.75rem}.tedi-separator--vertical.tedi-separator--right-1-75{margin-right:1.75rem}.tedi-separator--horizontal.tedi-separator--spacing-1-75:not(.tedi-separator--dot-only){margin-top:1.75rem;margin-bottom:1.75rem}.tedi-separator--horizontal.tedi-separator--dot-only.tedi-separator--spacing-1-75,.tedi-separator--vertical.tedi-separator--spacing-1-75{margin-right:1.75rem;margin-left:1.75rem}.tedi-separator--horizontal.tedi-separator--top-2{margin-top:2rem}.tedi-separator--horizontal.tedi-separator--bottom-2{margin-bottom:2rem}.tedi-separator--vertical.tedi-separator--left-2{margin-left:2rem}.tedi-separator--vertical.tedi-separator--right-2{margin-right:2rem}.tedi-separator--horizontal.tedi-separator--spacing-2:not(.tedi-separator--dot-only){margin-top:2rem;margin-bottom:2rem}.tedi-separator--horizontal.tedi-separator--dot-only.tedi-separator--spacing-2,.tedi-separator--vertical.tedi-separator--spacing-2{margin-right:2rem;margin-left:2rem}.tedi-separator--horizontal.tedi-separator--top-2-5{margin-top:2.5rem}.tedi-separator--horizontal.tedi-separator--bottom-2-5{margin-bottom:2.5rem}.tedi-separator--vertical.tedi-separator--left-2-5{margin-left:2.5rem}.tedi-separator--vertical.tedi-separator--right-2-5{margin-right:2.5rem}.tedi-separator--horizontal.tedi-separator--spacing-2-5:not(.tedi-separator--dot-only){margin-top:2.5rem;margin-bottom:2.5rem}.tedi-separator--horizontal.tedi-separator--dot-only.tedi-separator--spacing-2-5,.tedi-separator--vertical.tedi-separator--spacing-2-5{margin-right:2.5rem;margin-left:2.5rem}.tedi-separator--horizontal.tedi-separator--top-5{margin-top:5rem}.tedi-separator--horizontal.tedi-separator--bottom-5{margin-bottom:5rem}.tedi-separator--vertical.tedi-separator--left-5{margin-left:5rem}.tedi-separator--vertical.tedi-separator--right-5{margin-right:5rem}.tedi-separator--horizontal.tedi-separator--spacing-5:not(.tedi-separator--dot-only){margin-top:5rem;margin-bottom:5rem}.tedi-separator--horizontal.tedi-separator--dot-only.tedi-separator--spacing-5,.tedi-separator--vertical.tedi-separator--spacing-5{margin-right:5rem;margin-left:5rem}.tedi-separator.tedi-separator--thickness-1{border-top-width:1px}.tedi-separator--vertical.tedi-separator--thickness-1{border-left-width:1px}.tedi-separator.tedi-separator--thickness-2{border-top-width:2px}.tedi-separator--vertical.tedi-separator--thickness-2{border-left-width:2px}.tedi-separator--dot-only{position:relative;display:inline-block;vertical-align:middle;border:none}.tedi-separator--dot-only:before{position:relative;display:block;width:var(--separator-dotted-dot-sm);height:var(--separator-dotted-dot-sm);content:\"\";border-radius:100%}@media print{.tedi-separator--dot-only:before{filter:grayscale(1)}}.tedi-separator--dot-only.tedi-separator--dot-only-extra-small:before{width:var(--separator-dotted-dot-xs);height:var(--separator-dotted-dot-xs)}.tedi-separator--dot-only.tedi-separator--dot-only-small:before{width:var(--separator-dotted-dot-sm);height:var(--separator-dotted-dot-sm)}.tedi-separator--dot-only.tedi-separator--dot-only-medium:before{width:var(--separator-dotted-dot-md);height:var(--separator-dotted-dot-md)}.tedi-separator--dot-only.tedi-separator--dot-only-large:before{width:var(--separator-dotted-dot-lg);height:var(--separator-dotted-dot-lg)}.tedi-separator--dot-only-filled.tedi-separator--primary:before{background-color:var(--general-border-primary)}.tedi-separator--dot-only-filled.tedi-separator--secondary:before{background-color:var(--general-border-secondary)}.tedi-separator--dot-only-filled.tedi-separator--accent:before{background-color:var(--general-border-accent)}.tedi-separator--dot-only-outlined:before{border-style:solid}.tedi-separator--dot-only-outlined.tedi-separator--primary:before{border-color:var(--general-border-primary)}.tedi-separator--dot-only-outlined.tedi-separator--secondary:before{border-color:var(--general-border-secondary)}.tedi-separator--dot-only-outlined.tedi-separator--accent:before{border-color:var(--general-border-accent)}.tedi-separator--dot-only-outlined.tedi-separator--thickness-1:before{border-width:1px}.tedi-separator--dot-only-outlined.tedi-separator--thickness-2:before{border-width:2px}.tedi-separator--horizontal.tedi-separator--dotted:before,.tedi-separator--horizontal.tedi-separator--dotted-small:before{right:0;left:0;margin:0 auto;transform:initial}.tedi-separator--horizontal.tedi-separator--dotted:before{top:calc(var(--separator-dotted-dot-lg) / 2 * -1)}.tedi-separator--horizontal.tedi-separator--dotted-small:before{top:calc(var(--separator-dotted-dot-md) / 2 * -1)}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
3574
|
+
}
|
|
3575
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: SeparatorComponent, decorators: [{
|
|
3576
|
+
type: Component,
|
|
3577
|
+
args: [{ selector: "tedi-separator", template: "", encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, host: {
|
|
3578
|
+
"[class]": "classes()",
|
|
3579
|
+
"[style.width]": "variant() === 'dot-only' ? null : axis() === 'horizontal' ? size() : '0px'",
|
|
3580
|
+
"[style.height]": "variant() === 'dot-only' ? null : axis() === 'vertical' ? size() : '0px'",
|
|
3581
|
+
}, styles: [".tedi-separator{position:relative;display:block;margin:0;border:0;border-style:solid;border-top-width:1px}@media print{.tedi-separator{filter:grayscale(1)}}.tedi-separator--vertical{border-top-width:0;border-left-width:1px}.tedi-separator--primary{border-color:var(--general-border-primary)}.tedi-separator--secondary{border-color:var(--general-border-secondary)}.tedi-separator--accent{border-color:var(--general-border-accent)}.tedi-separator--block{display:block}.tedi-separator--inline{display:inline}.tedi-separator--dotted:before,.tedi-separator--dotted-small:before{position:absolute;top:1.25rem;width:var(--separator-dotted-dot-lg);height:var(--separator-dotted-dot-lg);content:\"\";background-color:var(--general-border-primary);border-radius:100%;transform:translate(-8px)}@media print{.tedi-separator--dotted:before,.tedi-separator--dotted-small:before{filter:grayscale(1)}}.tedi-separator--dotted.tedi-separator--secondary:before,.tedi-separator--dotted-small.tedi-separator--secondary:before{background-color:var(--general-border-secondary)}.tedi-separator--dotted.tedi-separator--accent:before,.tedi-separator--dotted-small.tedi-separator--accent:before{background-color:var(--general-border-accent)}.tedi-separator--dotted-small:before{top:1.5rem;width:var(--separator-dotted-dot-md);height:var(--separator-dotted-dot-md);transform:translate(-5px)}.tedi-separator--horizontal.tedi-separator--top-0{margin-top:0}.tedi-separator--horizontal.tedi-separator--bottom-0{margin-bottom:0}.tedi-separator--vertical.tedi-separator--left-0{margin-left:0}.tedi-separator--vertical.tedi-separator--right-0{margin-right:0}.tedi-separator--horizontal.tedi-separator--spacing-0:not(.tedi-separator--dot-only){margin-top:0;margin-bottom:0}.tedi-separator--horizontal.tedi-separator--dot-only.tedi-separator--spacing-0,.tedi-separator--vertical.tedi-separator--spacing-0{margin-right:0;margin-left:0}.tedi-separator--horizontal.tedi-separator--top-0-25{margin-top:.25rem}.tedi-separator--horizontal.tedi-separator--bottom-0-25{margin-bottom:.25rem}.tedi-separator--vertical.tedi-separator--left-0-25{margin-left:.25rem}.tedi-separator--vertical.tedi-separator--right-0-25{margin-right:.25rem}.tedi-separator--horizontal.tedi-separator--spacing-0-25:not(.tedi-separator--dot-only){margin-top:.25rem;margin-bottom:.25rem}.tedi-separator--horizontal.tedi-separator--dot-only.tedi-separator--spacing-0-25,.tedi-separator--vertical.tedi-separator--spacing-0-25{margin-right:.25rem;margin-left:.25rem}.tedi-separator--horizontal.tedi-separator--top-0-5{margin-top:.5rem}.tedi-separator--horizontal.tedi-separator--bottom-0-5{margin-bottom:.5rem}.tedi-separator--vertical.tedi-separator--left-0-5{margin-left:.5rem}.tedi-separator--vertical.tedi-separator--right-0-5{margin-right:.5rem}.tedi-separator--horizontal.tedi-separator--spacing-0-5:not(.tedi-separator--dot-only){margin-top:.5rem;margin-bottom:.5rem}.tedi-separator--horizontal.tedi-separator--dot-only.tedi-separator--spacing-0-5,.tedi-separator--vertical.tedi-separator--spacing-0-5{margin-right:.5rem;margin-left:.5rem}.tedi-separator--horizontal.tedi-separator--top-0-75{margin-top:.75rem}.tedi-separator--horizontal.tedi-separator--bottom-0-75{margin-bottom:.75rem}.tedi-separator--vertical.tedi-separator--left-0-75{margin-left:.75rem}.tedi-separator--vertical.tedi-separator--right-0-75{margin-right:.75rem}.tedi-separator--horizontal.tedi-separator--spacing-0-75:not(.tedi-separator--dot-only){margin-top:.75rem;margin-bottom:.75rem}.tedi-separator--horizontal.tedi-separator--dot-only.tedi-separator--spacing-0-75,.tedi-separator--vertical.tedi-separator--spacing-0-75{margin-right:.75rem;margin-left:.75rem}.tedi-separator--horizontal.tedi-separator--top-1{margin-top:1rem}.tedi-separator--horizontal.tedi-separator--bottom-1{margin-bottom:1rem}.tedi-separator--vertical.tedi-separator--left-1{margin-left:1rem}.tedi-separator--vertical.tedi-separator--right-1{margin-right:1rem}.tedi-separator--horizontal.tedi-separator--spacing-1:not(.tedi-separator--dot-only){margin-top:1rem;margin-bottom:1rem}.tedi-separator--horizontal.tedi-separator--dot-only.tedi-separator--spacing-1,.tedi-separator--vertical.tedi-separator--spacing-1{margin-right:1rem;margin-left:1rem}.tedi-separator--horizontal.tedi-separator--top-1-25{margin-top:1.25rem}.tedi-separator--horizontal.tedi-separator--bottom-1-25{margin-bottom:1.25rem}.tedi-separator--vertical.tedi-separator--left-1-25{margin-left:1.25rem}.tedi-separator--vertical.tedi-separator--right-1-25{margin-right:1.25rem}.tedi-separator--horizontal.tedi-separator--spacing-1-25:not(.tedi-separator--dot-only){margin-top:1.25rem;margin-bottom:1.25rem}.tedi-separator--horizontal.tedi-separator--dot-only.tedi-separator--spacing-1-25,.tedi-separator--vertical.tedi-separator--spacing-1-25{margin-right:1.25rem;margin-left:1.25rem}.tedi-separator--horizontal.tedi-separator--top-1-5{margin-top:1.5rem}.tedi-separator--horizontal.tedi-separator--bottom-1-5{margin-bottom:1.5rem}.tedi-separator--vertical.tedi-separator--left-1-5{margin-left:1.5rem}.tedi-separator--vertical.tedi-separator--right-1-5{margin-right:1.5rem}.tedi-separator--horizontal.tedi-separator--spacing-1-5:not(.tedi-separator--dot-only){margin-top:1.5rem;margin-bottom:1.5rem}.tedi-separator--horizontal.tedi-separator--dot-only.tedi-separator--spacing-1-5,.tedi-separator--vertical.tedi-separator--spacing-1-5{margin-right:1.5rem;margin-left:1.5rem}.tedi-separator--horizontal.tedi-separator--top-1-75{margin-top:1.75rem}.tedi-separator--horizontal.tedi-separator--bottom-1-75{margin-bottom:1.75rem}.tedi-separator--vertical.tedi-separator--left-1-75{margin-left:1.75rem}.tedi-separator--vertical.tedi-separator--right-1-75{margin-right:1.75rem}.tedi-separator--horizontal.tedi-separator--spacing-1-75:not(.tedi-separator--dot-only){margin-top:1.75rem;margin-bottom:1.75rem}.tedi-separator--horizontal.tedi-separator--dot-only.tedi-separator--spacing-1-75,.tedi-separator--vertical.tedi-separator--spacing-1-75{margin-right:1.75rem;margin-left:1.75rem}.tedi-separator--horizontal.tedi-separator--top-2{margin-top:2rem}.tedi-separator--horizontal.tedi-separator--bottom-2{margin-bottom:2rem}.tedi-separator--vertical.tedi-separator--left-2{margin-left:2rem}.tedi-separator--vertical.tedi-separator--right-2{margin-right:2rem}.tedi-separator--horizontal.tedi-separator--spacing-2:not(.tedi-separator--dot-only){margin-top:2rem;margin-bottom:2rem}.tedi-separator--horizontal.tedi-separator--dot-only.tedi-separator--spacing-2,.tedi-separator--vertical.tedi-separator--spacing-2{margin-right:2rem;margin-left:2rem}.tedi-separator--horizontal.tedi-separator--top-2-5{margin-top:2.5rem}.tedi-separator--horizontal.tedi-separator--bottom-2-5{margin-bottom:2.5rem}.tedi-separator--vertical.tedi-separator--left-2-5{margin-left:2.5rem}.tedi-separator--vertical.tedi-separator--right-2-5{margin-right:2.5rem}.tedi-separator--horizontal.tedi-separator--spacing-2-5:not(.tedi-separator--dot-only){margin-top:2.5rem;margin-bottom:2.5rem}.tedi-separator--horizontal.tedi-separator--dot-only.tedi-separator--spacing-2-5,.tedi-separator--vertical.tedi-separator--spacing-2-5{margin-right:2.5rem;margin-left:2.5rem}.tedi-separator--horizontal.tedi-separator--top-5{margin-top:5rem}.tedi-separator--horizontal.tedi-separator--bottom-5{margin-bottom:5rem}.tedi-separator--vertical.tedi-separator--left-5{margin-left:5rem}.tedi-separator--vertical.tedi-separator--right-5{margin-right:5rem}.tedi-separator--horizontal.tedi-separator--spacing-5:not(.tedi-separator--dot-only){margin-top:5rem;margin-bottom:5rem}.tedi-separator--horizontal.tedi-separator--dot-only.tedi-separator--spacing-5,.tedi-separator--vertical.tedi-separator--spacing-5{margin-right:5rem;margin-left:5rem}.tedi-separator.tedi-separator--thickness-1{border-top-width:1px}.tedi-separator--vertical.tedi-separator--thickness-1{border-left-width:1px}.tedi-separator.tedi-separator--thickness-2{border-top-width:2px}.tedi-separator--vertical.tedi-separator--thickness-2{border-left-width:2px}.tedi-separator--dot-only{position:relative;display:inline-block;vertical-align:middle;border:none}.tedi-separator--dot-only:before{position:relative;display:block;width:var(--separator-dotted-dot-sm);height:var(--separator-dotted-dot-sm);content:\"\";border-radius:100%}@media print{.tedi-separator--dot-only:before{filter:grayscale(1)}}.tedi-separator--dot-only.tedi-separator--dot-only-extra-small:before{width:var(--separator-dotted-dot-xs);height:var(--separator-dotted-dot-xs)}.tedi-separator--dot-only.tedi-separator--dot-only-small:before{width:var(--separator-dotted-dot-sm);height:var(--separator-dotted-dot-sm)}.tedi-separator--dot-only.tedi-separator--dot-only-medium:before{width:var(--separator-dotted-dot-md);height:var(--separator-dotted-dot-md)}.tedi-separator--dot-only.tedi-separator--dot-only-large:before{width:var(--separator-dotted-dot-lg);height:var(--separator-dotted-dot-lg)}.tedi-separator--dot-only-filled.tedi-separator--primary:before{background-color:var(--general-border-primary)}.tedi-separator--dot-only-filled.tedi-separator--secondary:before{background-color:var(--general-border-secondary)}.tedi-separator--dot-only-filled.tedi-separator--accent:before{background-color:var(--general-border-accent)}.tedi-separator--dot-only-outlined:before{border-style:solid}.tedi-separator--dot-only-outlined.tedi-separator--primary:before{border-color:var(--general-border-primary)}.tedi-separator--dot-only-outlined.tedi-separator--secondary:before{border-color:var(--general-border-secondary)}.tedi-separator--dot-only-outlined.tedi-separator--accent:before{border-color:var(--general-border-accent)}.tedi-separator--dot-only-outlined.tedi-separator--thickness-1:before{border-width:1px}.tedi-separator--dot-only-outlined.tedi-separator--thickness-2:before{border-width:2px}.tedi-separator--horizontal.tedi-separator--dotted:before,.tedi-separator--horizontal.tedi-separator--dotted-small:before{right:0;left:0;margin:0 auto;transform:initial}.tedi-separator--horizontal.tedi-separator--dotted:before{top:calc(var(--separator-dotted-dot-lg) / 2 * -1)}.tedi-separator--horizontal.tedi-separator--dotted-small:before{top:calc(var(--separator-dotted-dot-md) / 2 * -1)}\n"] }]
|
|
3582
|
+
}] });
|
|
3583
|
+
|
|
3584
|
+
class PopoverTriggerDirective {
|
|
3585
|
+
/**
|
|
3586
|
+
* Should add underline class to trigger element?
|
|
3587
|
+
* @default false
|
|
3588
|
+
*/
|
|
3589
|
+
underline = input(false);
|
|
3590
|
+
host = inject(ElementRef);
|
|
3591
|
+
popover = inject(PopoverComponent);
|
|
3592
|
+
onClick() {
|
|
3593
|
+
this.popover.togglePopover();
|
|
3594
|
+
}
|
|
3595
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: PopoverTriggerDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
3596
|
+
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "19.2.15", type: PopoverTriggerDirective, isStandalone: true, selector: "[tedi-popover-trigger]", inputs: { underline: { classPropertyName: "underline", publicName: "underline", isSignal: true, isRequired: false, transformFunction: null } }, host: { attributes: { "tabindex": "0", "role": "button", "aria-haspopup": "dialog" }, listeners: { "click": "onClick()" }, properties: { "id": "popover.containerId() + '_trigger'", "attr.aria-expanded": "popover.floatUiComponent().state", "attr.aria-controls": "popover.containerId()", "class.tedi-popover-trigger__text": "underline()" } }, ngImport: i0 });
|
|
3597
|
+
}
|
|
3598
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: PopoverTriggerDirective, decorators: [{
|
|
3599
|
+
type: Directive,
|
|
3600
|
+
args: [{
|
|
3601
|
+
standalone: true,
|
|
3602
|
+
selector: "[tedi-popover-trigger]",
|
|
3603
|
+
host: {
|
|
3604
|
+
tabindex: "0",
|
|
3605
|
+
role: "button",
|
|
3606
|
+
"aria-haspopup": "dialog",
|
|
3607
|
+
"[id]": "popover.containerId() + '_trigger'",
|
|
3608
|
+
"[attr.aria-expanded]": "popover.floatUiComponent().state",
|
|
3609
|
+
"[attr.aria-controls]": "popover.containerId()",
|
|
3610
|
+
"[class.tedi-popover-trigger__text]": "underline()",
|
|
3611
|
+
},
|
|
3612
|
+
}]
|
|
3613
|
+
}], propDecorators: { onClick: [{
|
|
3614
|
+
type: HostListener,
|
|
3615
|
+
args: ["click"]
|
|
3616
|
+
}] } });
|
|
3617
|
+
|
|
3618
|
+
function getFocusableElements(container) {
|
|
3619
|
+
const selectors = [
|
|
3620
|
+
"a[href]",
|
|
3621
|
+
"area[href]",
|
|
3622
|
+
"input:not([disabled]):not([type='hidden'])",
|
|
3623
|
+
"select:not([disabled])",
|
|
3624
|
+
"textarea:not([disabled])",
|
|
3625
|
+
"button:not([disabled])",
|
|
3626
|
+
"summary",
|
|
3627
|
+
"iframe",
|
|
3628
|
+
"audio[controls]",
|
|
3629
|
+
"video[controls]",
|
|
3630
|
+
"[contenteditable]:not([contenteditable='false'])",
|
|
3631
|
+
"[tabindex]:not([tabindex='-1'])",
|
|
3632
|
+
];
|
|
3633
|
+
const elements = Array.from(container.querySelectorAll(selectors.join(",")));
|
|
3634
|
+
if (typeof window === "undefined") {
|
|
3635
|
+
return elements.filter((el) => el instanceof HTMLElement);
|
|
3636
|
+
}
|
|
3637
|
+
return elements.filter((el) => {
|
|
3638
|
+
if (!(el instanceof HTMLElement))
|
|
3639
|
+
return false;
|
|
3640
|
+
const style = window.getComputedStyle(el);
|
|
3641
|
+
if (style.display === "none" || style.visibility === "hidden")
|
|
3642
|
+
return false;
|
|
3643
|
+
if (el.hasAttribute("hidden"))
|
|
3644
|
+
return false;
|
|
3645
|
+
if (el.closest("[inert]"))
|
|
3646
|
+
return false;
|
|
3647
|
+
const fieldset = el.closest("fieldset[disabled]");
|
|
3648
|
+
if (fieldset) {
|
|
3649
|
+
const firstLegend = fieldset.querySelector("legend");
|
|
3650
|
+
if (!firstLegend || !firstLegend.contains(el))
|
|
3651
|
+
return false;
|
|
3652
|
+
}
|
|
3653
|
+
if (el.tagName !== "SUMMARY") {
|
|
3654
|
+
const closedDetails = el.closest("details:not([open])");
|
|
3655
|
+
if (closedDetails)
|
|
3656
|
+
return false;
|
|
3657
|
+
}
|
|
3658
|
+
return true;
|
|
3659
|
+
});
|
|
3660
|
+
}
|
|
3661
|
+
|
|
3662
|
+
let popoverTitleId = 0;
|
|
3663
|
+
class PopoverContentComponent {
|
|
3664
|
+
/**
|
|
3665
|
+
* The width of the popover. Can be 'none', 'small', 'medium', or 'large'.
|
|
3666
|
+
* @default small
|
|
3667
|
+
*/
|
|
3668
|
+
maxWidth = input("small");
|
|
3669
|
+
/**
|
|
3670
|
+
* Heading title of the content
|
|
3671
|
+
*/
|
|
3672
|
+
title = input("");
|
|
3673
|
+
/**
|
|
3674
|
+
* Should content show close button?
|
|
3675
|
+
* @default false
|
|
3676
|
+
*/
|
|
3677
|
+
showClose = input(false);
|
|
3678
|
+
popover = inject(PopoverComponent);
|
|
3679
|
+
titleId = `popover-title-${popoverTitleId++}`;
|
|
3680
|
+
classes = computed(() => {
|
|
3681
|
+
const classList = [
|
|
3682
|
+
"tedi-popover-content",
|
|
3683
|
+
`tedi-popover-content--${this.maxWidth()}`,
|
|
3684
|
+
];
|
|
3685
|
+
return classList.join(" ");
|
|
3686
|
+
});
|
|
3687
|
+
handleClose() {
|
|
3688
|
+
this.popover.hidePopover(true);
|
|
3689
|
+
}
|
|
3690
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: PopoverContentComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
3691
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.15", type: PopoverContentComponent, isStandalone: true, selector: "tedi-popover-content", inputs: { maxWidth: { classPropertyName: "maxWidth", publicName: "maxWidth", isSignal: true, isRequired: false, transformFunction: null }, title: { classPropertyName: "title", publicName: "title", isSignal: true, isRequired: false, transformFunction: null }, showClose: { classPropertyName: "showClose", publicName: "showClose", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class": "classes()" } }, ngImport: i0, template: "@if (title() && showClose()) {\n <div class=\"tedi-popover-content__head\">\n <h4 class=\"tedi-popover-content__title\" [id]=\"titleId\">{{ title() }}</h4>\n <button tedi-closing-button (click)=\"handleClose()\"></button>\n </div>\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n} @else if (showClose()) {\n <div class=\"tedi-popover-content__head\">\n <div>\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n </div>\n <button tedi-closing-button size=\"small\" (click)=\"handleClose()\"></button>\n </div>\n} @else if (title()) {\n <h4 [id]=\"titleId\">{{ title() }}</h4>\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n} @else {\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n}\n\n<ng-template #content>\n <ng-content></ng-content>\n</ng-template>\n", styles: ["tedi-popover{display:block}[tedi-popover-trigger]{cursor:pointer}[tedi-popover-trigger]:focus-visible{outline:var(--borders-02) solid var(--primary-500);outline-offset:var(--borders-01)}float-ui-content .float-ui-container-popover{z-index:var(--z-index-dropdown);padding:0;border:var(--borders-01) solid var(--popover-border);border-radius:var(--popover-radius-rounded);box-shadow:0 1px 5px 0 var(--tedi-alpha-20, rgba(0, 0, 0, .2))}float-ui-content .float-ui-container-popover--arrow .float-ui-arrow{z-index:var(--z-index-dropdown);width:24px;height:24px;background:var(--popover-background);filter:drop-shadow(0 0 5px var(--tedi-alpha-20));clip-path:inset(0 -5px -5px 0)}float-ui-content .float-ui-container-popover--border{border-radius:var(--popover-radius-rounded)}float-ui-content .float-ui-container-popover--border .float-ui-arrow{width:18px;height:18px;border-right:4px solid var(--header-popover-border-top);border-bottom:4px solid var(--header-popover-border-top)}float-ui-content .float-ui-container-popover--border[data-float-ui-placement=top]{border-bottom:4px solid var(--header-popover-border-top)}float-ui-content .float-ui-container-popover--border[data-float-ui-placement=top] .float-ui-arrow{bottom:-12px!important}float-ui-content .float-ui-container-popover--border[data-float-ui-placement=bottom]{border-top:4px solid var(--header-popover-border-top)}float-ui-content .float-ui-container-popover--border[data-float-ui-placement=bottom] .float-ui-arrow{top:-12px!important}float-ui-content .float-ui-container-popover--border[data-float-ui-placement=left]{border-right:4px solid var(--header-popover-border-top)}float-ui-content .float-ui-container-popover--border[data-float-ui-placement=left] .float-ui-arrow{right:-12px!important}float-ui-content .float-ui-container-popover--border[data-float-ui-placement=right]{border-left:4px solid var(--header-popover-border-top)}float-ui-content .float-ui-container-popover--border[data-float-ui-placement=right] .float-ui-arrow{left:-12px!important}float-ui-content .float-ui-container-popover[data-float-ui-placement=top]{transform:translateY(-4px)}float-ui-content .float-ui-container-popover[data-float-ui-placement=bottom]{transform:translateY(4px)}float-ui-content .float-ui-container-popover[data-float-ui-placement=bottom] .float-ui-arrow{transform:rotate(-135deg)}float-ui-content .float-ui-container-popover[data-float-ui-placement=left]{transform:translate(-4px)}float-ui-content .float-ui-container-popover[data-float-ui-placement=left] .float-ui-arrow{transform:rotate(-45deg)}float-ui-content .float-ui-container-popover[data-float-ui-placement=right]{transform:translate(4px)}float-ui-content .float-ui-container-popover[data-float-ui-placement=right] .float-ui-arrow{transform:rotate(135deg)}.tedi-popover-trigger__text{text-decoration:underline dashed var(--general-border-secondary);text-underline-offset:.5em}.tedi-popover-content{position:relative;display:flex;flex-direction:column;gap:var(--layout-grid-gutters-08);max-width:calc(100dvw - 1rem);padding:var(--popover-padding-sm);color:var(--popover-text);background:var(--popover-background);border-radius:var(--popover-radius-rounded)}.tedi-popover-content--none{width:none}.tedi-popover-content--small{width:240px}.tedi-popover-content--medium{width:480px}.tedi-popover-content--large{width:840px}.tedi-popover-content__head{display:flex;gap:var(--layout-grid-gutters-08);justify-content:space-between}.tedi-popover-content__head>div{display:flex;flex:1 1 0;flex-direction:column;gap:var(--layout-grid-gutters-08);min-width:0}.tedi-popover-content__title{align-self:center}\n"], dependencies: [{ kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: ClosingButtonComponent, selector: "button[tedi-closing-button]", inputs: ["size", "iconSize", "ariaLabel"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
3692
|
+
}
|
|
3693
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: PopoverContentComponent, decorators: [{
|
|
3694
|
+
type: Component,
|
|
3695
|
+
args: [{ standalone: true, selector: "tedi-popover-content", encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, imports: [NgTemplateOutlet, ClosingButtonComponent], host: {
|
|
3696
|
+
"[class]": "classes()",
|
|
3697
|
+
}, template: "@if (title() && showClose()) {\n <div class=\"tedi-popover-content__head\">\n <h4 class=\"tedi-popover-content__title\" [id]=\"titleId\">{{ title() }}</h4>\n <button tedi-closing-button (click)=\"handleClose()\"></button>\n </div>\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n} @else if (showClose()) {\n <div class=\"tedi-popover-content__head\">\n <div>\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n </div>\n <button tedi-closing-button size=\"small\" (click)=\"handleClose()\"></button>\n </div>\n} @else if (title()) {\n <h4 [id]=\"titleId\">{{ title() }}</h4>\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n} @else {\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n}\n\n<ng-template #content>\n <ng-content></ng-content>\n</ng-template>\n", styles: ["tedi-popover{display:block}[tedi-popover-trigger]{cursor:pointer}[tedi-popover-trigger]:focus-visible{outline:var(--borders-02) solid var(--primary-500);outline-offset:var(--borders-01)}float-ui-content .float-ui-container-popover{z-index:var(--z-index-dropdown);padding:0;border:var(--borders-01) solid var(--popover-border);border-radius:var(--popover-radius-rounded);box-shadow:0 1px 5px 0 var(--tedi-alpha-20, rgba(0, 0, 0, .2))}float-ui-content .float-ui-container-popover--arrow .float-ui-arrow{z-index:var(--z-index-dropdown);width:24px;height:24px;background:var(--popover-background);filter:drop-shadow(0 0 5px var(--tedi-alpha-20));clip-path:inset(0 -5px -5px 0)}float-ui-content .float-ui-container-popover--border{border-radius:var(--popover-radius-rounded)}float-ui-content .float-ui-container-popover--border .float-ui-arrow{width:18px;height:18px;border-right:4px solid var(--header-popover-border-top);border-bottom:4px solid var(--header-popover-border-top)}float-ui-content .float-ui-container-popover--border[data-float-ui-placement=top]{border-bottom:4px solid var(--header-popover-border-top)}float-ui-content .float-ui-container-popover--border[data-float-ui-placement=top] .float-ui-arrow{bottom:-12px!important}float-ui-content .float-ui-container-popover--border[data-float-ui-placement=bottom]{border-top:4px solid var(--header-popover-border-top)}float-ui-content .float-ui-container-popover--border[data-float-ui-placement=bottom] .float-ui-arrow{top:-12px!important}float-ui-content .float-ui-container-popover--border[data-float-ui-placement=left]{border-right:4px solid var(--header-popover-border-top)}float-ui-content .float-ui-container-popover--border[data-float-ui-placement=left] .float-ui-arrow{right:-12px!important}float-ui-content .float-ui-container-popover--border[data-float-ui-placement=right]{border-left:4px solid var(--header-popover-border-top)}float-ui-content .float-ui-container-popover--border[data-float-ui-placement=right] .float-ui-arrow{left:-12px!important}float-ui-content .float-ui-container-popover[data-float-ui-placement=top]{transform:translateY(-4px)}float-ui-content .float-ui-container-popover[data-float-ui-placement=bottom]{transform:translateY(4px)}float-ui-content .float-ui-container-popover[data-float-ui-placement=bottom] .float-ui-arrow{transform:rotate(-135deg)}float-ui-content .float-ui-container-popover[data-float-ui-placement=left]{transform:translate(-4px)}float-ui-content .float-ui-container-popover[data-float-ui-placement=left] .float-ui-arrow{transform:rotate(-45deg)}float-ui-content .float-ui-container-popover[data-float-ui-placement=right]{transform:translate(4px)}float-ui-content .float-ui-container-popover[data-float-ui-placement=right] .float-ui-arrow{transform:rotate(135deg)}.tedi-popover-trigger__text{text-decoration:underline dashed var(--general-border-secondary);text-underline-offset:.5em}.tedi-popover-content{position:relative;display:flex;flex-direction:column;gap:var(--layout-grid-gutters-08);max-width:calc(100dvw - 1rem);padding:var(--popover-padding-sm);color:var(--popover-text);background:var(--popover-background);border-radius:var(--popover-radius-rounded)}.tedi-popover-content--none{width:none}.tedi-popover-content--small{width:240px}.tedi-popover-content--medium{width:480px}.tedi-popover-content--large{width:840px}.tedi-popover-content__head{display:flex;gap:var(--layout-grid-gutters-08);justify-content:space-between}.tedi-popover-content__head>div{display:flex;flex:1 1 0;flex-direction:column;gap:var(--layout-grid-gutters-08);min-width:0}.tedi-popover-content__title{align-self:center}\n"] }]
|
|
3698
|
+
}] });
|
|
3699
|
+
|
|
3700
|
+
class PopoverComponent {
|
|
3701
|
+
/**
|
|
3702
|
+
* The position of the popover relative to the trigger element.
|
|
3703
|
+
* @default top
|
|
3704
|
+
*/
|
|
3705
|
+
position = input("top");
|
|
3706
|
+
/**
|
|
3707
|
+
* Should position flip to opposite direction when overflowing screen?
|
|
3708
|
+
* @default false
|
|
3709
|
+
*/
|
|
3710
|
+
preventOverflow = input(false);
|
|
3711
|
+
/**
|
|
3712
|
+
* Is dismissible by clicking outside of content?
|
|
3713
|
+
* @default true
|
|
3714
|
+
*/
|
|
3715
|
+
dismissible = input(true);
|
|
3716
|
+
/**
|
|
3717
|
+
* Does popover content hide on scroll?
|
|
3718
|
+
* @default false
|
|
3719
|
+
*/
|
|
3720
|
+
hideOnScroll = input(false);
|
|
2411
3721
|
/**
|
|
2412
3722
|
* Does popover have illustrative border on the arrow side?
|
|
2413
3723
|
* @default false
|
|
@@ -2601,7 +3911,7 @@ class PopoverComponent {
|
|
|
2601
3911
|
this.hidePopover(true);
|
|
2602
3912
|
}
|
|
2603
3913
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: PopoverComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
2604
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "19.2.15", type: PopoverComponent, isStandalone: true, selector: "tedi-popover", inputs: { position: { classPropertyName: "position", publicName: "position", isSignal: true, isRequired: false, transformFunction: null }, preventOverflow: { classPropertyName: "preventOverflow", publicName: "preventOverflow", isSignal: true, isRequired: false, transformFunction: null }, dismissible: { classPropertyName: "dismissible", publicName: "dismissible", isSignal: true, isRequired: false, transformFunction: null }, hideOnScroll: { classPropertyName: "hideOnScroll", publicName: "hideOnScroll", isSignal: true, isRequired: false, transformFunction: null }, withBorder: { classPropertyName: "withBorder", publicName: "withBorder", isSignal: true, isRequired: false, transformFunction: null }, withArrow: { classPropertyName: "withArrow", publicName: "withArrow", isSignal: true, isRequired: false, transformFunction: null }, lockScroll: { classPropertyName: "lockScroll", publicName: "lockScroll", isSignal: true, isRequired: false, transformFunction: null }, appendTo: { classPropertyName: "appendTo", publicName: "appendTo", isSignal: true, isRequired: false, transformFunction: null }, timeoutDelay: { classPropertyName: "timeoutDelay", publicName: "timeoutDelay", isSignal: true, isRequired: false, transformFunction: null } }, queries: [{ propertyName: "popoverTrigger", first: true, predicate: PopoverTriggerDirective, descendants: true, isSignal: true }, { propertyName: "popoverContent", first: true, predicate: PopoverContentComponent, descendants: true, isSignal: true }], viewQueries: [{ propertyName: "floatUiComponent", first: true, predicate: NgxFloatUiContentComponent, descendants: true, isSignal: true }], ngImport: i0, template: "<ng-content select=\"[tedi-popover-trigger]\" />\n<float-ui-content\n #floatUiComponent\n looseTrigger=\"none\"\n ariaRole=\"dialog\"\n [appendTo]=\"appendTo()\"\n [floatUiLoose]=\"floatUiComponent\"\n [targetElement]=\"popoverTrigger().host.nativeElement\"\n [loosePlacement]=\"position()\"\n [preventOverflow]=\"position().includes('auto') ? false : preventOverflow()\"\n [applyClass]=\"floatUiContainerClass()\"\n [disableAnimation]=\"true\"\n>\n <ng-content select=\"tedi-popover-content\" />\n</float-ui-content>\n", styles: ["tedi-popover{display:block}[tedi-popover-trigger]{cursor:pointer}[tedi-popover-trigger]:focus-visible{outline:var(--borders-02) solid var(--primary-500);outline-offset:var(--borders-01)}float-ui-content .float-ui-container-popover{z-index:var(--z-index-dropdown);padding:0;border:var(--borders-01) solid var(--popover-border);border-radius:var(--popover-radius-rounded);box-shadow:0 1px 5px 0 var(--tedi-alpha-20, rgba(0, 0, 0, .2))}float-ui-content .float-ui-container-popover--arrow .float-ui-arrow{z-index:var(--z-index-dropdown);width:24px;height:24px;background:var(--popover-background);filter:drop-shadow(0 0 5px var(--tedi-alpha-20));clip-path:inset(0 -5px -5px 0)}float-ui-content .float-ui-container-popover--border{border-radius:var(--popover-radius-rounded)}float-ui-content .float-ui-container-popover--border .float-ui-arrow{width:18px;height:18px;border-right:4px solid var(--header-popover-border-top);border-bottom:4px solid var(--header-popover-border-top)}float-ui-content .float-ui-container-popover--border[data-float-ui-placement=top]{border-bottom:4px solid var(--header-popover-border-top)}float-ui-content .float-ui-container-popover--border[data-float-ui-placement=top] .float-ui-arrow{bottom:-12px!important}float-ui-content .float-ui-container-popover--border[data-float-ui-placement=bottom]{border-top:4px solid var(--header-popover-border-top)}float-ui-content .float-ui-container-popover--border[data-float-ui-placement=bottom] .float-ui-arrow{top:-12px!important}float-ui-content .float-ui-container-popover--border[data-float-ui-placement=left]{border-right:4px solid var(--header-popover-border-top)}float-ui-content .float-ui-container-popover--border[data-float-ui-placement=left] .float-ui-arrow{right:-12px!important}float-ui-content .float-ui-container-popover--border[data-float-ui-placement=right]{border-left:4px solid var(--header-popover-border-top)}float-ui-content .float-ui-container-popover--border[data-float-ui-placement=right] .float-ui-arrow{left:-12px!important}float-ui-content .float-ui-container-popover[data-float-ui-placement=top]{transform:translateY(-4px)}float-ui-content .float-ui-container-popover[data-float-ui-placement=bottom]{transform:translateY(4px)}float-ui-content .float-ui-container-popover[data-float-ui-placement=bottom] .float-ui-arrow{transform:rotate(-135deg)}float-ui-content .float-ui-container-popover[data-float-ui-placement=left]{transform:translate(-4px)}float-ui-content .float-ui-container-popover[data-float-ui-placement=left] .float-ui-arrow{transform:rotate(-45deg)}float-ui-content .float-ui-container-popover[data-float-ui-placement=right]{transform:translate(4px)}float-ui-content .float-ui-container-popover[data-float-ui-placement=right] .float-ui-arrow{transform:rotate(135deg)}.tedi-popover-trigger__text{text-decoration:underline dashed var(--general-border-secondary);text-underline-offset:.5em}.tedi-popover-content{position:relative;display:flex;flex-direction:column;gap:var(--layout-grid-gutters-08);max-width:calc(100dvw - 1rem);padding:var(--popover-padding-sm);color:var(--popover-text);background:var(--popover-background);border-radius:var(--popover-radius-rounded)}.tedi-popover-content--none{width:none}.tedi-popover-content--small{width:240px}.tedi-popover-content--medium{width:480px}.tedi-popover-content--large{width:840px}.tedi-popover-content__head{display:flex;gap:var(--layout-grid-gutters-08);justify-content:space-between}.tedi-popover-content__head>div{display:flex;flex:1 1 0;flex-direction:column;gap:var(--layout-grid-gutters-08);min-width:0}.tedi-popover-content__title{align-self:center}\n"], dependencies: [{ kind: "ngmodule", type: NgxFloatUiModule }, { kind: "component", type: i1$
|
|
3914
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "19.2.15", type: PopoverComponent, isStandalone: true, selector: "tedi-popover", inputs: { position: { classPropertyName: "position", publicName: "position", isSignal: true, isRequired: false, transformFunction: null }, preventOverflow: { classPropertyName: "preventOverflow", publicName: "preventOverflow", isSignal: true, isRequired: false, transformFunction: null }, dismissible: { classPropertyName: "dismissible", publicName: "dismissible", isSignal: true, isRequired: false, transformFunction: null }, hideOnScroll: { classPropertyName: "hideOnScroll", publicName: "hideOnScroll", isSignal: true, isRequired: false, transformFunction: null }, withBorder: { classPropertyName: "withBorder", publicName: "withBorder", isSignal: true, isRequired: false, transformFunction: null }, withArrow: { classPropertyName: "withArrow", publicName: "withArrow", isSignal: true, isRequired: false, transformFunction: null }, lockScroll: { classPropertyName: "lockScroll", publicName: "lockScroll", isSignal: true, isRequired: false, transformFunction: null }, appendTo: { classPropertyName: "appendTo", publicName: "appendTo", isSignal: true, isRequired: false, transformFunction: null }, timeoutDelay: { classPropertyName: "timeoutDelay", publicName: "timeoutDelay", isSignal: true, isRequired: false, transformFunction: null } }, queries: [{ propertyName: "popoverTrigger", first: true, predicate: PopoverTriggerDirective, descendants: true, isSignal: true }, { propertyName: "popoverContent", first: true, predicate: PopoverContentComponent, descendants: true, isSignal: true }], viewQueries: [{ propertyName: "floatUiComponent", first: true, predicate: NgxFloatUiContentComponent, descendants: true, isSignal: true }], ngImport: i0, template: "<ng-content select=\"[tedi-popover-trigger]\" />\n<float-ui-content\n #floatUiComponent\n looseTrigger=\"none\"\n ariaRole=\"dialog\"\n [appendTo]=\"appendTo()\"\n [floatUiLoose]=\"floatUiComponent\"\n [targetElement]=\"popoverTrigger().host.nativeElement\"\n [loosePlacement]=\"position()\"\n [preventOverflow]=\"position().includes('auto') ? false : preventOverflow()\"\n [applyClass]=\"floatUiContainerClass()\"\n [disableAnimation]=\"true\"\n>\n <ng-content select=\"tedi-popover-content\" />\n</float-ui-content>\n", styles: ["tedi-popover{display:block}[tedi-popover-trigger]{cursor:pointer}[tedi-popover-trigger]:focus-visible{outline:var(--borders-02) solid var(--primary-500);outline-offset:var(--borders-01)}float-ui-content .float-ui-container-popover{z-index:var(--z-index-dropdown);padding:0;border:var(--borders-01) solid var(--popover-border);border-radius:var(--popover-radius-rounded);box-shadow:0 1px 5px 0 var(--tedi-alpha-20, rgba(0, 0, 0, .2))}float-ui-content .float-ui-container-popover--arrow .float-ui-arrow{z-index:var(--z-index-dropdown);width:24px;height:24px;background:var(--popover-background);filter:drop-shadow(0 0 5px var(--tedi-alpha-20));clip-path:inset(0 -5px -5px 0)}float-ui-content .float-ui-container-popover--border{border-radius:var(--popover-radius-rounded)}float-ui-content .float-ui-container-popover--border .float-ui-arrow{width:18px;height:18px;border-right:4px solid var(--header-popover-border-top);border-bottom:4px solid var(--header-popover-border-top)}float-ui-content .float-ui-container-popover--border[data-float-ui-placement=top]{border-bottom:4px solid var(--header-popover-border-top)}float-ui-content .float-ui-container-popover--border[data-float-ui-placement=top] .float-ui-arrow{bottom:-12px!important}float-ui-content .float-ui-container-popover--border[data-float-ui-placement=bottom]{border-top:4px solid var(--header-popover-border-top)}float-ui-content .float-ui-container-popover--border[data-float-ui-placement=bottom] .float-ui-arrow{top:-12px!important}float-ui-content .float-ui-container-popover--border[data-float-ui-placement=left]{border-right:4px solid var(--header-popover-border-top)}float-ui-content .float-ui-container-popover--border[data-float-ui-placement=left] .float-ui-arrow{right:-12px!important}float-ui-content .float-ui-container-popover--border[data-float-ui-placement=right]{border-left:4px solid var(--header-popover-border-top)}float-ui-content .float-ui-container-popover--border[data-float-ui-placement=right] .float-ui-arrow{left:-12px!important}float-ui-content .float-ui-container-popover[data-float-ui-placement=top]{transform:translateY(-4px)}float-ui-content .float-ui-container-popover[data-float-ui-placement=bottom]{transform:translateY(4px)}float-ui-content .float-ui-container-popover[data-float-ui-placement=bottom] .float-ui-arrow{transform:rotate(-135deg)}float-ui-content .float-ui-container-popover[data-float-ui-placement=left]{transform:translate(-4px)}float-ui-content .float-ui-container-popover[data-float-ui-placement=left] .float-ui-arrow{transform:rotate(-45deg)}float-ui-content .float-ui-container-popover[data-float-ui-placement=right]{transform:translate(4px)}float-ui-content .float-ui-container-popover[data-float-ui-placement=right] .float-ui-arrow{transform:rotate(135deg)}.tedi-popover-trigger__text{text-decoration:underline dashed var(--general-border-secondary);text-underline-offset:.5em}.tedi-popover-content{position:relative;display:flex;flex-direction:column;gap:var(--layout-grid-gutters-08);max-width:calc(100dvw - 1rem);padding:var(--popover-padding-sm);color:var(--popover-text);background:var(--popover-background);border-radius:var(--popover-radius-rounded)}.tedi-popover-content--none{width:none}.tedi-popover-content--small{width:240px}.tedi-popover-content--medium{width:480px}.tedi-popover-content--large{width:840px}.tedi-popover-content__head{display:flex;gap:var(--layout-grid-gutters-08);justify-content:space-between}.tedi-popover-content__head>div{display:flex;flex:1 1 0;flex-direction:column;gap:var(--layout-grid-gutters-08);min-width:0}.tedi-popover-content__title{align-self:center}\n"], dependencies: [{ kind: "ngmodule", type: NgxFloatUiModule }, { kind: "component", type: i1$2.NgxFloatUiContentComponent, selector: "float-ui-content", exportAs: ["ngxFloatUiContent"] }, { kind: "directive", type: i1$2.NgxFloatUiLooseDirective, selector: "[floatUiLoose]", inputs: ["floatUiLoose", "loosePlacement", "looseTrigger"], exportAs: ["floatUiLoose"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
2605
3915
|
}
|
|
2606
3916
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: PopoverComponent, decorators: [{
|
|
2607
3917
|
type: Component,
|
|
@@ -2674,14 +3984,19 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImpo
|
|
|
2674
3984
|
args: ["keydown", ["$event"]]
|
|
2675
3985
|
}] } });
|
|
2676
3986
|
|
|
3987
|
+
const DROPDOWN_API = new InjectionToken("DropdownApi");
|
|
3988
|
+
const DROPDOWN_CONTENT_API = new InjectionToken("DropdownContentApi");
|
|
3989
|
+
|
|
2677
3990
|
class DropdownItemComponent {
|
|
2678
3991
|
/** Item value */
|
|
2679
3992
|
value = input();
|
|
2680
3993
|
/** Is item disabled? */
|
|
2681
3994
|
disabled = input(false);
|
|
2682
3995
|
host = inject(ElementRef);
|
|
2683
|
-
dropdown = inject(
|
|
2684
|
-
dropdownContent = inject(
|
|
3996
|
+
dropdown = inject(DROPDOWN_API);
|
|
3997
|
+
dropdownContent = inject(DROPDOWN_CONTENT_API);
|
|
3998
|
+
/** Check if custom dropdown-item-value is provided */
|
|
3999
|
+
customItemValue = contentChild(DropdownItemValueComponent);
|
|
2685
4000
|
isSelected() {
|
|
2686
4001
|
return this.dropdown.value() === this.value();
|
|
2687
4002
|
}
|
|
@@ -2736,16 +4051,16 @@ class DropdownItemComponent {
|
|
|
2736
4051
|
this.dropdown.dropdownTrigger()?.host.nativeElement.focus();
|
|
2737
4052
|
}
|
|
2738
4053
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: DropdownItemComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
2739
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.
|
|
4054
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.15", type: DropdownItemComponent, isStandalone: true, selector: "li[tedi-dropdown-item]", inputs: { value: { classPropertyName: "value", publicName: "value", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null } }, host: { listeners: { "click": "onClick()", "keydown": "onKeydown($event)" }, properties: { "attr.role": "dropdownContent.dropdownRole() === 'menu' ? 'menuitem' : 'option'", "attr.aria-selected": "dropdownContent.dropdownRole() === 'listbox' ? isSelected() : null", "attr.aria-disabled": "disabled() ? 'true' : null", "tabindex": "dropdownContent.dropdownRole() === 'menu' ? '-1' : (disabled() ? null : '-1')" } }, queries: [{ propertyName: "customItemValue", first: true, predicate: DropdownItemValueComponent, descendants: true, isSignal: true }], ngImport: i0, template: "<ng-content select=\"tedi-dropdown-item-value\" />\n\n@if (!customItemValue()) {\n <tedi-dropdown-item-value>\n <tedi-dropdown-item-value-label>\n <ng-content />\n </tedi-dropdown-item-value-label>\n </tedi-dropdown-item-value>\n}\n", styles: ["li[tedi-dropdown-item],.tedi-dropdown-item{display:flex;gap:var(--dropdown-item-inner-spacing);align-items:center;width:100%;min-height:40px;padding:var(--dropdown-item-padding-y) var(--dropdown-item-padding-x);color:var(--dropdown-item-default-text);cursor:pointer;background:var(--dropdown-item-default-background)}li[tedi-dropdown-item]:hover:not(.tedi-dropdown-item--disabled,[aria-disabled=true]),.tedi-dropdown-item:hover:not(.tedi-dropdown-item--disabled,[aria-disabled=true]){color:var(--dropdown-item-hover-text);background:var(--dropdown-item-hover-background)}li[tedi-dropdown-item]:focus-visible,.tedi-dropdown-item:focus-visible{outline:var(--borders-02) solid var(--tedi-primary-500);outline-offset:calc(-1 * var(--borders-02))}li[tedi-dropdown-item][aria-selected=true],li[tedi-dropdown-item].tedi-dropdown-item--selected,.tedi-dropdown-item[aria-selected=true],.tedi-dropdown-item.tedi-dropdown-item--selected{color:var(--dropdown-item-active-text);background:var(--dropdown-item-active-background)}li[tedi-dropdown-item][aria-disabled=true],li[tedi-dropdown-item].tedi-dropdown-item--disabled,.tedi-dropdown-item[aria-disabled=true],.tedi-dropdown-item.tedi-dropdown-item--disabled{color:var(--general-text-disabled);cursor:not-allowed;background:var(--dropdown-item-disabled-background)}\n"], dependencies: [{ kind: "component", type: DropdownItemValueComponent, selector: "tedi-dropdown-item-value", inputs: ["type", "layout", "selected", "indeterminate", "disabled"] }, { kind: "component", type: DropdownItemValueLabelComponent, selector: "tedi-dropdown-item-value-label" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
2740
4055
|
}
|
|
2741
4056
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: DropdownItemComponent, decorators: [{
|
|
2742
4057
|
type: Component,
|
|
2743
|
-
args: [{ selector: "li[tedi-dropdown-item]", standalone: true,
|
|
4058
|
+
args: [{ selector: "li[tedi-dropdown-item]", standalone: true, imports: [DropdownItemValueComponent, DropdownItemValueLabelComponent], encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, host: {
|
|
2744
4059
|
"[attr.role]": "dropdownContent.dropdownRole() === 'menu' ? 'menuitem' : 'option'",
|
|
2745
4060
|
"[attr.aria-selected]": "dropdownContent.dropdownRole() === 'listbox' ? isSelected() : null",
|
|
2746
4061
|
"[attr.aria-disabled]": "disabled() ? 'true' : null",
|
|
2747
4062
|
"[tabindex]": "dropdownContent.dropdownRole() === 'menu' ? '-1' : (disabled() ? null : '-1')",
|
|
2748
|
-
}, styles: ["li[tedi-dropdown-item]{display:flex;gap:var(--dropdown-item-inner-spacing);align-items:center;width:100%;min-height:40px;padding:var(--dropdown-item-padding-y
|
|
4063
|
+
}, template: "<ng-content select=\"tedi-dropdown-item-value\" />\n\n@if (!customItemValue()) {\n <tedi-dropdown-item-value>\n <tedi-dropdown-item-value-label>\n <ng-content />\n </tedi-dropdown-item-value-label>\n </tedi-dropdown-item-value>\n}\n", styles: ["li[tedi-dropdown-item],.tedi-dropdown-item{display:flex;gap:var(--dropdown-item-inner-spacing);align-items:center;width:100%;min-height:40px;padding:var(--dropdown-item-padding-y) var(--dropdown-item-padding-x);color:var(--dropdown-item-default-text);cursor:pointer;background:var(--dropdown-item-default-background)}li[tedi-dropdown-item]:hover:not(.tedi-dropdown-item--disabled,[aria-disabled=true]),.tedi-dropdown-item:hover:not(.tedi-dropdown-item--disabled,[aria-disabled=true]){color:var(--dropdown-item-hover-text);background:var(--dropdown-item-hover-background)}li[tedi-dropdown-item]:focus-visible,.tedi-dropdown-item:focus-visible{outline:var(--borders-02) solid var(--tedi-primary-500);outline-offset:calc(-1 * var(--borders-02))}li[tedi-dropdown-item][aria-selected=true],li[tedi-dropdown-item].tedi-dropdown-item--selected,.tedi-dropdown-item[aria-selected=true],.tedi-dropdown-item.tedi-dropdown-item--selected{color:var(--dropdown-item-active-text);background:var(--dropdown-item-active-background)}li[tedi-dropdown-item][aria-disabled=true],li[tedi-dropdown-item].tedi-dropdown-item--disabled,.tedi-dropdown-item[aria-disabled=true],.tedi-dropdown-item.tedi-dropdown-item--disabled{color:var(--general-text-disabled);cursor:not-allowed;background:var(--dropdown-item-disabled-background)}\n"] }]
|
|
2749
4064
|
}], propDecorators: { onClick: [{
|
|
2750
4065
|
type: HostListener,
|
|
2751
4066
|
args: ["click"]
|
|
@@ -2760,17 +4075,28 @@ class DropdownContentComponent {
|
|
|
2760
4075
|
* @default menu
|
|
2761
4076
|
*/
|
|
2762
4077
|
dropdownRole = input("menu");
|
|
2763
|
-
|
|
4078
|
+
dropdownApi = inject(DROPDOWN_API);
|
|
4079
|
+
containerId = computed(() => this.dropdownApi.containerId());
|
|
2764
4080
|
items = contentChildren(DropdownItemComponent);
|
|
2765
4081
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: DropdownContentComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
2766
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "19.2.15", type: DropdownContentComponent, isStandalone: true, selector: "tedi-dropdown-content", inputs: { dropdownRole: { classPropertyName: "dropdownRole", publicName: "dropdownRole", isSignal: true, isRequired: false, transformFunction: null } }, host: { attributes: { "role": "presentation" }, properties: { "attr.aria-labelledby": "
|
|
4082
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "19.2.15", type: DropdownContentComponent, isStandalone: true, selector: "tedi-dropdown-content", inputs: { dropdownRole: { classPropertyName: "dropdownRole", publicName: "dropdownRole", isSignal: true, isRequired: false, transformFunction: null } }, host: { attributes: { "role": "presentation" }, properties: { "attr.aria-labelledby": "containerId() + '_trigger'" } }, providers: [
|
|
4083
|
+
{
|
|
4084
|
+
provide: DROPDOWN_CONTENT_API,
|
|
4085
|
+
useExisting: forwardRef(() => DropdownContentComponent),
|
|
4086
|
+
},
|
|
4087
|
+
], queries: [{ propertyName: "items", predicate: DropdownItemComponent, isSignal: true }], ngImport: i0, template: "<ng-content />\n<ul [attr.role]=\"dropdownRole()\">\n <ng-content select=\"li[tedi-dropdown-item]\" />\n</ul>\n", styles: ["tedi-dropdown-content{display:flex;flex-direction:column;width:max-content;min-width:var(--_tedi-dropdown-trigger-width);overflow:auto;border:1px solid var(--card-border-primary);border-radius:var(--form-select-area-radius);box-shadow:0 1px 5px #0003}tedi-dropdown-content ul{margin:0}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
2767
4088
|
}
|
|
2768
4089
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: DropdownContentComponent, decorators: [{
|
|
2769
4090
|
type: Component,
|
|
2770
4091
|
args: [{ selector: "tedi-dropdown-content", standalone: true, encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, host: {
|
|
2771
4092
|
role: "presentation",
|
|
2772
|
-
"[attr.aria-labelledby]": "
|
|
2773
|
-
},
|
|
4093
|
+
"[attr.aria-labelledby]": "containerId() + '_trigger'",
|
|
4094
|
+
}, providers: [
|
|
4095
|
+
{
|
|
4096
|
+
provide: DROPDOWN_CONTENT_API,
|
|
4097
|
+
useExisting: forwardRef(() => DropdownContentComponent),
|
|
4098
|
+
},
|
|
4099
|
+
], template: "<ng-content />\n<ul [attr.role]=\"dropdownRole()\">\n <ng-content select=\"li[tedi-dropdown-item]\" />\n</ul>\n", styles: ["tedi-dropdown-content{display:flex;flex-direction:column;width:max-content;min-width:var(--_tedi-dropdown-trigger-width);overflow:auto;border:1px solid var(--card-border-primary);border-radius:var(--form-select-area-radius);box-shadow:0 1px 5px #0003}tedi-dropdown-content ul{margin:0}\n"] }]
|
|
2774
4100
|
}] });
|
|
2775
4101
|
|
|
2776
4102
|
class DropdownComponent {
|
|
@@ -2976,11 +4302,21 @@ class DropdownComponent {
|
|
|
2976
4302
|
return null;
|
|
2977
4303
|
}
|
|
2978
4304
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: DropdownComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
2979
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "19.2.15", type: DropdownComponent, isStandalone: true, selector: "tedi-dropdown", inputs: { value: { classPropertyName: "value", publicName: "value", isSignal: true, isRequired: false, transformFunction: null }, position: { classPropertyName: "position", publicName: "position", isSignal: true, isRequired: false, transformFunction: null }, preventOverflow: { classPropertyName: "preventOverflow", publicName: "preventOverflow", isSignal: true, isRequired: false, transformFunction: null }, appendTo: { classPropertyName: "appendTo", publicName: "appendTo", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { value: "valueChange" },
|
|
4305
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "19.2.15", type: DropdownComponent, isStandalone: true, selector: "tedi-dropdown", inputs: { value: { classPropertyName: "value", publicName: "value", isSignal: true, isRequired: false, transformFunction: null }, position: { classPropertyName: "position", publicName: "position", isSignal: true, isRequired: false, transformFunction: null }, preventOverflow: { classPropertyName: "preventOverflow", publicName: "preventOverflow", isSignal: true, isRequired: false, transformFunction: null }, appendTo: { classPropertyName: "appendTo", publicName: "appendTo", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { value: "valueChange" }, providers: [
|
|
4306
|
+
{
|
|
4307
|
+
provide: DROPDOWN_API,
|
|
4308
|
+
useExisting: DropdownComponent,
|
|
4309
|
+
},
|
|
4310
|
+
], queries: [{ propertyName: "dropdownTrigger", first: true, predicate: DropdownTriggerDirective, descendants: true, isSignal: true }, { propertyName: "dropdownContent", first: true, predicate: DropdownContentComponent, descendants: true, isSignal: true }], viewQueries: [{ propertyName: "floatUiComponent", first: true, predicate: NgxFloatUiContentComponent, descendants: true, isSignal: true }], ngImport: i0, template: "<div\n applyClass=\"float-ui-container-dropdown\"\n style=\"display: contents\"\n looseTrigger=\"none\"\n ariaRole=\"presentation\"\n [hideOnClickOutside]=\"true\"\n [floatUiLoose]=\"floatUiComponent\"\n [loosePlacement]=\"position()\"\n [preventOverflow]=\"position().includes('auto') ? false : preventOverflow()\"\n [disableAnimation]=\"true\"\n [targetElement]=\"dropdownTrigger().host.nativeElement\"\n [appendTo]=\"appendTo()\"\n>\n <ng-content select=\"[tedi-dropdown-trigger]\" />\n</div>\n<float-ui-content #floatUiComponent [style.display]=\"floatUiDisplay()\">\n <ng-content select=\"tedi-dropdown-content\" />\n</float-ui-content>\n", styles: ["tedi-dropdown{display:inline-flex}float-ui-content .float-ui-container-dropdown{z-index:var(--z-index-dropdown);padding:0;border:0;border-radius:var(--dropdown-item-radius);box-shadow:0 1px 5px 0 var(--tedi-alpha-20, rgba(0, 0, 0, .2))}\n"], dependencies: [{ kind: "ngmodule", type: NgxFloatUiModule }, { kind: "component", type: i1$2.NgxFloatUiContentComponent, selector: "float-ui-content", exportAs: ["ngxFloatUiContent"] }, { kind: "directive", type: i1$2.NgxFloatUiLooseDirective, selector: "[floatUiLoose]", inputs: ["floatUiLoose", "loosePlacement", "looseTrigger"], exportAs: ["floatUiLoose"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
2980
4311
|
}
|
|
2981
4312
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: DropdownComponent, decorators: [{
|
|
2982
4313
|
type: Component,
|
|
2983
|
-
args: [{ standalone: true, selector: "tedi-dropdown", imports: [NgxFloatUiModule], encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush,
|
|
4314
|
+
args: [{ standalone: true, selector: "tedi-dropdown", imports: [NgxFloatUiModule], encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, providers: [
|
|
4315
|
+
{
|
|
4316
|
+
provide: DROPDOWN_API,
|
|
4317
|
+
useExisting: DropdownComponent,
|
|
4318
|
+
},
|
|
4319
|
+
], template: "<div\n applyClass=\"float-ui-container-dropdown\"\n style=\"display: contents\"\n looseTrigger=\"none\"\n ariaRole=\"presentation\"\n [hideOnClickOutside]=\"true\"\n [floatUiLoose]=\"floatUiComponent\"\n [loosePlacement]=\"position()\"\n [preventOverflow]=\"position().includes('auto') ? false : preventOverflow()\"\n [disableAnimation]=\"true\"\n [targetElement]=\"dropdownTrigger().host.nativeElement\"\n [appendTo]=\"appendTo()\"\n>\n <ng-content select=\"[tedi-dropdown-trigger]\" />\n</div>\n<float-ui-content #floatUiComponent [style.display]=\"floatUiDisplay()\">\n <ng-content select=\"tedi-dropdown-content\" />\n</float-ui-content>\n", styles: ["tedi-dropdown{display:inline-flex}float-ui-content .float-ui-container-dropdown{z-index:var(--z-index-dropdown);padding:0;border:0;border-radius:var(--dropdown-item-radius);box-shadow:0 1px 5px 0 var(--tedi-alpha-20, rgba(0, 0, 0, .2))}\n"] }]
|
|
2984
4320
|
}], ctorParameters: () => [] });
|
|
2985
4321
|
|
|
2986
4322
|
class DatePickerHeaderComponent {
|
|
@@ -3824,392 +5160,56 @@ class DatePickerComponent {
|
|
|
3824
5160
|
}
|
|
3825
5161
|
month++;
|
|
3826
5162
|
}
|
|
3827
|
-
return null;
|
|
3828
|
-
}
|
|
3829
|
-
/**
|
|
3830
|
-
* Finds the next enabled date starting from the given date, moving by the given step.
|
|
3831
|
-
* Returns null if no enabled date is found within a reasonable range.
|
|
3832
|
-
* Needed for correct WCAG arrow movement handling
|
|
3833
|
-
*/
|
|
3834
|
-
findNextEnabledDate(from, step) {
|
|
3835
|
-
const maxIterations = 365;
|
|
3836
|
-
const target = new Date(from);
|
|
3837
|
-
for (let i = 0; i < maxIterations; i++) {
|
|
3838
|
-
target.setDate(target.getDate() + step);
|
|
3839
|
-
if (!this.isDisabled(target)) {
|
|
3840
|
-
return new Date(target);
|
|
3841
|
-
}
|
|
3842
|
-
}
|
|
3843
|
-
return null;
|
|
3844
|
-
}
|
|
3845
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: DatePickerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
3846
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.15", type: DatePickerComponent, isStandalone: true, selector: "tedi-date-picker", inputs: { selected: { classPropertyName: "selected", publicName: "selected", isSignal: true, isRequired: false, transformFunction: null }, month: { classPropertyName: "month", publicName: "month", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null }, showNavigation: { classPropertyName: "showNavigation", publicName: "showNavigation", isSignal: true, isRequired: false, transformFunction: null }, monthMode: { classPropertyName: "monthMode", publicName: "monthMode", isSignal: true, isRequired: false, transformFunction: null }, yearMode: { classPropertyName: "yearMode", publicName: "yearMode", isSignal: true, isRequired: false, transformFunction: null }, startYear: { classPropertyName: "startYear", publicName: "startYear", isSignal: true, isRequired: false, transformFunction: null }, endYear: { classPropertyName: "endYear", publicName: "endYear", isSignal: true, isRequired: false, transformFunction: null }, inputId: { classPropertyName: "inputId", publicName: "inputId", isSignal: true, isRequired: false, transformFunction: null }, inputPlaceholder: { classPropertyName: "inputPlaceholder", publicName: "inputPlaceholder", isSignal: true, isRequired: false, transformFunction: null }, inputState: { classPropertyName: "inputState", publicName: "inputState", isSignal: true, isRequired: false, transformFunction: null }, inputSize: { classPropertyName: "inputSize", publicName: "inputSize", isSignal: true, isRequired: false, transformFunction: null }, inputDisabled: { classPropertyName: "inputDisabled", publicName: "inputDisabled", isSignal: true, isRequired: false, transformFunction: null }, allowManualInput: { classPropertyName: "allowManualInput", publicName: "allowManualInput", isSignal: true, isRequired: false, transformFunction: null }, showWeekNumbers: { classPropertyName: "showWeekNumbers", publicName: "showWeekNumbers", isSignal: true, isRequired: false, transformFunction: null }, closeOnSelect: { classPropertyName: "closeOnSelect", publicName: "closeOnSelect", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { selected: "selectedChange", month: "monthChange" }, providers: [
|
|
3847
|
-
{
|
|
3848
|
-
provide: NG_VALUE_ACCESSOR,
|
|
3849
|
-
useExisting: forwardRef(() => DatePickerComponent),
|
|
3850
|
-
multi: true,
|
|
3851
|
-
},
|
|
3852
|
-
], viewQueries: [{ propertyName: "inputElement", first: true, predicate: ["inputElement"], descendants: true, isSignal: true }, { propertyName: "calendarGrid", first: true, predicate: ["gridElement"], descendants: true, isSignal: true }, { propertyName: "popover", first: true, predicate: PopoverComponent, descendants: true, isSignal: true }], ngImport: i0, template: "<input\n #inputElement\n type=\"text\"\n class=\"tedi-date-picker__input\"\n role=\"combobox\"\n aria-autocomplete=\"none\"\n aria-haspopup=\"dialog\"\n [class.tedi-date-picker__input--small]=\"inputSize() === 'small'\"\n [class.tedi-date-picker__input--valid]=\"inputState() === 'valid'\"\n [class.tedi-date-picker__input--error]=\"inputState() === 'error'\"\n [attr.id]=\"inputId()\"\n [attr.placeholder]=\"inputPlaceholder()\"\n [attr.aria-expanded]=\"!fieldDisabled() && popover().floatUiComponent().state\"\n [attr.aria-controls]=\"uniqueId\"\n [attr.aria-readonly]=\"!allowManualInput()\"\n [readOnly]=\"!allowManualInput()\"\n [value]=\"inputValue()\"\n [disabled]=\"fieldDisabled()\"\n (input)=\"onInput($event)\"\n (blur)=\"onInputBlur()\"\n (click)=\"onInputClick()\"\n/>\n<div class=\"tedi-date-picker__input-buttons\">\n @if (selected()) {\n <button\n tedi-closing-button\n type=\"button\"\n size=\"small\"\n class=\"tedi-date-picker__clear\"\n [iconSize]=\"18\"\n [ariaLabel]=\"'date-picker.clear-date' | tediTranslate\"\n [disabled]=\"fieldDisabled()\"\n (click)=\"clearInput()\"\n ></button>\n <tedi-separator axis=\"vertical\" size=\"1rem\" />\n }\n <tedi-popover\n style=\"display: flex; align-items: center\"\n position=\"bottom-end\"\n [withArrow]=\"false\"\n [preventOverflow]=\"true\"\n >\n <button\n tedi-button\n tedi-popover-trigger\n type=\"button\"\n variant=\"neutral\"\n size=\"small\"\n class=\"tedi-date-picker__toggle\"\n [attr.aria-label]=\"'date-picker.open-calendar' | tediTranslate\"\n [disabled]=\"fieldDisabled()\"\n (click)=\"openCalendar()\"\n >\n <tedi-icon name=\"calendar_today\" size=\"inherit\" />\n </button>\n <tedi-popover-content maxWidth=\"none\" style=\"padding: 0\">\n <div\n class=\"tedi-date-picker__calendar\"\n (keydown)=\"onCalendarKeyDown($event)\"\n >\n <tedi-date-picker-header\n [uniqueId]=\"uniqueId\"\n [currentView]=\"currentView()\"\n [month]=\"month()\"\n [monthMode]=\"monthMode()\"\n [yearMode]=\"yearMode()\"\n [showNavigation]=\"showNavigation()\"\n [canGoPrev]=\"canGoPrev()\"\n [canGoNext]=\"canGoNext()\"\n [selectedYear]=\"selectedYear()\"\n [years]=\"years()\"\n [pagedYears]=\"pagedYears()\"\n [hasPrevYearPage]=\"hasPrevYearPage()\"\n [hasNextYearPage]=\"hasNextYearPage()\"\n [disabledMonths]=\"disabledMonths()\"\n [disabledYears]=\"disabledYears()\"\n (prevMonth)=\"prevMonth()\"\n (nextMonth)=\"nextMonth()\"\n (monthSelect)=\"onMonthSelect($event)\"\n (yearSelect)=\"onYearSelect($event)\"\n (monthClick)=\"onMonthClick()\"\n (yearClick)=\"onYearClick()\"\n (prevYearPage)=\"prevYearPage()\"\n (nextYearPage)=\"nextYearPage()\"\n />\n\n @if (currentView() === \"calendar-grid\") {\n <tedi-date-picker-calendar-grid\n #gridElement\n [gridId]=\"uniqueId\"\n [weekRows]=\"weekRows()\"\n [weekNumbers]=\"weekNumbers()\"\n [showWeekNumbers]=\"showWeekNumbers()\"\n [activeDate]=\"activeDate()\"\n [selected]=\"selected()\"\n [today]=\"today\"\n (daySelect)=\"selectDay($event)\"\n (dayKeydown)=\"onDayKeydown($event.event, $event.date)\"\n />\n } @else if (currentView() === \"month-grid\") {\n <tedi-date-picker-month-grid\n [currentMonth]=\"month()\"\n (monthSelect)=\"onMonthSelect($event)\"\n />\n } @else if (currentView() === \"year-grid\") {\n <tedi-date-picker-year-grid\n [pagedYears]=\"pagedYears()\"\n [selectedYear]=\"selectedYear()\"\n (yearSelect)=\"onYearSelect($event)\"\n />\n }\n </div>\n </tedi-popover-content>\n </tedi-popover>\n</div>\n", styles: ["tedi-date-picker{display:flex;gap:var(--form-field-inner-spacing);align-self:stretch;min-height:var(--form-field-height);padding-right:var(--form-field-padding-x-md-default);background:var(--form-input-background-default);border:var(--borders-01) solid var(--form-input-border-default);border-radius:var(--form-field-radius)}tedi-date-picker:has(.tedi-date-picker__input:hover):not(:has(.tedi-date-picker__input:disabled)){border-color:var(--form-input-border-hover)}tedi-date-picker:has(.tedi-date-picker__input:active):not(:has(.tedi-date-picker__input:disabled)),tedi-date-picker:has(.tedi-date-picker__input:focus):not(:has(.tedi-date-picker__input:disabled)){border-color:var(--form-input-border-active);box-shadow:0 0 0 1px var(--form-input-border-active)}tedi-date-picker:has(.tedi-date-picker__input:disabled){cursor:not-allowed;background:var(--form-input-background-disabled);border-color:var(--form-input-border-disabled)}tedi-date-picker:has(.tedi-date-picker__input--valid){border-color:var(--form-general-feedback-success-border)}tedi-date-picker:has(.tedi-date-picker__input--error){border-color:var(--form-general-feedback-error-border)}tedi-date-picker:has(.tedi-date-picker__input--small){min-height:var(--form-field-height-sm)}.tedi-date-picker__input{flex:1;min-width:0;padding-left:var(--form-field-padding-x-md-default);font-size:var(--body-regular-size);color:var(--form-input-text-filled);border:0;border-radius:var(--form-field-radius)}.tedi-date-picker__input::placeholder{color:var(--form-input-text-placeholder)}.tedi-date-picker__input:disabled{cursor:not-allowed}.tedi-date-picker__input-buttons{display:flex;gap:var(--layout-grid-gutters-04);align-items:center;align-self:center;justify-content:center;min-width:0}.tedi-date-picker__clear:disabled{cursor:not-allowed}.tedi-date-picker__toggle{width:var(--button-xs-icon-size)!important;height:var(--form-field-button-height-sm)!important;font-size:1.125rem!important;border-radius:var(--button-radius-sm)!important}.tedi-date-picker__toggle:disabled{cursor:not-allowed}.tedi-date-picker__calendar{display:block;width:fit-content;-webkit-user-select:none;user-select:none;background:var(--card-background-primary);border-radius:var(--card-radius-rounded)}.tedi-date-picker__header{display:flex;gap:var(--layout-grid-gutters-08);align-items:center;justify-content:space-between;padding:var(--card-padding-md-default) var(--card-padding-md-default) var(--card-padding-xs) var(--card-padding-md-default)}.tedi-date-picker__controls{display:flex;gap:var(--layout-grid-gutters-08);align-items:center;margin:0 auto}.tedi-date-picker__dropdown-trigger{display:inline-flex;gap:var(--layout-grid-gutters-02);align-items:center;padding:0;padding-left:var(--layout-grid-gutters-04);font-size:1rem;font-weight:500;color:var(--general-text-primary);cursor:pointer;background:transparent;border:0;border-radius:var(--button-radius-sm)}.tedi-date-picker__dropdown-trigger:hover{color:var(--button-main-neutral-text-hover);background:var(--button-main-neutral-icon-only-background-hover)}.tedi-date-picker__dropdown-trigger:hover tedi-icon{color:var(--button-main-neutral-text-hover)}.tedi-date-picker__dropdown-trigger:active{color:var(--button-main-neutral-text-active);background:var(--button-main-neutral-icon-only-background-active)}.tedi-date-picker__dropdown-trigger:active tedi-icon{color:var(--button-main-neutral-text-active)}.tedi-date-picker__dropdown-trigger:focus-visible{outline:var(--borders-02) solid var(--tedi-primary-500);outline-offset:var(--borders-01)}.tedi-date-picker__dropdown-trigger tedi-icon{font-size:2rem;color:var(--general-icon-tertiary)}.tedi-date-picker__dropdown-content{max-height:15rem}.tedi-date-picker__dropdown-content--month{width:10rem}.tedi-date-picker__dropdown-content--year{width:8.75rem}.tedi-date-picker__label{font-weight:500;color:var(--general-text-primary)}.tedi-date-picker__nav{font-size:var(--button-icon-inner-icon-only-size)!important}.tedi-date-picker__weekdays{display:grid;grid-template-columns:repeat(7,1fr);padding:0 var(--card-padding-md-default)}.tedi-date-picker__weekdays--numbered{grid-template-columns:repeat(8,1fr)}.tedi-date-picker__weekday{display:flex;align-items:center;justify-content:center;width:var(--form-calendar-date-width);height:var(--form-calendar-date-width);font-size:var(--body-small-regular-size);color:var(--general-text-tertiary);text-align:center;text-transform:uppercase;border-bottom:var(--borders-01) solid var(--general-border-primary)}.tedi-date-picker__grid{display:flex;flex-direction:column;padding:0 var(--card-padding-md-default) var(--card-padding-md-default) var(--card-padding-md-default)}.tedi-date-picker__row{display:grid;grid-template-columns:repeat(7,1fr)}.tedi-date-picker__row--numbered{grid-template-columns:repeat(8,1fr)}.tedi-date-picker__weeknumber{display:flex;flex-shrink:0;align-items:center;justify-content:center;width:var(--form-calendar-date-width);height:var(--form-calendar-date-width);font-size:var(--body-small-regular-size);color:var(--general-text-tertiary);border-right:var(--borders-01) solid var(--general-border-primary)}.tedi-date-picker__day{display:flex;flex-shrink:0;align-items:center;justify-content:center;width:var(--form-calendar-date-width);height:var(--form-calendar-date-width);font-size:var(--body-regular-size);color:var(--general-text-primary);cursor:pointer;background:none;border:none;border-radius:var(--button-radius-sm)}.tedi-date-picker__day:hover{background:var(--form-datepicker-date-hover)}.tedi-date-picker__day:active{background:var(--form-datepicker-date-active)}.tedi-date-picker__day:disabled{cursor:not-allowed;opacity:.3}.tedi-date-picker__day:focus-visible{outline:var(--borders-02) solid var(--tedi-primary-500);outline-offset:var(--borders-01)}.tedi-date-picker__day--other-month{color:var(--form-datepicker-date-text-muted)}.tedi-date-picker__day--selected{color:var(--form-datepicker-date-text-selected);background:var(--form-datepicker-date-selected);border-radius:var(--button-radius-sm)}.tedi-date-picker__day--selected:hover{background:var(--form-datepicker-date-selected)}.tedi-date-picker__day--selected .tedi-date-picker__today{border-color:var(--form-datepicker-today-border-secondary)}.tedi-date-picker__today{display:flex;flex-shrink:0;align-items:center;justify-content:center;width:var(--form-calendar-date-width);height:var(--form-calendar-date-width);border:var(--borders-01) solid var(--form-datepicker-today-border);border-radius:var(--button-radius-default)}.tedi-date-picker__month-year-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:var(--layout-grid-gutters-08);padding:var(--card-padding-md-default)}.tedi-date-picker__month-year-button{display:flex;align-items:center;justify-content:center;padding:var(--form-checkbox-radio-card-radio-padding-y) var(--form-checkbox-radio-card-radio-padding-x);font-size:var(--body-regular-size);color:var(--form-checkbox-radio-card-primary-default-text);background:var(--form-checkbox-radio-card-secondary-default-background);border:var(--borders-01) solid var(--form-checkbox-radio-card-secondary-default-border);border-radius:var(--form-checkbox-radio-card-radius)}.tedi-date-picker__month-year-button:hover{color:var(--form-checkbox-radio-card-secondary-hover-text);background:var(--form-checkbox-radio-card-secondary-hover-background);border-color:var(--form-checkbox-radio-card-secondary-hover-border)}.tedi-date-picker__month-year-button:focus-visible{outline:var(--borders-02) solid var(--tedi-primary-500);outline-offset:var(--borders-01)}.tedi-date-picker__month-year-button:disabled{color:var(--form-checkbox-radio-card-secondary-disabled-default-text);cursor:not-allowed;background:var(--form-checkbox-radio-card-secondary-disabled-default-background);border-color:var(--form-checkbox-radio-card-secondary-disabled-default-border)}.tedi-date-picker__month-year-button--selected{color:var(--form-checkbox-radio-card-secondary-selected-text);background:var(--form-checkbox-radio-card-secondary-selected-background);border-color:var(--form-checkbox-radio-card-secondary-selected-border);box-shadow:0 0 0 1px var(--form-checkbox-radio-card-secondary-selected-border)}.tedi-date-picker__month-year-button--selected:disabled{color:var(--form-checkbox-radio-card-secondary-disabled-selected-text);cursor:not-allowed;background:var(--form-checkbox-radio-card-secondary-disabled-selected-background);border-color:var(--form-checkbox-radio-card-secondary-disabled-selected-border);box-shadow:0 0 0 1px var(--form-checkbox-radio-card-secondary-disabled-selected-border)}\n"], dependencies: [{ kind: "component", type: ButtonComponent, selector: "[tedi-button]", inputs: ["variant", "size"] }, { kind: "component", type: IconComponent, selector: "tedi-icon", inputs: ["name", "size", "color", "background", "variant", "type", "label"] }, { kind: "component", type: ClosingButtonComponent, selector: "button[tedi-closing-button]", inputs: ["size", "iconSize", "ariaLabel"] }, { kind: "component", type: SeparatorComponent, selector: "tedi-separator", inputs: ["axis", "color", "variant", "dotSize", "dotFilled", "thickness", "spacing", "size"] }, { kind: "component", type: PopoverComponent, selector: "tedi-popover", inputs: ["position", "preventOverflow", "dismissible", "hideOnScroll", "withBorder", "withArrow", "lockScroll", "appendTo", "timeoutDelay"] }, { kind: "directive", type: PopoverTriggerDirective, selector: "[tedi-popover-trigger]", inputs: ["underline"] }, { kind: "component", type: PopoverContentComponent, selector: "tedi-popover-content", inputs: ["maxWidth", "title", "showClose"] }, { kind: "component", type: DatePickerHeaderComponent, selector: "tedi-date-picker-header", inputs: ["uniqueId", "currentView", "month", "monthMode", "yearMode", "showNavigation", "canGoPrev", "canGoNext", "selectedYear", "years", "pagedYears", "hasPrevYearPage", "hasNextYearPage", "disabledMonths", "disabledYears"], outputs: ["prevMonth", "nextMonth", "monthSelect", "yearSelect", "monthClick", "yearClick", "prevYearPage", "nextYearPage"] }, { kind: "component", type: DatePickerCalendarGridComponent, selector: "tedi-date-picker-calendar-grid", inputs: ["gridId", "weekRows", "weekNumbers", "showWeekNumbers", "activeDate", "selected", "today"], outputs: ["daySelect", "dayKeydown"] }, { kind: "component", type: DatePickerMonthGridComponent, selector: "tedi-date-picker-month-grid", inputs: ["currentMonth"], outputs: ["monthSelect"] }, { kind: "component", type: DatePickerYearGridComponent, selector: "tedi-date-picker-year-grid", inputs: ["pagedYears", "selectedYear"], outputs: ["yearSelect"] }, { kind: "pipe", type: TediTranslationPipe, name: "tediTranslate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
3853
|
-
}
|
|
3854
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: DatePickerComponent, decorators: [{
|
|
3855
|
-
type: Component,
|
|
3856
|
-
args: [{ standalone: true, selector: "tedi-date-picker", encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, imports: [
|
|
3857
|
-
ButtonComponent,
|
|
3858
|
-
IconComponent,
|
|
3859
|
-
ClosingButtonComponent,
|
|
3860
|
-
SeparatorComponent,
|
|
3861
|
-
PopoverComponent,
|
|
3862
|
-
PopoverTriggerDirective,
|
|
3863
|
-
PopoverContentComponent,
|
|
3864
|
-
DatePickerHeaderComponent,
|
|
3865
|
-
DatePickerCalendarGridComponent,
|
|
3866
|
-
DatePickerMonthGridComponent,
|
|
3867
|
-
DatePickerYearGridComponent,
|
|
3868
|
-
TediTranslationPipe
|
|
3869
|
-
], providers: [
|
|
3870
|
-
{
|
|
3871
|
-
provide: NG_VALUE_ACCESSOR,
|
|
3872
|
-
useExisting: forwardRef(() => DatePickerComponent),
|
|
3873
|
-
multi: true,
|
|
3874
|
-
},
|
|
3875
|
-
], template: "<input\n #inputElement\n type=\"text\"\n class=\"tedi-date-picker__input\"\n role=\"combobox\"\n aria-autocomplete=\"none\"\n aria-haspopup=\"dialog\"\n [class.tedi-date-picker__input--small]=\"inputSize() === 'small'\"\n [class.tedi-date-picker__input--valid]=\"inputState() === 'valid'\"\n [class.tedi-date-picker__input--error]=\"inputState() === 'error'\"\n [attr.id]=\"inputId()\"\n [attr.placeholder]=\"inputPlaceholder()\"\n [attr.aria-expanded]=\"!fieldDisabled() && popover().floatUiComponent().state\"\n [attr.aria-controls]=\"uniqueId\"\n [attr.aria-readonly]=\"!allowManualInput()\"\n [readOnly]=\"!allowManualInput()\"\n [value]=\"inputValue()\"\n [disabled]=\"fieldDisabled()\"\n (input)=\"onInput($event)\"\n (blur)=\"onInputBlur()\"\n (click)=\"onInputClick()\"\n/>\n<div class=\"tedi-date-picker__input-buttons\">\n @if (selected()) {\n <button\n tedi-closing-button\n type=\"button\"\n size=\"small\"\n class=\"tedi-date-picker__clear\"\n [iconSize]=\"18\"\n [ariaLabel]=\"'date-picker.clear-date' | tediTranslate\"\n [disabled]=\"fieldDisabled()\"\n (click)=\"clearInput()\"\n ></button>\n <tedi-separator axis=\"vertical\" size=\"1rem\" />\n }\n <tedi-popover\n style=\"display: flex; align-items: center\"\n position=\"bottom-end\"\n [withArrow]=\"false\"\n [preventOverflow]=\"true\"\n >\n <button\n tedi-button\n tedi-popover-trigger\n type=\"button\"\n variant=\"neutral\"\n size=\"small\"\n class=\"tedi-date-picker__toggle\"\n [attr.aria-label]=\"'date-picker.open-calendar' | tediTranslate\"\n [disabled]=\"fieldDisabled()\"\n (click)=\"openCalendar()\"\n >\n <tedi-icon name=\"calendar_today\" size=\"inherit\" />\n </button>\n <tedi-popover-content maxWidth=\"none\" style=\"padding: 0\">\n <div\n class=\"tedi-date-picker__calendar\"\n (keydown)=\"onCalendarKeyDown($event)\"\n >\n <tedi-date-picker-header\n [uniqueId]=\"uniqueId\"\n [currentView]=\"currentView()\"\n [month]=\"month()\"\n [monthMode]=\"monthMode()\"\n [yearMode]=\"yearMode()\"\n [showNavigation]=\"showNavigation()\"\n [canGoPrev]=\"canGoPrev()\"\n [canGoNext]=\"canGoNext()\"\n [selectedYear]=\"selectedYear()\"\n [years]=\"years()\"\n [pagedYears]=\"pagedYears()\"\n [hasPrevYearPage]=\"hasPrevYearPage()\"\n [hasNextYearPage]=\"hasNextYearPage()\"\n [disabledMonths]=\"disabledMonths()\"\n [disabledYears]=\"disabledYears()\"\n (prevMonth)=\"prevMonth()\"\n (nextMonth)=\"nextMonth()\"\n (monthSelect)=\"onMonthSelect($event)\"\n (yearSelect)=\"onYearSelect($event)\"\n (monthClick)=\"onMonthClick()\"\n (yearClick)=\"onYearClick()\"\n (prevYearPage)=\"prevYearPage()\"\n (nextYearPage)=\"nextYearPage()\"\n />\n\n @if (currentView() === \"calendar-grid\") {\n <tedi-date-picker-calendar-grid\n #gridElement\n [gridId]=\"uniqueId\"\n [weekRows]=\"weekRows()\"\n [weekNumbers]=\"weekNumbers()\"\n [showWeekNumbers]=\"showWeekNumbers()\"\n [activeDate]=\"activeDate()\"\n [selected]=\"selected()\"\n [today]=\"today\"\n (daySelect)=\"selectDay($event)\"\n (dayKeydown)=\"onDayKeydown($event.event, $event.date)\"\n />\n } @else if (currentView() === \"month-grid\") {\n <tedi-date-picker-month-grid\n [currentMonth]=\"month()\"\n (monthSelect)=\"onMonthSelect($event)\"\n />\n } @else if (currentView() === \"year-grid\") {\n <tedi-date-picker-year-grid\n [pagedYears]=\"pagedYears()\"\n [selectedYear]=\"selectedYear()\"\n (yearSelect)=\"onYearSelect($event)\"\n />\n }\n </div>\n </tedi-popover-content>\n </tedi-popover>\n</div>\n", styles: ["tedi-date-picker{display:flex;gap:var(--form-field-inner-spacing);align-self:stretch;min-height:var(--form-field-height);padding-right:var(--form-field-padding-x-md-default);background:var(--form-input-background-default);border:var(--borders-01) solid var(--form-input-border-default);border-radius:var(--form-field-radius)}tedi-date-picker:has(.tedi-date-picker__input:hover):not(:has(.tedi-date-picker__input:disabled)){border-color:var(--form-input-border-hover)}tedi-date-picker:has(.tedi-date-picker__input:active):not(:has(.tedi-date-picker__input:disabled)),tedi-date-picker:has(.tedi-date-picker__input:focus):not(:has(.tedi-date-picker__input:disabled)){border-color:var(--form-input-border-active);box-shadow:0 0 0 1px var(--form-input-border-active)}tedi-date-picker:has(.tedi-date-picker__input:disabled){cursor:not-allowed;background:var(--form-input-background-disabled);border-color:var(--form-input-border-disabled)}tedi-date-picker:has(.tedi-date-picker__input--valid){border-color:var(--form-general-feedback-success-border)}tedi-date-picker:has(.tedi-date-picker__input--error){border-color:var(--form-general-feedback-error-border)}tedi-date-picker:has(.tedi-date-picker__input--small){min-height:var(--form-field-height-sm)}.tedi-date-picker__input{flex:1;min-width:0;padding-left:var(--form-field-padding-x-md-default);font-size:var(--body-regular-size);color:var(--form-input-text-filled);border:0;border-radius:var(--form-field-radius)}.tedi-date-picker__input::placeholder{color:var(--form-input-text-placeholder)}.tedi-date-picker__input:disabled{cursor:not-allowed}.tedi-date-picker__input-buttons{display:flex;gap:var(--layout-grid-gutters-04);align-items:center;align-self:center;justify-content:center;min-width:0}.tedi-date-picker__clear:disabled{cursor:not-allowed}.tedi-date-picker__toggle{width:var(--button-xs-icon-size)!important;height:var(--form-field-button-height-sm)!important;font-size:1.125rem!important;border-radius:var(--button-radius-sm)!important}.tedi-date-picker__toggle:disabled{cursor:not-allowed}.tedi-date-picker__calendar{display:block;width:fit-content;-webkit-user-select:none;user-select:none;background:var(--card-background-primary);border-radius:var(--card-radius-rounded)}.tedi-date-picker__header{display:flex;gap:var(--layout-grid-gutters-08);align-items:center;justify-content:space-between;padding:var(--card-padding-md-default) var(--card-padding-md-default) var(--card-padding-xs) var(--card-padding-md-default)}.tedi-date-picker__controls{display:flex;gap:var(--layout-grid-gutters-08);align-items:center;margin:0 auto}.tedi-date-picker__dropdown-trigger{display:inline-flex;gap:var(--layout-grid-gutters-02);align-items:center;padding:0;padding-left:var(--layout-grid-gutters-04);font-size:1rem;font-weight:500;color:var(--general-text-primary);cursor:pointer;background:transparent;border:0;border-radius:var(--button-radius-sm)}.tedi-date-picker__dropdown-trigger:hover{color:var(--button-main-neutral-text-hover);background:var(--button-main-neutral-icon-only-background-hover)}.tedi-date-picker__dropdown-trigger:hover tedi-icon{color:var(--button-main-neutral-text-hover)}.tedi-date-picker__dropdown-trigger:active{color:var(--button-main-neutral-text-active);background:var(--button-main-neutral-icon-only-background-active)}.tedi-date-picker__dropdown-trigger:active tedi-icon{color:var(--button-main-neutral-text-active)}.tedi-date-picker__dropdown-trigger:focus-visible{outline:var(--borders-02) solid var(--tedi-primary-500);outline-offset:var(--borders-01)}.tedi-date-picker__dropdown-trigger tedi-icon{font-size:2rem;color:var(--general-icon-tertiary)}.tedi-date-picker__dropdown-content{max-height:15rem}.tedi-date-picker__dropdown-content--month{width:10rem}.tedi-date-picker__dropdown-content--year{width:8.75rem}.tedi-date-picker__label{font-weight:500;color:var(--general-text-primary)}.tedi-date-picker__nav{font-size:var(--button-icon-inner-icon-only-size)!important}.tedi-date-picker__weekdays{display:grid;grid-template-columns:repeat(7,1fr);padding:0 var(--card-padding-md-default)}.tedi-date-picker__weekdays--numbered{grid-template-columns:repeat(8,1fr)}.tedi-date-picker__weekday{display:flex;align-items:center;justify-content:center;width:var(--form-calendar-date-width);height:var(--form-calendar-date-width);font-size:var(--body-small-regular-size);color:var(--general-text-tertiary);text-align:center;text-transform:uppercase;border-bottom:var(--borders-01) solid var(--general-border-primary)}.tedi-date-picker__grid{display:flex;flex-direction:column;padding:0 var(--card-padding-md-default) var(--card-padding-md-default) var(--card-padding-md-default)}.tedi-date-picker__row{display:grid;grid-template-columns:repeat(7,1fr)}.tedi-date-picker__row--numbered{grid-template-columns:repeat(8,1fr)}.tedi-date-picker__weeknumber{display:flex;flex-shrink:0;align-items:center;justify-content:center;width:var(--form-calendar-date-width);height:var(--form-calendar-date-width);font-size:var(--body-small-regular-size);color:var(--general-text-tertiary);border-right:var(--borders-01) solid var(--general-border-primary)}.tedi-date-picker__day{display:flex;flex-shrink:0;align-items:center;justify-content:center;width:var(--form-calendar-date-width);height:var(--form-calendar-date-width);font-size:var(--body-regular-size);color:var(--general-text-primary);cursor:pointer;background:none;border:none;border-radius:var(--button-radius-sm)}.tedi-date-picker__day:hover{background:var(--form-datepicker-date-hover)}.tedi-date-picker__day:active{background:var(--form-datepicker-date-active)}.tedi-date-picker__day:disabled{cursor:not-allowed;opacity:.3}.tedi-date-picker__day:focus-visible{outline:var(--borders-02) solid var(--tedi-primary-500);outline-offset:var(--borders-01)}.tedi-date-picker__day--other-month{color:var(--form-datepicker-date-text-muted)}.tedi-date-picker__day--selected{color:var(--form-datepicker-date-text-selected);background:var(--form-datepicker-date-selected);border-radius:var(--button-radius-sm)}.tedi-date-picker__day--selected:hover{background:var(--form-datepicker-date-selected)}.tedi-date-picker__day--selected .tedi-date-picker__today{border-color:var(--form-datepicker-today-border-secondary)}.tedi-date-picker__today{display:flex;flex-shrink:0;align-items:center;justify-content:center;width:var(--form-calendar-date-width);height:var(--form-calendar-date-width);border:var(--borders-01) solid var(--form-datepicker-today-border);border-radius:var(--button-radius-default)}.tedi-date-picker__month-year-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:var(--layout-grid-gutters-08);padding:var(--card-padding-md-default)}.tedi-date-picker__month-year-button{display:flex;align-items:center;justify-content:center;padding:var(--form-checkbox-radio-card-radio-padding-y) var(--form-checkbox-radio-card-radio-padding-x);font-size:var(--body-regular-size);color:var(--form-checkbox-radio-card-primary-default-text);background:var(--form-checkbox-radio-card-secondary-default-background);border:var(--borders-01) solid var(--form-checkbox-radio-card-secondary-default-border);border-radius:var(--form-checkbox-radio-card-radius)}.tedi-date-picker__month-year-button:hover{color:var(--form-checkbox-radio-card-secondary-hover-text);background:var(--form-checkbox-radio-card-secondary-hover-background);border-color:var(--form-checkbox-radio-card-secondary-hover-border)}.tedi-date-picker__month-year-button:focus-visible{outline:var(--borders-02) solid var(--tedi-primary-500);outline-offset:var(--borders-01)}.tedi-date-picker__month-year-button:disabled{color:var(--form-checkbox-radio-card-secondary-disabled-default-text);cursor:not-allowed;background:var(--form-checkbox-radio-card-secondary-disabled-default-background);border-color:var(--form-checkbox-radio-card-secondary-disabled-default-border)}.tedi-date-picker__month-year-button--selected{color:var(--form-checkbox-radio-card-secondary-selected-text);background:var(--form-checkbox-radio-card-secondary-selected-background);border-color:var(--form-checkbox-radio-card-secondary-selected-border);box-shadow:0 0 0 1px var(--form-checkbox-radio-card-secondary-selected-border)}.tedi-date-picker__month-year-button--selected:disabled{color:var(--form-checkbox-radio-card-secondary-disabled-selected-text);cursor:not-allowed;background:var(--form-checkbox-radio-card-secondary-disabled-selected-background);border-color:var(--form-checkbox-radio-card-secondary-disabled-selected-border);box-shadow:0 0 0 1px var(--form-checkbox-radio-card-secondary-disabled-selected-border)}\n"] }]
|
|
3876
|
-
}], ctorParameters: () => [] });
|
|
3877
|
-
|
|
3878
|
-
class FeedbackTextComponent {
|
|
3879
|
-
/**
|
|
3880
|
-
* Helper text
|
|
3881
|
-
*/
|
|
3882
|
-
text = input.required();
|
|
3883
|
-
/**
|
|
3884
|
-
* Type of form-helper.
|
|
3885
|
-
* @default hint
|
|
3886
|
-
*/
|
|
3887
|
-
type = input("hint");
|
|
3888
|
-
/**
|
|
3889
|
-
* Position of the helper.
|
|
3890
|
-
* @default left
|
|
3891
|
-
*/
|
|
3892
|
-
position = input("left");
|
|
3893
|
-
role = computed(() => {
|
|
3894
|
-
if (this.type() === "valid" || this.type() === "error") {
|
|
3895
|
-
return "alert";
|
|
3896
|
-
}
|
|
3897
|
-
return undefined;
|
|
3898
|
-
});
|
|
3899
|
-
ariaLive = computed(() => {
|
|
3900
|
-
if (this.type() === "error" || this.type() === "valid") {
|
|
3901
|
-
return "assertive";
|
|
3902
|
-
}
|
|
3903
|
-
return "polite";
|
|
3904
|
-
});
|
|
3905
|
-
classes = computed(() => {
|
|
3906
|
-
return `tedi-feedback-text tedi-feedback-text--${this.type()} tedi-feedback-text--${this.position()}`;
|
|
3907
|
-
});
|
|
3908
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: FeedbackTextComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
3909
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "19.2.15", type: FeedbackTextComponent, isStandalone: true, selector: "tedi-feedback-text", inputs: { text: { classPropertyName: "text", publicName: "text", isSignal: true, isRequired: true, transformFunction: null }, type: { classPropertyName: "type", publicName: "type", isSignal: true, isRequired: false, transformFunction: null }, position: { classPropertyName: "position", publicName: "position", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class": "classes()", "attr.role": "role()", "attr.aria-live": "ariaLive()" } }, ngImport: i0, template: "{{ text() }}\n", styles: [".tedi-feedback-text{display:block;font-size:var(--body-small-regular-size);color:var(--general-text-tertiary)}.tedi-feedback-text--valid{color:var(--form-general-feedback-success-text)}.tedi-feedback-text--error{color:var(--form-general-feedback-error-text)}.tedi-feedback-text--left{flex-grow:1;text-align:left}.tedi-feedback-text--right{flex-grow:0;text-align:right}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
3910
|
-
}
|
|
3911
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: FeedbackTextComponent, decorators: [{
|
|
3912
|
-
type: Component,
|
|
3913
|
-
args: [{ selector: "tedi-feedback-text", standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, host: {
|
|
3914
|
-
"[class]": "classes()",
|
|
3915
|
-
"[attr.role]": "role()",
|
|
3916
|
-
"[attr.aria-live]": "ariaLive()",
|
|
3917
|
-
}, template: "{{ text() }}\n", styles: [".tedi-feedback-text{display:block;font-size:var(--body-small-regular-size);color:var(--general-text-tertiary)}.tedi-feedback-text--valid{color:var(--form-general-feedback-success-text)}.tedi-feedback-text--error{color:var(--form-general-feedback-error-text)}.tedi-feedback-text--left{flex-grow:1;text-align:left}.tedi-feedback-text--right{flex-grow:0;text-align:right}\n"] }]
|
|
3918
|
-
}] });
|
|
3919
|
-
|
|
3920
|
-
class LabelComponent {
|
|
3921
|
-
/**
|
|
3922
|
-
* Size of the label.
|
|
3923
|
-
* @default default
|
|
3924
|
-
*/
|
|
3925
|
-
size = input("default");
|
|
3926
|
-
/**
|
|
3927
|
-
* Whether label is required.
|
|
3928
|
-
* @default false
|
|
3929
|
-
*/
|
|
3930
|
-
required = input(false);
|
|
3931
|
-
/**
|
|
3932
|
-
* Color of the label.
|
|
3933
|
-
* @default secondary
|
|
3934
|
-
*/
|
|
3935
|
-
color = input("secondary");
|
|
3936
|
-
classes = computed(() => {
|
|
3937
|
-
const classList = ["tedi-label", `tedi-label--${this.color()}`];
|
|
3938
|
-
if (this.size() === "small") {
|
|
3939
|
-
classList.push("tedi-label--small");
|
|
3940
|
-
}
|
|
3941
|
-
return classList.join(" ");
|
|
3942
|
-
});
|
|
3943
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: LabelComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
3944
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.15", type: LabelComponent, isStandalone: true, selector: "[tedi-label]", inputs: { size: { classPropertyName: "size", publicName: "size", isSignal: true, isRequired: false, transformFunction: null }, required: { classPropertyName: "required", publicName: "required", isSignal: true, isRequired: false, transformFunction: null }, color: { classPropertyName: "color", publicName: "color", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class": "classes()" } }, ngImport: i0, template: "<ng-content />\n@if (required()) {\n <span class=\"tedi-label--required\" aria-hidden=\"true\">*</span>\n <span class=\"sr-only\">, {{ 'required' | tediTranslate }}</span>\n}\n", styles: [".tedi-label{font-family:var(--family-default);font-size:var(--body-regular-size)}.tedi-label--small{font-size:var(--body-small-regular-size)}.tedi-label--required{margin-left:var(--content-label-inner-spacing-x);color:var(--form-general-feedback-error-border)}.tedi-label--primary{color:var(--general-text-primary)}.tedi-label--secondary{color:var(--general-text-secondary)}.tedi-label:has(input[disabled]),.tedi-label[for]:has(+input[disabled]){color:var(--general-text-disabled)}\n"], dependencies: [{ kind: "pipe", type: TediTranslationPipe, name: "tediTranslate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
3945
|
-
}
|
|
3946
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: LabelComponent, decorators: [{
|
|
3947
|
-
type: Component,
|
|
3948
|
-
args: [{ selector: "[tedi-label]", standalone: true, encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, imports: [
|
|
3949
|
-
TediTranslationPipe
|
|
3950
|
-
], host: {
|
|
3951
|
-
"[class]": "classes()",
|
|
3952
|
-
}, template: "<ng-content />\n@if (required()) {\n <span class=\"tedi-label--required\" aria-hidden=\"true\">*</span>\n <span class=\"sr-only\">, {{ 'required' | tediTranslate }}</span>\n}\n", styles: [".tedi-label{font-family:var(--family-default);font-size:var(--body-regular-size)}.tedi-label--small{font-size:var(--body-small-regular-size)}.tedi-label--required{margin-left:var(--content-label-inner-spacing-x);color:var(--form-general-feedback-error-border)}.tedi-label--primary{color:var(--general-text-primary)}.tedi-label--secondary{color:var(--general-text-secondary)}.tedi-label:has(input[disabled]),.tedi-label[for]:has(+input[disabled]){color:var(--general-text-disabled)}\n"] }]
|
|
3953
|
-
}] });
|
|
3954
|
-
|
|
3955
|
-
class NumberFieldComponent {
|
|
3956
|
-
/**
|
|
3957
|
-
* The unique identifier for the input element that this label is associated with. This ID should match the input element's id attribute to ensure accessibility.
|
|
3958
|
-
*/
|
|
3959
|
-
inputId = input.required();
|
|
3960
|
-
/**
|
|
3961
|
-
* The text content of the label that describes the input field.
|
|
3962
|
-
*/
|
|
3963
|
-
label = input();
|
|
3964
|
-
/**
|
|
3965
|
-
* Value of the input field. Supports two-way binding, use with form controls.
|
|
3966
|
-
*/
|
|
3967
|
-
value = model(0);
|
|
3968
|
-
/**
|
|
3969
|
-
* Is input disabled?
|
|
3970
|
-
* @default false
|
|
3971
|
-
*/
|
|
3972
|
-
disabled = input(false);
|
|
3973
|
-
/**
|
|
3974
|
-
* Indicates whether the input field is required. If set to true, the required indicator will be displayed next to the label.
|
|
3975
|
-
* @default false
|
|
3976
|
-
*/
|
|
3977
|
-
required = input(false);
|
|
3978
|
-
/**
|
|
3979
|
-
* Minimum allowed value. Disables decrementing below this value and restricts manual input.
|
|
3980
|
-
*/
|
|
3981
|
-
min = input();
|
|
3982
|
-
/**
|
|
3983
|
-
* Maximum allowed value. Disables incrementing above this value and restricts manual input.
|
|
3984
|
-
*/
|
|
3985
|
-
max = input();
|
|
3986
|
-
/**
|
|
3987
|
-
* Step size for incrementing or decrementing the value.
|
|
3988
|
-
* @default 1
|
|
3989
|
-
*/
|
|
3990
|
-
step = input(1);
|
|
3991
|
-
/**
|
|
3992
|
-
* Size of the number field.
|
|
3993
|
-
* @default default
|
|
3994
|
-
*/
|
|
3995
|
-
size = input("default");
|
|
3996
|
-
/**
|
|
3997
|
-
* Marks the field as invalid for validation purposes.
|
|
3998
|
-
* @default false
|
|
3999
|
-
*/
|
|
4000
|
-
invalid = input(false);
|
|
4001
|
-
/**
|
|
4002
|
-
* Text displayed after the input value, typically a unit.
|
|
4003
|
-
*/
|
|
4004
|
-
suffix = input();
|
|
4005
|
-
/**
|
|
4006
|
-
* FeedbackText component inputs.
|
|
4007
|
-
*/
|
|
4008
|
-
feedbackText = input();
|
|
4009
|
-
/**
|
|
4010
|
-
* Is input full width?
|
|
4011
|
-
* @default false
|
|
4012
|
-
*/
|
|
4013
|
-
fullWidth = input(false);
|
|
4014
|
-
inputRef;
|
|
4015
|
-
formDisabled = signal(false);
|
|
4016
|
-
onChange = () => { };
|
|
4017
|
-
onTouched = () => { };
|
|
4018
|
-
translationService = inject(TediTranslationService);
|
|
4019
|
-
liveAnnouncer = inject(LiveAnnouncer);
|
|
4020
|
-
isInvalid = computed(() => {
|
|
4021
|
-
const min = this.min();
|
|
4022
|
-
const max = this.max();
|
|
4023
|
-
return (this.invalid() ||
|
|
4024
|
-
Boolean(min !== undefined && this.value() < min) ||
|
|
4025
|
-
Boolean(max !== undefined && this.value() > max));
|
|
4026
|
-
});
|
|
4027
|
-
isDisabled = computed(() => this.disabled() || this.formDisabled());
|
|
4028
|
-
decrementDisabled = computed(() => {
|
|
4029
|
-
const min = this.min();
|
|
4030
|
-
return this.isDisabled() || (min !== undefined && this.value() <= min);
|
|
4031
|
-
});
|
|
4032
|
-
incrementDisabled = computed(() => {
|
|
4033
|
-
const max = this.max();
|
|
4034
|
-
return this.isDisabled() || (max !== undefined && this.value() >= max);
|
|
4035
|
-
});
|
|
4036
|
-
feedbackId = computed(() => this.feedbackText() ? `${this.inputId()}-feedback` : null);
|
|
4037
|
-
writeValue(value) {
|
|
4038
|
-
this.value.set(value ? (isNaN(value) ? 0 : value) : 0);
|
|
4039
|
-
}
|
|
4040
|
-
registerOnChange(fn) {
|
|
4041
|
-
this.onChange = fn;
|
|
4042
|
-
}
|
|
4043
|
-
registerOnTouched(fn) {
|
|
4044
|
-
this.onTouched = fn;
|
|
4045
|
-
}
|
|
4046
|
-
setDisabledState(disabled) {
|
|
4047
|
-
this.formDisabled.set(disabled);
|
|
4048
|
-
}
|
|
4049
|
-
focus() {
|
|
4050
|
-
this.inputRef.nativeElement.focus();
|
|
4051
|
-
}
|
|
4052
|
-
blur() {
|
|
4053
|
-
this.inputRef.nativeElement.blur();
|
|
4054
|
-
this.onTouched();
|
|
4055
|
-
}
|
|
4056
|
-
handleButtonClick(action) {
|
|
4057
|
-
const delta = action === "decrement" ? -1 : 1;
|
|
4058
|
-
const nextValue = this.value() + this.step() * delta;
|
|
4059
|
-
this.value.set(nextValue);
|
|
4060
|
-
this.onChange(nextValue);
|
|
4061
|
-
this.onTouched();
|
|
4062
|
-
this.announceValue(nextValue);
|
|
4063
|
-
}
|
|
4064
|
-
announceValue(value) {
|
|
4065
|
-
this.liveAnnouncer.announce(this.translationService.translate("numberField.quantityUpdated", value), "polite");
|
|
4066
|
-
}
|
|
4067
|
-
handleInputChange(event) {
|
|
4068
|
-
const input = event.target;
|
|
4069
|
-
const value = isNaN(input.valueAsNumber) ? 0 : input.valueAsNumber;
|
|
4070
|
-
if (value !== this.value()) {
|
|
4071
|
-
this.value.set(value);
|
|
4072
|
-
this.onChange(value);
|
|
4073
|
-
}
|
|
5163
|
+
return null;
|
|
4074
5164
|
}
|
|
4075
|
-
|
|
4076
|
-
|
|
5165
|
+
/**
|
|
5166
|
+
* Finds the next enabled date starting from the given date, moving by the given step.
|
|
5167
|
+
* Returns null if no enabled date is found within a reasonable range.
|
|
5168
|
+
* Needed for correct WCAG arrow movement handling
|
|
5169
|
+
*/
|
|
5170
|
+
findNextEnabledDate(from, step) {
|
|
5171
|
+
const maxIterations = 365;
|
|
5172
|
+
const target = new Date(from);
|
|
5173
|
+
for (let i = 0; i < maxIterations; i++) {
|
|
5174
|
+
target.setDate(target.getDate() + step);
|
|
5175
|
+
if (!this.isDisabled(target)) {
|
|
5176
|
+
return new Date(target);
|
|
5177
|
+
}
|
|
5178
|
+
}
|
|
5179
|
+
return null;
|
|
4077
5180
|
}
|
|
4078
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type:
|
|
4079
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.15", type:
|
|
5181
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: DatePickerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
5182
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.15", type: DatePickerComponent, isStandalone: true, selector: "tedi-date-picker", inputs: { selected: { classPropertyName: "selected", publicName: "selected", isSignal: true, isRequired: false, transformFunction: null }, month: { classPropertyName: "month", publicName: "month", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null }, showNavigation: { classPropertyName: "showNavigation", publicName: "showNavigation", isSignal: true, isRequired: false, transformFunction: null }, monthMode: { classPropertyName: "monthMode", publicName: "monthMode", isSignal: true, isRequired: false, transformFunction: null }, yearMode: { classPropertyName: "yearMode", publicName: "yearMode", isSignal: true, isRequired: false, transformFunction: null }, startYear: { classPropertyName: "startYear", publicName: "startYear", isSignal: true, isRequired: false, transformFunction: null }, endYear: { classPropertyName: "endYear", publicName: "endYear", isSignal: true, isRequired: false, transformFunction: null }, inputId: { classPropertyName: "inputId", publicName: "inputId", isSignal: true, isRequired: false, transformFunction: null }, inputPlaceholder: { classPropertyName: "inputPlaceholder", publicName: "inputPlaceholder", isSignal: true, isRequired: false, transformFunction: null }, inputState: { classPropertyName: "inputState", publicName: "inputState", isSignal: true, isRequired: false, transformFunction: null }, inputSize: { classPropertyName: "inputSize", publicName: "inputSize", isSignal: true, isRequired: false, transformFunction: null }, inputDisabled: { classPropertyName: "inputDisabled", publicName: "inputDisabled", isSignal: true, isRequired: false, transformFunction: null }, allowManualInput: { classPropertyName: "allowManualInput", publicName: "allowManualInput", isSignal: true, isRequired: false, transformFunction: null }, showWeekNumbers: { classPropertyName: "showWeekNumbers", publicName: "showWeekNumbers", isSignal: true, isRequired: false, transformFunction: null }, closeOnSelect: { classPropertyName: "closeOnSelect", publicName: "closeOnSelect", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { selected: "selectedChange", month: "monthChange" }, providers: [
|
|
4080
5183
|
{
|
|
4081
5184
|
provide: NG_VALUE_ACCESSOR,
|
|
4082
|
-
useExisting: forwardRef(() =>
|
|
5185
|
+
useExisting: forwardRef(() => DatePickerComponent),
|
|
4083
5186
|
multi: true,
|
|
4084
5187
|
},
|
|
4085
|
-
], viewQueries: [{ propertyName: "inputRef", first: true, predicate: ["inputElement"], descendants: true }], ngImport: i0, template: "@if (label()) {\n <label tedi-label [for]=\"inputId()\" [required]=\"required()\" [size]=\"size()\">\n {{ label() }}\n </label>\n}\n<div\n [class]=\"{\n 'tedi-number-field': true,\n 'tedi-number-field--invalid': isInvalid(),\n 'tedi-number-field--disabled': isDisabled(),\n }\"\n>\n <button\n tedi-button\n type=\"button\"\n variant=\"secondary\"\n [class]=\"{\n 'tedi-number-field__button': true,\n 'tedi-number-field__button--decrement': true,\n 'tedi-number-field__button--small': size() === 'small',\n }\"\n [disabled]=\"decrementDisabled()\"\n [attr.aria-label]=\"'numberField.decrement' | tediTranslate: step()\"\n (click)=\"handleButtonClick('decrement')\"\n >\n <tedi-icon name=\"remove\" [size]=\"18\" />\n </button>\n <div\n [class]=\"{\n 'tedi-number-field__input-wrapper': true,\n 'tedi-number-field__input-wrapper--small': size() === 'small',\n 'tedi-number-field__input-wrapper--disabled': isDisabled(),\n 'tedi-number-field__input-wrapper--with-suffix': suffix(),\n 'tedi-number-field__input-wrapper--full-width': fullWidth(),\n }\"\n (click)=\"focus()\"\n >\n <input\n #inputElement\n [id]=\"inputId()\"\n type=\"number\"\n inputmode=\"numeric\"\n class=\"tedi-number-field__input\"\n [value]=\"value()\"\n [disabled]=\"isDisabled()\"\n [required]=\"required()\"\n [attr.min]=\"min()\"\n [attr.max]=\"max()\"\n [attr.step]=\"step()\"\n [attr.aria-invalid]=\"isInvalid()\"\n [attr.aria-describedby]=\"feedbackId()\"\n (input)=\"handleInputChange($event)\"\n (blur)=\"handleBlur()\"\n />\n @if (suffix()) {\n <small tedi-text color=\"tertiary\" class=\"tedi-number-field__suffix\">\n {{ suffix() }}\n </small>\n }\n </div>\n <button\n tedi-button\n type=\"button\"\n variant=\"secondary\"\n [class]=\"{\n 'tedi-number-field__button': true,\n 'tedi-number-field__button--increment': true,\n 'tedi-number-field__button--small': size() === 'small',\n }\"\n [disabled]=\"incrementDisabled()\"\n [attr.aria-label]=\"'numberField.increment' | tediTranslate: step()\"\n (click)=\"handleButtonClick('increment')\"\n >\n <tedi-icon name=\"add\" [size]=\"18\" />\n </button>\n</div>\n@if (feedbackText(); as feedback) {\n <tedi-feedback-text\n [attr.id]=\"feedbackId()\"\n [text]=\"feedback.text\"\n [type]=\"feedback.type\"\n [position]=\"feedback.position\"\n />\n}\n", styles: [".tedi-number-field{display:flex}.tedi-number-field:hover:not(.tedi-number-field--disabled) .tedi-number-field__button:not(:disabled),.tedi-number-field:hover:not(.tedi-number-field--disabled) .tedi-number-field__input-wrapper:not(:disabled){border-color:var(--form-input-border-hover)}.tedi-number-field .tedi-number-field__button{--general-icon-primary: currentcolor;width:var(--form-field-height);height:var(--form-field-height);border:var(--borders-01) solid var(--form-input-border-default)}.tedi-number-field .tedi-number-field__button:disabled{background-color:var(--form-input-background-disabled);border:var(--borders-01) solid var(--form-input-border-disabled);opacity:.5}.tedi-number-field .tedi-number-field__button--decrement{z-index:2;margin-right:calc(-1 * var(--borders-01));border-radius:0;border-top-left-radius:var(--button-radius-sm);border-bottom-left-radius:var(--button-radius-sm)}.tedi-number-field .tedi-number-field__button--increment{margin-left:calc(-1 * var(--borders-01));border-radius:0;border-top-right-radius:var(--button-radius-sm);border-bottom-right-radius:var(--button-radius-sm)}.tedi-number-field .tedi-number-field__button--small{width:var(--form-field-height-sm);height:var(--form-field-height-sm)}.tedi-number-field--invalid:not(.tedi-number-field--disabled) .tedi-number-field__button,.tedi-number-field--invalid:not(.tedi-number-field--disabled) .tedi-number-field__button:disabled,.tedi-number-field--invalid:not(.tedi-number-field--disabled) .tedi-number-field__button:hover,.tedi-number-field--invalid:not(.tedi-number-field--disabled) .tedi-number-field__input-wrapper{border-color:var(--form-general-feedback-error-border)}.tedi-number-field--invalid:not(.tedi-number-field--disabled) .tedi-number-field__input-wrapper:focus-within{outline-color:var(--form-general-feedback-error-border)}.tedi-number-field--invalid:not(.tedi-number-field--disabled) .tedi-number-field__input-wrapper:active{z-index:2;outline:none;border-color:var(--form-general-feedback-error-border);border-radius:0}.tedi-number-field--disabled .tedi-number-field__button,.tedi-number-field--disabled .tedi-number-field__button:disabled,.tedi-number-field--disabled .tedi-number-field__input-wrapper{background-color:var(--form-input-background-disabled);border-color:var(--form-input-border-disabled)}.tedi-number-field--disabled .tedi-number-field__input-wrapper{background-color:var(--form-input-background-disabled);opacity:.5}.tedi-number-field--disabled .tedi-number-field__input-wrapper .tedi-number-field__input{background-color:var(--form-input-background-disabled)}.tedi-number-field__input-wrapper{display:grid;grid-template-columns:repeat(2,1fr);gap:var(--form-field-inner-spacing-sm);align-items:stretch;width:var(--form-number-input-min-width);height:var(--form-field-height);padding-right:var(--form-field-padding-y-3-default);padding-left:var(--form-field-padding-y-3-default);background-color:var(--form-input-background-default);border:var(--borders-01) solid var(--form-input-border-default)}.tedi-number-field__input-wrapper:focus-within{z-index:2;outline:calc(2 * var(--borders-01)) solid var(--form-input-border-active);outline-offset:var(--borders-01);border-color:var(--form-input-border-active);border-radius:var(--button-radius-sm)}.tedi-number-field__input-wrapper:active:not(.tedi-number-field__input-wrapper--disabled){z-index:2;outline:none;border-color:var(--form-input-border-active);border-radius:0}.tedi-number-field__input-wrapper--small{height:var(--form-field-height-sm)}.tedi-number-field__input-wrapper--with-suffix .tedi-number-field__input{grid-column:span 1;text-align:right}.tedi-number-field__input-wrapper--with-suffix .tedi-number-field__suffix{align-self:center;text-align:left;-webkit-user-select:none;user-select:none}.tedi-number-field__input-wrapper--full-width{width:100%}.tedi-number-field__input{grid-column:span 2;width:100%;font-size:var(--heading-h6-size);color:var(--form-input-text-filled);text-align:center;outline:none;background-color:var(--form-input-background-default);border:0;border-radius:0}.tedi-number-field__input::-webkit-outer-spin-button,.tedi-number-field__input::-webkit-inner-spin-button{appearance:none}.tedi-number-field__input[type=number]{appearance:textfield}\n"], dependencies: [{ kind: "component", type: LabelComponent, selector: "[tedi-label]", inputs: ["size", "required", "color"] }, { kind: "component", type: ButtonComponent, selector: "[tedi-button]", inputs: ["variant", "size"] }, { kind: "component", type: IconComponent, selector: "tedi-icon", inputs: ["name", "size", "color", "background", "variant", "type", "label"] }, { kind: "component", type: TextComponent, selector: "[tedi-text]", inputs: ["modifiers", "color"] }, { kind: "component", type: FeedbackTextComponent, selector: "tedi-feedback-text", inputs: ["text", "type", "position"] }, { kind: "pipe", type: TediTranslationPipe, name: "tediTranslate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
5188
|
+
], viewQueries: [{ propertyName: "inputElement", first: true, predicate: ["inputElement"], descendants: true, isSignal: true }, { propertyName: "calendarGrid", first: true, predicate: ["gridElement"], descendants: true, isSignal: true }, { propertyName: "popover", first: true, predicate: PopoverComponent, descendants: true, isSignal: true }], ngImport: i0, template: "<input\n #inputElement\n type=\"text\"\n class=\"tedi-date-picker__input\"\n role=\"combobox\"\n aria-autocomplete=\"none\"\n aria-haspopup=\"dialog\"\n [class.tedi-date-picker__input--small]=\"inputSize() === 'small'\"\n [class.tedi-date-picker__input--valid]=\"inputState() === 'valid'\"\n [class.tedi-date-picker__input--error]=\"inputState() === 'error'\"\n [attr.id]=\"inputId()\"\n [attr.placeholder]=\"inputPlaceholder()\"\n [attr.aria-expanded]=\"!fieldDisabled() && popover().floatUiComponent().state\"\n [attr.aria-controls]=\"uniqueId\"\n [attr.aria-readonly]=\"!allowManualInput()\"\n [readOnly]=\"!allowManualInput()\"\n [value]=\"inputValue()\"\n [disabled]=\"fieldDisabled()\"\n (input)=\"onInput($event)\"\n (blur)=\"onInputBlur()\"\n (click)=\"onInputClick()\"\n/>\n<div class=\"tedi-date-picker__input-buttons\">\n @if (selected()) {\n <button\n tedi-closing-button\n type=\"button\"\n size=\"small\"\n class=\"tedi-date-picker__clear\"\n [iconSize]=\"18\"\n [ariaLabel]=\"'date-picker.clear-date' | tediTranslate\"\n [disabled]=\"fieldDisabled()\"\n (click)=\"clearInput()\"\n ></button>\n <tedi-separator axis=\"vertical\" size=\"1rem\" />\n }\n <tedi-popover\n style=\"display: flex; align-items: center\"\n position=\"bottom-end\"\n [withArrow]=\"false\"\n [preventOverflow]=\"true\"\n >\n <button\n tedi-button\n tedi-popover-trigger\n type=\"button\"\n variant=\"neutral\"\n size=\"small\"\n class=\"tedi-date-picker__toggle\"\n [attr.aria-label]=\"'date-picker.open-calendar' | tediTranslate\"\n [disabled]=\"fieldDisabled()\"\n (click)=\"openCalendar()\"\n >\n <tedi-icon name=\"calendar_today\" size=\"inherit\" />\n </button>\n <tedi-popover-content maxWidth=\"none\" style=\"padding: 0\">\n <div\n class=\"tedi-date-picker__calendar\"\n (keydown)=\"onCalendarKeyDown($event)\"\n >\n <tedi-date-picker-header\n [uniqueId]=\"uniqueId\"\n [currentView]=\"currentView()\"\n [month]=\"month()\"\n [monthMode]=\"monthMode()\"\n [yearMode]=\"yearMode()\"\n [showNavigation]=\"showNavigation()\"\n [canGoPrev]=\"canGoPrev()\"\n [canGoNext]=\"canGoNext()\"\n [selectedYear]=\"selectedYear()\"\n [years]=\"years()\"\n [pagedYears]=\"pagedYears()\"\n [hasPrevYearPage]=\"hasPrevYearPage()\"\n [hasNextYearPage]=\"hasNextYearPage()\"\n [disabledMonths]=\"disabledMonths()\"\n [disabledYears]=\"disabledYears()\"\n (prevMonth)=\"prevMonth()\"\n (nextMonth)=\"nextMonth()\"\n (monthSelect)=\"onMonthSelect($event)\"\n (yearSelect)=\"onYearSelect($event)\"\n (monthClick)=\"onMonthClick()\"\n (yearClick)=\"onYearClick()\"\n (prevYearPage)=\"prevYearPage()\"\n (nextYearPage)=\"nextYearPage()\"\n />\n\n @if (currentView() === \"calendar-grid\") {\n <tedi-date-picker-calendar-grid\n #gridElement\n [gridId]=\"uniqueId\"\n [weekRows]=\"weekRows()\"\n [weekNumbers]=\"weekNumbers()\"\n [showWeekNumbers]=\"showWeekNumbers()\"\n [activeDate]=\"activeDate()\"\n [selected]=\"selected()\"\n [today]=\"today\"\n (daySelect)=\"selectDay($event)\"\n (dayKeydown)=\"onDayKeydown($event.event, $event.date)\"\n />\n } @else if (currentView() === \"month-grid\") {\n <tedi-date-picker-month-grid\n [currentMonth]=\"month()\"\n (monthSelect)=\"onMonthSelect($event)\"\n />\n } @else if (currentView() === \"year-grid\") {\n <tedi-date-picker-year-grid\n [pagedYears]=\"pagedYears()\"\n [selectedYear]=\"selectedYear()\"\n (yearSelect)=\"onYearSelect($event)\"\n />\n }\n </div>\n </tedi-popover-content>\n </tedi-popover>\n</div>\n", styles: ["tedi-date-picker{display:flex;gap:var(--form-field-inner-spacing);align-self:stretch;min-height:var(--form-field-height);padding-right:var(--form-field-padding-x-md-default);background:var(--form-input-background-default);border:var(--borders-01) solid var(--form-input-border-default);border-radius:var(--form-field-radius)}tedi-date-picker:has(.tedi-date-picker__input:hover):not(:has(.tedi-date-picker__input:disabled)){border-color:var(--form-input-border-hover)}tedi-date-picker:has(.tedi-date-picker__input:active):not(:has(.tedi-date-picker__input:disabled)),tedi-date-picker:has(.tedi-date-picker__input:focus):not(:has(.tedi-date-picker__input:disabled)){border-color:var(--form-input-border-active);box-shadow:0 0 0 1px var(--form-input-border-active)}tedi-date-picker:has(.tedi-date-picker__input:disabled){cursor:not-allowed;background:var(--form-input-background-disabled);border-color:var(--form-input-border-disabled)}tedi-date-picker:has(.tedi-date-picker__input--valid){border-color:var(--form-general-feedback-success-border)}tedi-date-picker:has(.tedi-date-picker__input--error){border-color:var(--form-general-feedback-error-border)}tedi-date-picker:has(.tedi-date-picker__input--small){min-height:var(--form-field-height-sm)}.tedi-date-picker__input{flex:1;min-width:0;padding-left:var(--form-field-padding-x-md-default);font-size:var(--body-regular-size);color:var(--form-input-text-filled);border:0;border-radius:var(--form-field-radius)}.tedi-date-picker__input::placeholder{color:var(--form-input-text-placeholder)}.tedi-date-picker__input:disabled{cursor:not-allowed}.tedi-date-picker__input-buttons{display:flex;gap:var(--layout-grid-gutters-04);align-items:center;align-self:center;justify-content:center;min-width:0}.tedi-date-picker__clear:disabled{cursor:not-allowed}.tedi-date-picker__toggle{width:var(--button-xs-icon-size)!important;height:var(--form-field-button-height-sm)!important;font-size:1.125rem!important;border-radius:var(--button-radius-sm)!important}.tedi-date-picker__toggle:disabled{cursor:not-allowed}.tedi-date-picker__calendar{display:block;width:fit-content;-webkit-user-select:none;user-select:none;background:var(--card-background-primary);border-radius:var(--card-radius-rounded)}.tedi-date-picker__header{display:flex;gap:var(--layout-grid-gutters-08);align-items:center;justify-content:space-between;padding:var(--card-padding-md-default) var(--card-padding-md-default) var(--card-padding-xs) var(--card-padding-md-default)}.tedi-date-picker__controls{display:flex;gap:var(--layout-grid-gutters-08);align-items:center;margin:0 auto}.tedi-date-picker__dropdown-trigger{display:inline-flex;gap:var(--layout-grid-gutters-02);align-items:center;padding:0;padding-left:var(--layout-grid-gutters-04);font-size:1rem;font-weight:500;color:var(--general-text-primary);cursor:pointer;background:transparent;border:0;border-radius:var(--button-radius-sm)}.tedi-date-picker__dropdown-trigger:hover{color:var(--button-main-neutral-text-hover);background:var(--button-main-neutral-icon-only-background-hover)}.tedi-date-picker__dropdown-trigger:hover tedi-icon{color:var(--button-main-neutral-text-hover)}.tedi-date-picker__dropdown-trigger:active{color:var(--button-main-neutral-text-active);background:var(--button-main-neutral-icon-only-background-active)}.tedi-date-picker__dropdown-trigger:active tedi-icon{color:var(--button-main-neutral-text-active)}.tedi-date-picker__dropdown-trigger:focus-visible{outline:var(--borders-02) solid var(--tedi-primary-500);outline-offset:var(--borders-01)}.tedi-date-picker__dropdown-trigger tedi-icon{font-size:2rem;color:var(--general-icon-tertiary)}.tedi-date-picker__dropdown-content{max-height:15rem}.tedi-date-picker__dropdown-content--month{width:10rem}.tedi-date-picker__dropdown-content--year{width:8.75rem}.tedi-date-picker__label{font-weight:500;color:var(--general-text-primary)}.tedi-date-picker__nav{font-size:var(--button-icon-inner-icon-only-size)!important}.tedi-date-picker__weekdays{display:grid;grid-template-columns:repeat(7,1fr);padding:0 var(--card-padding-md-default)}.tedi-date-picker__weekdays--numbered{grid-template-columns:repeat(8,1fr)}.tedi-date-picker__weekday{display:flex;align-items:center;justify-content:center;width:var(--form-calendar-date-width);height:var(--form-calendar-date-width);font-size:var(--body-small-regular-size);color:var(--general-text-tertiary);text-align:center;text-transform:uppercase;border-bottom:var(--borders-01) solid var(--general-border-primary)}.tedi-date-picker__grid{display:flex;flex-direction:column;padding:0 var(--card-padding-md-default) var(--card-padding-md-default) var(--card-padding-md-default)}.tedi-date-picker__row{display:grid;grid-template-columns:repeat(7,1fr)}.tedi-date-picker__row--numbered{grid-template-columns:repeat(8,1fr)}.tedi-date-picker__weeknumber{display:flex;flex-shrink:0;align-items:center;justify-content:center;width:var(--form-calendar-date-width);height:var(--form-calendar-date-width);font-size:var(--body-small-regular-size);color:var(--general-text-tertiary);border-right:var(--borders-01) solid var(--general-border-primary)}.tedi-date-picker__day{display:flex;flex-shrink:0;align-items:center;justify-content:center;width:var(--form-calendar-date-width);height:var(--form-calendar-date-width);font-size:var(--body-regular-size);color:var(--general-text-primary);cursor:pointer;background:none;border:none;border-radius:var(--button-radius-sm)}.tedi-date-picker__day:hover{background:var(--form-datepicker-date-hover)}.tedi-date-picker__day:active{background:var(--form-datepicker-date-active)}.tedi-date-picker__day:disabled{cursor:not-allowed;opacity:.3}.tedi-date-picker__day:focus-visible{outline:var(--borders-02) solid var(--tedi-primary-500);outline-offset:var(--borders-01)}.tedi-date-picker__day--other-month{color:var(--form-datepicker-date-text-muted)}.tedi-date-picker__day--selected{color:var(--form-datepicker-date-text-selected);background:var(--form-datepicker-date-selected);border-radius:var(--button-radius-sm)}.tedi-date-picker__day--selected:hover{background:var(--form-datepicker-date-selected)}.tedi-date-picker__day--selected .tedi-date-picker__today{border-color:var(--form-datepicker-today-border-secondary)}.tedi-date-picker__today{display:flex;flex-shrink:0;align-items:center;justify-content:center;width:var(--form-calendar-date-width);height:var(--form-calendar-date-width);border:var(--borders-01) solid var(--form-datepicker-today-border);border-radius:var(--button-radius-default)}.tedi-date-picker__month-year-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:var(--layout-grid-gutters-08);padding:var(--card-padding-md-default)}.tedi-date-picker__month-year-button{display:flex;align-items:center;justify-content:center;padding:var(--form-checkbox-radio-card-radio-padding-y) var(--form-checkbox-radio-card-radio-padding-x);font-size:var(--body-regular-size);color:var(--form-checkbox-radio-card-primary-default-text);background:var(--form-checkbox-radio-card-secondary-default-background);border:var(--borders-01) solid var(--form-checkbox-radio-card-secondary-default-border);border-radius:var(--form-checkbox-radio-card-radius)}.tedi-date-picker__month-year-button:hover{color:var(--form-checkbox-radio-card-secondary-hover-text);background:var(--form-checkbox-radio-card-secondary-hover-background);border-color:var(--form-checkbox-radio-card-secondary-hover-border)}.tedi-date-picker__month-year-button:focus-visible{outline:var(--borders-02) solid var(--tedi-primary-500);outline-offset:var(--borders-01)}.tedi-date-picker__month-year-button:disabled{color:var(--form-checkbox-radio-card-secondary-disabled-default-text);cursor:not-allowed;background:var(--form-checkbox-radio-card-secondary-disabled-default-background);border-color:var(--form-checkbox-radio-card-secondary-disabled-default-border)}.tedi-date-picker__month-year-button--selected{color:var(--form-checkbox-radio-card-secondary-selected-text);background:var(--form-checkbox-radio-card-secondary-selected-background);border-color:var(--form-checkbox-radio-card-secondary-selected-border);box-shadow:0 0 0 1px var(--form-checkbox-radio-card-secondary-selected-border)}.tedi-date-picker__month-year-button--selected:disabled{color:var(--form-checkbox-radio-card-secondary-disabled-selected-text);cursor:not-allowed;background:var(--form-checkbox-radio-card-secondary-disabled-selected-background);border-color:var(--form-checkbox-radio-card-secondary-disabled-selected-border);box-shadow:0 0 0 1px var(--form-checkbox-radio-card-secondary-disabled-selected-border)}\n"], dependencies: [{ kind: "component", type: ButtonComponent, selector: "[tedi-button]", inputs: ["variant", "size"] }, { kind: "component", type: IconComponent, selector: "tedi-icon", inputs: ["name", "size", "color", "background", "variant", "type", "label"] }, { kind: "component", type: ClosingButtonComponent, selector: "button[tedi-closing-button]", inputs: ["size", "iconSize", "ariaLabel"] }, { kind: "component", type: SeparatorComponent, selector: "tedi-separator", inputs: ["axis", "color", "variant", "dotSize", "dotFilled", "thickness", "spacing", "size"] }, { kind: "component", type: PopoverComponent, selector: "tedi-popover", inputs: ["position", "preventOverflow", "dismissible", "hideOnScroll", "withBorder", "withArrow", "lockScroll", "appendTo", "timeoutDelay"] }, { kind: "directive", type: PopoverTriggerDirective, selector: "[tedi-popover-trigger]", inputs: ["underline"] }, { kind: "component", type: PopoverContentComponent, selector: "tedi-popover-content", inputs: ["maxWidth", "title", "showClose"] }, { kind: "component", type: DatePickerHeaderComponent, selector: "tedi-date-picker-header", inputs: ["uniqueId", "currentView", "month", "monthMode", "yearMode", "showNavigation", "canGoPrev", "canGoNext", "selectedYear", "years", "pagedYears", "hasPrevYearPage", "hasNextYearPage", "disabledMonths", "disabledYears"], outputs: ["prevMonth", "nextMonth", "monthSelect", "yearSelect", "monthClick", "yearClick", "prevYearPage", "nextYearPage"] }, { kind: "component", type: DatePickerCalendarGridComponent, selector: "tedi-date-picker-calendar-grid", inputs: ["gridId", "weekRows", "weekNumbers", "showWeekNumbers", "activeDate", "selected", "today"], outputs: ["daySelect", "dayKeydown"] }, { kind: "component", type: DatePickerMonthGridComponent, selector: "tedi-date-picker-month-grid", inputs: ["currentMonth"], outputs: ["monthSelect"] }, { kind: "component", type: DatePickerYearGridComponent, selector: "tedi-date-picker-year-grid", inputs: ["pagedYears", "selectedYear"], outputs: ["yearSelect"] }, { kind: "pipe", type: TediTranslationPipe, name: "tediTranslate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
4086
5189
|
}
|
|
4087
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type:
|
|
5190
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: DatePickerComponent, decorators: [{
|
|
4088
5191
|
type: Component,
|
|
4089
|
-
args: [{ selector: "tedi-
|
|
4090
|
-
LabelComponent,
|
|
5192
|
+
args: [{ standalone: true, selector: "tedi-date-picker", encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, imports: [
|
|
4091
5193
|
ButtonComponent,
|
|
4092
5194
|
IconComponent,
|
|
4093
|
-
|
|
4094
|
-
|
|
4095
|
-
|
|
5195
|
+
ClosingButtonComponent,
|
|
5196
|
+
SeparatorComponent,
|
|
5197
|
+
PopoverComponent,
|
|
5198
|
+
PopoverTriggerDirective,
|
|
5199
|
+
PopoverContentComponent,
|
|
5200
|
+
DatePickerHeaderComponent,
|
|
5201
|
+
DatePickerCalendarGridComponent,
|
|
5202
|
+
DatePickerMonthGridComponent,
|
|
5203
|
+
DatePickerYearGridComponent,
|
|
5204
|
+
TediTranslationPipe
|
|
4096
5205
|
], providers: [
|
|
4097
5206
|
{
|
|
4098
5207
|
provide: NG_VALUE_ACCESSOR,
|
|
4099
|
-
useExisting: forwardRef(() =>
|
|
5208
|
+
useExisting: forwardRef(() => DatePickerComponent),
|
|
4100
5209
|
multi: true,
|
|
4101
5210
|
},
|
|
4102
|
-
], template: "@if (label()) {\n <label tedi-label [for]=\"inputId()\" [required]=\"required()\" [size]=\"size()\">\n {{ label() }}\n </label>\n}\n<div\n [class]=\"{\n 'tedi-number-field': true,\n 'tedi-number-field--invalid': isInvalid(),\n 'tedi-number-field--disabled': isDisabled(),\n }\"\n>\n <button\n tedi-button\n type=\"button\"\n variant=\"secondary\"\n [class]=\"{\n 'tedi-number-field__button': true,\n 'tedi-number-field__button--decrement': true,\n 'tedi-number-field__button--small': size() === 'small',\n }\"\n [disabled]=\"decrementDisabled()\"\n [attr.aria-label]=\"'numberField.decrement' | tediTranslate: step()\"\n (click)=\"handleButtonClick('decrement')\"\n >\n <tedi-icon name=\"remove\" [size]=\"18\" />\n </button>\n <div\n [class]=\"{\n 'tedi-number-field__input-wrapper': true,\n 'tedi-number-field__input-wrapper--small': size() === 'small',\n 'tedi-number-field__input-wrapper--disabled': isDisabled(),\n 'tedi-number-field__input-wrapper--with-suffix': suffix(),\n 'tedi-number-field__input-wrapper--full-width': fullWidth(),\n }\"\n (click)=\"focus()\"\n >\n <input\n #inputElement\n [id]=\"inputId()\"\n type=\"number\"\n inputmode=\"numeric\"\n class=\"tedi-number-field__input\"\n [value]=\"value()\"\n [disabled]=\"isDisabled()\"\n [required]=\"required()\"\n [attr.min]=\"min()\"\n [attr.max]=\"max()\"\n [attr.step]=\"step()\"\n [attr.aria-invalid]=\"isInvalid()\"\n [attr.aria-describedby]=\"feedbackId()\"\n (input)=\"handleInputChange($event)\"\n (blur)=\"handleBlur()\"\n />\n @if (suffix()) {\n <small tedi-text color=\"tertiary\" class=\"tedi-number-field__suffix\">\n {{ suffix() }}\n </small>\n }\n </div>\n <button\n tedi-button\n type=\"button\"\n variant=\"secondary\"\n [class]=\"{\n 'tedi-number-field__button': true,\n 'tedi-number-field__button--increment': true,\n 'tedi-number-field__button--small': size() === 'small',\n }\"\n [disabled]=\"incrementDisabled()\"\n [attr.aria-label]=\"'numberField.increment' | tediTranslate: step()\"\n (click)=\"handleButtonClick('increment')\"\n >\n <tedi-icon name=\"add\" [size]=\"18\" />\n </button>\n</div>\n@if (feedbackText(); as feedback) {\n <tedi-feedback-text\n [attr.id]=\"feedbackId()\"\n [text]=\"feedback.text\"\n [type]=\"feedback.type\"\n [position]=\"feedback.position\"\n />\n}\n", styles: [".tedi-number-field{display:flex}.tedi-number-field:hover:not(.tedi-number-field--disabled) .tedi-number-field__button:not(:disabled),.tedi-number-field:hover:not(.tedi-number-field--disabled) .tedi-number-field__input-wrapper:not(:disabled){border-color:var(--form-input-border-hover)}.tedi-number-field .tedi-number-field__button{--general-icon-primary: currentcolor;width:var(--form-field-height);height:var(--form-field-height);border:var(--borders-01) solid var(--form-input-border-default)}.tedi-number-field .tedi-number-field__button:disabled{background-color:var(--form-input-background-disabled);border:var(--borders-01) solid var(--form-input-border-disabled);opacity:.5}.tedi-number-field .tedi-number-field__button--decrement{z-index:2;margin-right:calc(-1 * var(--borders-01));border-radius:0;border-top-left-radius:var(--button-radius-sm);border-bottom-left-radius:var(--button-radius-sm)}.tedi-number-field .tedi-number-field__button--increment{margin-left:calc(-1 * var(--borders-01));border-radius:0;border-top-right-radius:var(--button-radius-sm);border-bottom-right-radius:var(--button-radius-sm)}.tedi-number-field .tedi-number-field__button--small{width:var(--form-field-height-sm);height:var(--form-field-height-sm)}.tedi-number-field--invalid:not(.tedi-number-field--disabled) .tedi-number-field__button,.tedi-number-field--invalid:not(.tedi-number-field--disabled) .tedi-number-field__button:disabled,.tedi-number-field--invalid:not(.tedi-number-field--disabled) .tedi-number-field__button:hover,.tedi-number-field--invalid:not(.tedi-number-field--disabled) .tedi-number-field__input-wrapper{border-color:var(--form-general-feedback-error-border)}.tedi-number-field--invalid:not(.tedi-number-field--disabled) .tedi-number-field__input-wrapper:focus-within{outline-color:var(--form-general-feedback-error-border)}.tedi-number-field--invalid:not(.tedi-number-field--disabled) .tedi-number-field__input-wrapper:active{z-index:2;outline:none;border-color:var(--form-general-feedback-error-border);border-radius:0}.tedi-number-field--disabled .tedi-number-field__button,.tedi-number-field--disabled .tedi-number-field__button:disabled,.tedi-number-field--disabled .tedi-number-field__input-wrapper{background-color:var(--form-input-background-disabled);border-color:var(--form-input-border-disabled)}.tedi-number-field--disabled .tedi-number-field__input-wrapper{background-color:var(--form-input-background-disabled);opacity:.5}.tedi-number-field--disabled .tedi-number-field__input-wrapper .tedi-number-field__input{background-color:var(--form-input-background-disabled)}.tedi-number-field__input-wrapper{display:grid;grid-template-columns:repeat(2,1fr);gap:var(--form-field-inner-spacing-sm);align-items:stretch;width:var(--form-number-input-min-width);height:var(--form-field-height);padding-right:var(--form-field-padding-y-3-default);padding-left:var(--form-field-padding-y-3-default);background-color:var(--form-input-background-default);border:var(--borders-01) solid var(--form-input-border-default)}.tedi-number-field__input-wrapper:focus-within{z-index:2;outline:calc(2 * var(--borders-01)) solid var(--form-input-border-active);outline-offset:var(--borders-01);border-color:var(--form-input-border-active);border-radius:var(--button-radius-sm)}.tedi-number-field__input-wrapper:active:not(.tedi-number-field__input-wrapper--disabled){z-index:2;outline:none;border-color:var(--form-input-border-active);border-radius:0}.tedi-number-field__input-wrapper--small{height:var(--form-field-height-sm)}.tedi-number-field__input-wrapper--with-suffix .tedi-number-field__input{grid-column:span 1;text-align:right}.tedi-number-field__input-wrapper--with-suffix .tedi-number-field__suffix{align-self:center;text-align:left;-webkit-user-select:none;user-select:none}.tedi-number-field__input-wrapper--full-width{width:100%}.tedi-number-field__input{grid-column:span 2;width:100%;font-size:var(--heading-h6-size);color:var(--form-input-text-filled);text-align:center;outline:none;background-color:var(--form-input-background-default);border:0;border-radius:0}.tedi-number-field__input::-webkit-outer-spin-button,.tedi-number-field__input::-webkit-inner-spin-button{appearance:none}.tedi-number-field__input[type=number]{appearance:textfield}\n"] }]
|
|
4103
|
-
}],
|
|
4104
|
-
type: ViewChild,
|
|
4105
|
-
args: ["inputElement"]
|
|
4106
|
-
}] } });
|
|
4107
|
-
|
|
4108
|
-
class ToggleComponent {
|
|
4109
|
-
/**
|
|
4110
|
-
* The unique identifier for the input element that is associated with label.
|
|
4111
|
-
*/
|
|
4112
|
-
inputId = input.required();
|
|
4113
|
-
/**
|
|
4114
|
-
* Is toggle checked? Supports two-way binding, use with form controls.
|
|
4115
|
-
*/
|
|
4116
|
-
checked = model(false);
|
|
4117
|
-
/**
|
|
4118
|
-
* Is input disabled?
|
|
4119
|
-
* @default false
|
|
4120
|
-
*/
|
|
4121
|
-
disabled = input(false);
|
|
4122
|
-
/**
|
|
4123
|
-
* Indicates whether the input field is required.
|
|
4124
|
-
* @default false
|
|
4125
|
-
*/
|
|
4126
|
-
required = input(false);
|
|
4127
|
-
/**
|
|
4128
|
-
* Color variant of the toggle
|
|
4129
|
-
* @default primary
|
|
4130
|
-
*/
|
|
4131
|
-
variant = input("primary");
|
|
4132
|
-
/**
|
|
4133
|
-
* Type of the toggle
|
|
4134
|
-
* @default filled
|
|
4135
|
-
*/
|
|
4136
|
-
type = input("filled");
|
|
4137
|
-
/**
|
|
4138
|
-
* Size of the toggle
|
|
4139
|
-
* @default default
|
|
4140
|
-
*/
|
|
4141
|
-
size = input("default");
|
|
4142
|
-
/**
|
|
4143
|
-
* Should the toggle show lock icon. Works only with large toggle.
|
|
4144
|
-
* @default false
|
|
4145
|
-
*/
|
|
4146
|
-
icon = input(false);
|
|
4147
|
-
inputRef;
|
|
4148
|
-
onChange = () => { };
|
|
4149
|
-
onTouched = () => { };
|
|
4150
|
-
writeValue(checked) {
|
|
4151
|
-
this.checked.set(checked);
|
|
4152
|
-
}
|
|
4153
|
-
registerOnChange(fn) {
|
|
4154
|
-
this.onChange = fn;
|
|
4155
|
-
}
|
|
4156
|
-
registerOnTouched(fn) {
|
|
4157
|
-
this.onTouched = fn;
|
|
4158
|
-
}
|
|
4159
|
-
focus() {
|
|
4160
|
-
this.inputRef.nativeElement.focus();
|
|
4161
|
-
}
|
|
4162
|
-
blur() {
|
|
4163
|
-
this.inputRef.nativeElement.blur();
|
|
4164
|
-
this.onTouched();
|
|
4165
|
-
}
|
|
4166
|
-
handleChange = (event) => {
|
|
4167
|
-
const target = event.target;
|
|
4168
|
-
this.checked.set(target.checked);
|
|
4169
|
-
this.onChange(target.checked);
|
|
4170
|
-
};
|
|
4171
|
-
classes = computed(() => {
|
|
4172
|
-
return [
|
|
4173
|
-
"tedi-toggle",
|
|
4174
|
-
`tedi-toggle--${this.variant()}-${this.type()}`,
|
|
4175
|
-
`tedi-toggle--size-${this.size()}`,
|
|
4176
|
-
].join(" ");
|
|
4177
|
-
});
|
|
4178
|
-
iconColor = computed(() => {
|
|
4179
|
-
if (this.type() === "outlined") {
|
|
4180
|
-
return 'white';
|
|
4181
|
-
}
|
|
4182
|
-
switch (this.variant()) {
|
|
4183
|
-
case "primary":
|
|
4184
|
-
return this.checked() ? "brand" : "tertiary";
|
|
4185
|
-
case "colored":
|
|
4186
|
-
return this.checked() ? "success" : "danger";
|
|
4187
|
-
}
|
|
4188
|
-
});
|
|
4189
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: ToggleComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
4190
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.15", type: ToggleComponent, isStandalone: true, selector: "tedi-toggle", inputs: { inputId: { classPropertyName: "inputId", publicName: "inputId", isSignal: true, isRequired: true, transformFunction: null }, checked: { classPropertyName: "checked", publicName: "checked", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null }, required: { classPropertyName: "required", publicName: "required", isSignal: true, isRequired: false, transformFunction: null }, variant: { classPropertyName: "variant", publicName: "variant", isSignal: true, isRequired: false, transformFunction: null }, type: { classPropertyName: "type", publicName: "type", isSignal: true, isRequired: false, transformFunction: null }, size: { classPropertyName: "size", publicName: "size", isSignal: true, isRequired: false, transformFunction: null }, icon: { classPropertyName: "icon", publicName: "icon", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { checked: "checkedChange" }, host: { properties: { "class": "classes()" } }, providers: [
|
|
4191
|
-
{
|
|
4192
|
-
provide: NG_VALUE_ACCESSOR,
|
|
4193
|
-
useExisting: forwardRef(() => ToggleComponent),
|
|
4194
|
-
multi: true
|
|
4195
|
-
}
|
|
4196
|
-
], viewQueries: [{ propertyName: "inputRef", first: true, predicate: ["inputElement"], descendants: true }], ngImport: i0, template: "<input\n #inputElement\n [id]=\"inputId()\"\n [checked]=\"checked()\"\n [disabled]=\"disabled()\"\n [required]=\"required()\"\n [attr.aria-checked]=\"checked()\"\n type=\"checkbox\"\n class=\"tedi-toggle__input\"\n role=\"switch\"\n (change)=\"handleChange($event)\"\n/>\n<span class=\"tedi-toggle__slider\" aria-hidden=\"true\">\n @if (icon() && size() === 'large') {\n <tedi-icon\n [name]=\"checked() ? 'lock_open_right' : 'lock'\"\n [color]=\"iconColor()\"\n [size]=\"16\"\n class=\"tedi-toggle__icon\"\n />\n }\n</span>\n", styles: [".tedi-toggle{position:relative;display:block}.tedi-toggle--size-default{--_toggle-indicator: var(--form-toggl-default-indicator);width:var(--form-toggl-default-width);height:var(--form-toggl-default-height)}.tedi-toggle--size-default .tedi-toggle__slider{width:var(--form-toggl-default-indicator);height:var(--form-toggl-default-indicator)}.tedi-toggle--size-large{--_toggle-indicator: var(--form-toggl-large-indicator);width:var(--form-toggl-large-width);height:var(--form-toggl-large-height)}.tedi-toggle--size-large .tedi-toggle__slider{width:var(--form-toggl-large-indicator);height:var(--form-toggl-large-indicator)}.tedi-toggle--primary-filled .tedi-toggle__input{background-color:var(--form-toggl-primary-inactive-default)}.tedi-toggle--primary-filled .tedi-toggle__input:hover{background-color:var(--form-toggl-primary-inactive-hover)}.tedi-toggle--primary-filled .tedi-toggle__input:active{background-color:var(--form-toggl-primary-inactive-active)}.tedi-toggle--primary-filled .tedi-toggle__input:focus-visible{outline:calc(2 * var(--borders-01)) solid var(--form-toggl-primary-active-default);outline-offset:var(--borders-01);background-color:var(--form-toggl-primary-inactive-default)}.tedi-toggle--primary-filled .tedi-toggle__input:disabled{cursor:not-allowed;background-color:var(--form-toggl-primary-inactive-default);opacity:.5}.tedi-toggle--primary-filled .tedi-toggle__input:disabled+.tedi-toggle__slider .tedi-toggle__icon{opacity:.5}.tedi-toggle--primary-filled .tedi-toggle__input+.tedi-toggle__slider{background-color:var(--form-toggl-primary-inactive-indicator)}.tedi-toggle--primary-filled .tedi-toggle__input:checked{background-color:var(--form-toggl-primary-active-default)}.tedi-toggle--primary-filled .tedi-toggle__input:checked:hover{background-color:var(--form-toggl-primary-active-hover)}.tedi-toggle--primary-filled .tedi-toggle__input:checked:active{background-color:var(--form-toggl-primary-active-active)}.tedi-toggle--primary-filled .tedi-toggle__input:checked:focus-visible{outline:calc(2 * var(--borders-01)) solid var(--form-toggl-primary-active-default);outline-offset:var(--borders-01);background-color:var(--form-toggl-primary-active-default)}.tedi-toggle--primary-filled .tedi-toggle__input:checked:disabled{cursor:not-allowed;background-color:var(--form-toggl-primary-active-default);opacity:.5}.tedi-toggle--primary-filled .tedi-toggle__input:checked:disabled+.tedi-toggle__slider .tedi-toggle__icon{opacity:.5}.tedi-toggle--primary-filled .tedi-toggle__input:checked+.tedi-toggle__slider{background-color:var(--form-toggl-primary-active-indicator)}.tedi-toggle--primary-outlined .tedi-toggle__input{border:var(--borders-01) solid var(--form-toggl-primary-inactive-default)}.tedi-toggle--primary-outlined .tedi-toggle__input+.tedi-toggle__slider{background-color:var(--form-toggl-primary-inactive-default)}.tedi-toggle--primary-outlined .tedi-toggle__input:hover{border:var(--borders-01) solid var(--form-toggl-primary-inactive-hover)}.tedi-toggle--primary-outlined .tedi-toggle__input:hover+.tedi-toggle__slider{background-color:var(--form-toggl-primary-inactive-hover)}.tedi-toggle--primary-outlined .tedi-toggle__input:active{border:var(--borders-01) solid var(--form-toggl-primary-inactive-active)}.tedi-toggle--primary-outlined .tedi-toggle__input:active+.tedi-toggle__slider{background-color:var(--form-toggl-primary-inactive-active)}.tedi-toggle--primary-outlined .tedi-toggle__input:focus-visible{outline:calc(2 * var(--borders-01)) solid var(--form-toggl-primary-active-default);outline-offset:var(--borders-01);border:var(--borders-01) solid var(--form-toggl-primary-inactive-default)}.tedi-toggle--primary-outlined .tedi-toggle__input:focus-visible+.tedi-toggle__slider{background-color:var(--form-toggl-primary-inactive-default)}.tedi-toggle--primary-outlined .tedi-toggle__input:disabled{cursor:not-allowed;border:var(--borders-01) solid var(--form-toggl-primary-inactive-default);opacity:.5}.tedi-toggle--primary-outlined .tedi-toggle__input:disabled+.tedi-toggle__slider{background-color:var(--form-toggl-primary-inactive-default)}.tedi-toggle--primary-outlined .tedi-toggle__input:disabled+.tedi-toggle__slider{opacity:.5}.tedi-toggle--primary-outlined .tedi-toggle__input:checked{border:var(--borders-01) solid var(--form-toggl-primary-active-default)}.tedi-toggle--primary-outlined .tedi-toggle__input:checked+.tedi-toggle__slider{background-color:var(--form-toggl-primary-active-default)}.tedi-toggle--primary-outlined .tedi-toggle__input:checked:hover{border:var(--borders-01) solid var(--form-toggl-primary-active-hover)}.tedi-toggle--primary-outlined .tedi-toggle__input:checked:hover+.tedi-toggle__slider{background-color:var(--form-toggl-primary-active-hover)}.tedi-toggle--primary-outlined .tedi-toggle__input:checked:active{border:var(--borders-01) solid var(--form-toggl-primary-active-active)}.tedi-toggle--primary-outlined .tedi-toggle__input:checked:active+.tedi-toggle__slider{background-color:var(--form-toggl-primary-active-active)}.tedi-toggle--primary-outlined .tedi-toggle__input:checked:focus-visible{outline:calc(2 * var(--borders-01)) solid var(--form-toggl-primary-active-default);outline-offset:var(--borders-01);border:var(--borders-01) solid var(--form-toggl-primary-active-default)}.tedi-toggle--primary-outlined .tedi-toggle__input:checked:focus-visible+.tedi-toggle__slider{background-color:var(--form-toggl-primary-active-default)}.tedi-toggle--primary-outlined .tedi-toggle__input:checked:disabled{cursor:not-allowed;border:var(--borders-01) solid var(--form-toggl-primary-active-default);opacity:.5}.tedi-toggle--primary-outlined .tedi-toggle__input:checked:disabled+.tedi-toggle__slider{background-color:var(--form-toggl-primary-active-default)}.tedi-toggle--primary-outlined .tedi-toggle__input:checked:disabled+.tedi-toggle__slider{opacity:.5}.tedi-toggle--colored-filled .tedi-toggle__input{background-color:var(--form-toggl-colored-inactive-default)}.tedi-toggle--colored-filled .tedi-toggle__input:hover{background-color:var(--form-toggl-colored-inactive-hover)}.tedi-toggle--colored-filled .tedi-toggle__input:active{background-color:var(--form-toggl-colored-inactive-active)}.tedi-toggle--colored-filled .tedi-toggle__input:focus-visible{outline:calc(2 * var(--borders-01)) solid var(--form-toggl-primary-active-default);outline-offset:var(--borders-01);background-color:var(--form-toggl-colored-inactive-default)}.tedi-toggle--colored-filled .tedi-toggle__input:disabled{cursor:not-allowed;background-color:var(--form-toggl-colored-inactive-default);opacity:.5}.tedi-toggle--colored-filled .tedi-toggle__input:disabled+.tedi-toggle__slider .tedi-toggle__icon{opacity:.5}.tedi-toggle--colored-filled .tedi-toggle__input+.tedi-toggle__slider{background-color:var(--form-toggl-colored-inactive-indicator)}.tedi-toggle--colored-filled .tedi-toggle__input:checked{background-color:var(--form-toggl-colored-active-default)}.tedi-toggle--colored-filled .tedi-toggle__input:checked:hover{background-color:var(--form-toggl-colored-active-hover)}.tedi-toggle--colored-filled .tedi-toggle__input:checked:active{background-color:var(--form-toggl-colored-active-active)}.tedi-toggle--colored-filled .tedi-toggle__input:checked:focus-visible{outline:calc(2 * var(--borders-01)) solid var(--form-toggl-primary-active-default);outline-offset:var(--borders-01);background-color:var(--form-toggl-colored-active-default)}.tedi-toggle--colored-filled .tedi-toggle__input:checked:disabled{cursor:not-allowed;background-color:var(--form-toggl-colored-active-default);opacity:.5}.tedi-toggle--colored-filled .tedi-toggle__input:checked:disabled+.tedi-toggle__slider .tedi-toggle__icon{opacity:.5}.tedi-toggle--colored-filled .tedi-toggle__input:checked+.tedi-toggle__slider{background-color:var(--form-toggl-colored-active-indicator)}.tedi-toggle--colored-outlined .tedi-toggle__input{border:var(--borders-01) solid var(--form-toggl-colored-inactive-default)}.tedi-toggle--colored-outlined .tedi-toggle__input+.tedi-toggle__slider{background-color:var(--form-toggl-colored-inactive-default)}.tedi-toggle--colored-outlined .tedi-toggle__input:hover{border:var(--borders-01) solid var(--form-toggl-colored-inactive-hover)}.tedi-toggle--colored-outlined .tedi-toggle__input:hover+.tedi-toggle__slider{background-color:var(--form-toggl-colored-inactive-hover)}.tedi-toggle--colored-outlined .tedi-toggle__input:active{border:var(--borders-01) solid var(--form-toggl-colored-inactive-active)}.tedi-toggle--colored-outlined .tedi-toggle__input:active+.tedi-toggle__slider{background-color:var(--form-toggl-colored-inactive-active)}.tedi-toggle--colored-outlined .tedi-toggle__input:focus-visible{outline:calc(2 * var(--borders-01)) solid var(--form-toggl-primary-active-default);outline-offset:var(--borders-01);border:var(--borders-01) solid var(--form-toggl-colored-inactive-default)}.tedi-toggle--colored-outlined .tedi-toggle__input:focus-visible+.tedi-toggle__slider{background-color:var(--form-toggl-colored-inactive-default)}.tedi-toggle--colored-outlined .tedi-toggle__input:disabled{cursor:not-allowed;border:var(--borders-01) solid var(--form-toggl-colored-inactive-default);opacity:.5}.tedi-toggle--colored-outlined .tedi-toggle__input:disabled+.tedi-toggle__slider{background-color:var(--form-toggl-colored-inactive-default)}.tedi-toggle--colored-outlined .tedi-toggle__input:disabled+.tedi-toggle__slider{opacity:.5}.tedi-toggle--colored-outlined .tedi-toggle__input:checked{border:var(--borders-01) solid var(--form-toggl-colored-active-default)}.tedi-toggle--colored-outlined .tedi-toggle__input:checked+.tedi-toggle__slider{background-color:var(--form-toggl-colored-active-default)}.tedi-toggle--colored-outlined .tedi-toggle__input:checked:hover{border:var(--borders-01) solid var(--form-toggl-colored-active-hover)}.tedi-toggle--colored-outlined .tedi-toggle__input:checked:hover+.tedi-toggle__slider{background-color:var(--form-toggl-colored-active-hover)}.tedi-toggle--colored-outlined .tedi-toggle__input:checked:active{border:var(--borders-01) solid var(--form-toggl-colored-active-active)}.tedi-toggle--colored-outlined .tedi-toggle__input:checked:active+.tedi-toggle__slider{background-color:var(--form-toggl-colored-active-active)}.tedi-toggle--colored-outlined .tedi-toggle__input:checked:focus-visible{outline:calc(2 * var(--borders-01)) solid var(--form-toggl-primary-active-default);outline-offset:var(--borders-01);border:var(--borders-01) solid var(--form-toggl-colored-active-default)}.tedi-toggle--colored-outlined .tedi-toggle__input:checked:focus-visible+.tedi-toggle__slider{background-color:var(--form-toggl-colored-active-default)}.tedi-toggle--colored-outlined .tedi-toggle__input:checked:disabled{cursor:not-allowed;border:var(--borders-01) solid var(--form-toggl-colored-active-default);opacity:.5}.tedi-toggle--colored-outlined .tedi-toggle__input:checked:disabled+.tedi-toggle__slider{background-color:var(--form-toggl-colored-active-default)}.tedi-toggle--colored-outlined .tedi-toggle__input:checked:disabled+.tedi-toggle__slider{opacity:.5}.tedi-toggle__input{width:100%;height:100%;margin:0;appearance:none;cursor:pointer;border-radius:var(--form-toggl-radius)}.tedi-toggle__input:checked+.tedi-toggle__slider{left:calc(100% - var(--_toggle-indicator) - var(--form-toggl-padding));transform:translateY(-50%)}.tedi-toggle__slider{position:absolute;top:50%;left:var(--form-toggl-padding);display:flex;align-items:center;justify-content:center;pointer-events:none;border-radius:50%;transform:translateY(-50%);transition:left .17s ease-out}\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 });
|
|
4197
|
-
}
|
|
4198
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: ToggleComponent, decorators: [{
|
|
4199
|
-
type: Component,
|
|
4200
|
-
args: [{ selector: "tedi-toggle", standalone: true, encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, imports: [IconComponent], providers: [
|
|
4201
|
-
{
|
|
4202
|
-
provide: NG_VALUE_ACCESSOR,
|
|
4203
|
-
useExisting: forwardRef(() => ToggleComponent),
|
|
4204
|
-
multi: true
|
|
4205
|
-
}
|
|
4206
|
-
], host: {
|
|
4207
|
-
"[class]": "classes()"
|
|
4208
|
-
}, template: "<input\n #inputElement\n [id]=\"inputId()\"\n [checked]=\"checked()\"\n [disabled]=\"disabled()\"\n [required]=\"required()\"\n [attr.aria-checked]=\"checked()\"\n type=\"checkbox\"\n class=\"tedi-toggle__input\"\n role=\"switch\"\n (change)=\"handleChange($event)\"\n/>\n<span class=\"tedi-toggle__slider\" aria-hidden=\"true\">\n @if (icon() && size() === 'large') {\n <tedi-icon\n [name]=\"checked() ? 'lock_open_right' : 'lock'\"\n [color]=\"iconColor()\"\n [size]=\"16\"\n class=\"tedi-toggle__icon\"\n />\n }\n</span>\n", styles: [".tedi-toggle{position:relative;display:block}.tedi-toggle--size-default{--_toggle-indicator: var(--form-toggl-default-indicator);width:var(--form-toggl-default-width);height:var(--form-toggl-default-height)}.tedi-toggle--size-default .tedi-toggle__slider{width:var(--form-toggl-default-indicator);height:var(--form-toggl-default-indicator)}.tedi-toggle--size-large{--_toggle-indicator: var(--form-toggl-large-indicator);width:var(--form-toggl-large-width);height:var(--form-toggl-large-height)}.tedi-toggle--size-large .tedi-toggle__slider{width:var(--form-toggl-large-indicator);height:var(--form-toggl-large-indicator)}.tedi-toggle--primary-filled .tedi-toggle__input{background-color:var(--form-toggl-primary-inactive-default)}.tedi-toggle--primary-filled .tedi-toggle__input:hover{background-color:var(--form-toggl-primary-inactive-hover)}.tedi-toggle--primary-filled .tedi-toggle__input:active{background-color:var(--form-toggl-primary-inactive-active)}.tedi-toggle--primary-filled .tedi-toggle__input:focus-visible{outline:calc(2 * var(--borders-01)) solid var(--form-toggl-primary-active-default);outline-offset:var(--borders-01);background-color:var(--form-toggl-primary-inactive-default)}.tedi-toggle--primary-filled .tedi-toggle__input:disabled{cursor:not-allowed;background-color:var(--form-toggl-primary-inactive-default);opacity:.5}.tedi-toggle--primary-filled .tedi-toggle__input:disabled+.tedi-toggle__slider .tedi-toggle__icon{opacity:.5}.tedi-toggle--primary-filled .tedi-toggle__input+.tedi-toggle__slider{background-color:var(--form-toggl-primary-inactive-indicator)}.tedi-toggle--primary-filled .tedi-toggle__input:checked{background-color:var(--form-toggl-primary-active-default)}.tedi-toggle--primary-filled .tedi-toggle__input:checked:hover{background-color:var(--form-toggl-primary-active-hover)}.tedi-toggle--primary-filled .tedi-toggle__input:checked:active{background-color:var(--form-toggl-primary-active-active)}.tedi-toggle--primary-filled .tedi-toggle__input:checked:focus-visible{outline:calc(2 * var(--borders-01)) solid var(--form-toggl-primary-active-default);outline-offset:var(--borders-01);background-color:var(--form-toggl-primary-active-default)}.tedi-toggle--primary-filled .tedi-toggle__input:checked:disabled{cursor:not-allowed;background-color:var(--form-toggl-primary-active-default);opacity:.5}.tedi-toggle--primary-filled .tedi-toggle__input:checked:disabled+.tedi-toggle__slider .tedi-toggle__icon{opacity:.5}.tedi-toggle--primary-filled .tedi-toggle__input:checked+.tedi-toggle__slider{background-color:var(--form-toggl-primary-active-indicator)}.tedi-toggle--primary-outlined .tedi-toggle__input{border:var(--borders-01) solid var(--form-toggl-primary-inactive-default)}.tedi-toggle--primary-outlined .tedi-toggle__input+.tedi-toggle__slider{background-color:var(--form-toggl-primary-inactive-default)}.tedi-toggle--primary-outlined .tedi-toggle__input:hover{border:var(--borders-01) solid var(--form-toggl-primary-inactive-hover)}.tedi-toggle--primary-outlined .tedi-toggle__input:hover+.tedi-toggle__slider{background-color:var(--form-toggl-primary-inactive-hover)}.tedi-toggle--primary-outlined .tedi-toggle__input:active{border:var(--borders-01) solid var(--form-toggl-primary-inactive-active)}.tedi-toggle--primary-outlined .tedi-toggle__input:active+.tedi-toggle__slider{background-color:var(--form-toggl-primary-inactive-active)}.tedi-toggle--primary-outlined .tedi-toggle__input:focus-visible{outline:calc(2 * var(--borders-01)) solid var(--form-toggl-primary-active-default);outline-offset:var(--borders-01);border:var(--borders-01) solid var(--form-toggl-primary-inactive-default)}.tedi-toggle--primary-outlined .tedi-toggle__input:focus-visible+.tedi-toggle__slider{background-color:var(--form-toggl-primary-inactive-default)}.tedi-toggle--primary-outlined .tedi-toggle__input:disabled{cursor:not-allowed;border:var(--borders-01) solid var(--form-toggl-primary-inactive-default);opacity:.5}.tedi-toggle--primary-outlined .tedi-toggle__input:disabled+.tedi-toggle__slider{background-color:var(--form-toggl-primary-inactive-default)}.tedi-toggle--primary-outlined .tedi-toggle__input:disabled+.tedi-toggle__slider{opacity:.5}.tedi-toggle--primary-outlined .tedi-toggle__input:checked{border:var(--borders-01) solid var(--form-toggl-primary-active-default)}.tedi-toggle--primary-outlined .tedi-toggle__input:checked+.tedi-toggle__slider{background-color:var(--form-toggl-primary-active-default)}.tedi-toggle--primary-outlined .tedi-toggle__input:checked:hover{border:var(--borders-01) solid var(--form-toggl-primary-active-hover)}.tedi-toggle--primary-outlined .tedi-toggle__input:checked:hover+.tedi-toggle__slider{background-color:var(--form-toggl-primary-active-hover)}.tedi-toggle--primary-outlined .tedi-toggle__input:checked:active{border:var(--borders-01) solid var(--form-toggl-primary-active-active)}.tedi-toggle--primary-outlined .tedi-toggle__input:checked:active+.tedi-toggle__slider{background-color:var(--form-toggl-primary-active-active)}.tedi-toggle--primary-outlined .tedi-toggle__input:checked:focus-visible{outline:calc(2 * var(--borders-01)) solid var(--form-toggl-primary-active-default);outline-offset:var(--borders-01);border:var(--borders-01) solid var(--form-toggl-primary-active-default)}.tedi-toggle--primary-outlined .tedi-toggle__input:checked:focus-visible+.tedi-toggle__slider{background-color:var(--form-toggl-primary-active-default)}.tedi-toggle--primary-outlined .tedi-toggle__input:checked:disabled{cursor:not-allowed;border:var(--borders-01) solid var(--form-toggl-primary-active-default);opacity:.5}.tedi-toggle--primary-outlined .tedi-toggle__input:checked:disabled+.tedi-toggle__slider{background-color:var(--form-toggl-primary-active-default)}.tedi-toggle--primary-outlined .tedi-toggle__input:checked:disabled+.tedi-toggle__slider{opacity:.5}.tedi-toggle--colored-filled .tedi-toggle__input{background-color:var(--form-toggl-colored-inactive-default)}.tedi-toggle--colored-filled .tedi-toggle__input:hover{background-color:var(--form-toggl-colored-inactive-hover)}.tedi-toggle--colored-filled .tedi-toggle__input:active{background-color:var(--form-toggl-colored-inactive-active)}.tedi-toggle--colored-filled .tedi-toggle__input:focus-visible{outline:calc(2 * var(--borders-01)) solid var(--form-toggl-primary-active-default);outline-offset:var(--borders-01);background-color:var(--form-toggl-colored-inactive-default)}.tedi-toggle--colored-filled .tedi-toggle__input:disabled{cursor:not-allowed;background-color:var(--form-toggl-colored-inactive-default);opacity:.5}.tedi-toggle--colored-filled .tedi-toggle__input:disabled+.tedi-toggle__slider .tedi-toggle__icon{opacity:.5}.tedi-toggle--colored-filled .tedi-toggle__input+.tedi-toggle__slider{background-color:var(--form-toggl-colored-inactive-indicator)}.tedi-toggle--colored-filled .tedi-toggle__input:checked{background-color:var(--form-toggl-colored-active-default)}.tedi-toggle--colored-filled .tedi-toggle__input:checked:hover{background-color:var(--form-toggl-colored-active-hover)}.tedi-toggle--colored-filled .tedi-toggle__input:checked:active{background-color:var(--form-toggl-colored-active-active)}.tedi-toggle--colored-filled .tedi-toggle__input:checked:focus-visible{outline:calc(2 * var(--borders-01)) solid var(--form-toggl-primary-active-default);outline-offset:var(--borders-01);background-color:var(--form-toggl-colored-active-default)}.tedi-toggle--colored-filled .tedi-toggle__input:checked:disabled{cursor:not-allowed;background-color:var(--form-toggl-colored-active-default);opacity:.5}.tedi-toggle--colored-filled .tedi-toggle__input:checked:disabled+.tedi-toggle__slider .tedi-toggle__icon{opacity:.5}.tedi-toggle--colored-filled .tedi-toggle__input:checked+.tedi-toggle__slider{background-color:var(--form-toggl-colored-active-indicator)}.tedi-toggle--colored-outlined .tedi-toggle__input{border:var(--borders-01) solid var(--form-toggl-colored-inactive-default)}.tedi-toggle--colored-outlined .tedi-toggle__input+.tedi-toggle__slider{background-color:var(--form-toggl-colored-inactive-default)}.tedi-toggle--colored-outlined .tedi-toggle__input:hover{border:var(--borders-01) solid var(--form-toggl-colored-inactive-hover)}.tedi-toggle--colored-outlined .tedi-toggle__input:hover+.tedi-toggle__slider{background-color:var(--form-toggl-colored-inactive-hover)}.tedi-toggle--colored-outlined .tedi-toggle__input:active{border:var(--borders-01) solid var(--form-toggl-colored-inactive-active)}.tedi-toggle--colored-outlined .tedi-toggle__input:active+.tedi-toggle__slider{background-color:var(--form-toggl-colored-inactive-active)}.tedi-toggle--colored-outlined .tedi-toggle__input:focus-visible{outline:calc(2 * var(--borders-01)) solid var(--form-toggl-primary-active-default);outline-offset:var(--borders-01);border:var(--borders-01) solid var(--form-toggl-colored-inactive-default)}.tedi-toggle--colored-outlined .tedi-toggle__input:focus-visible+.tedi-toggle__slider{background-color:var(--form-toggl-colored-inactive-default)}.tedi-toggle--colored-outlined .tedi-toggle__input:disabled{cursor:not-allowed;border:var(--borders-01) solid var(--form-toggl-colored-inactive-default);opacity:.5}.tedi-toggle--colored-outlined .tedi-toggle__input:disabled+.tedi-toggle__slider{background-color:var(--form-toggl-colored-inactive-default)}.tedi-toggle--colored-outlined .tedi-toggle__input:disabled+.tedi-toggle__slider{opacity:.5}.tedi-toggle--colored-outlined .tedi-toggle__input:checked{border:var(--borders-01) solid var(--form-toggl-colored-active-default)}.tedi-toggle--colored-outlined .tedi-toggle__input:checked+.tedi-toggle__slider{background-color:var(--form-toggl-colored-active-default)}.tedi-toggle--colored-outlined .tedi-toggle__input:checked:hover{border:var(--borders-01) solid var(--form-toggl-colored-active-hover)}.tedi-toggle--colored-outlined .tedi-toggle__input:checked:hover+.tedi-toggle__slider{background-color:var(--form-toggl-colored-active-hover)}.tedi-toggle--colored-outlined .tedi-toggle__input:checked:active{border:var(--borders-01) solid var(--form-toggl-colored-active-active)}.tedi-toggle--colored-outlined .tedi-toggle__input:checked:active+.tedi-toggle__slider{background-color:var(--form-toggl-colored-active-active)}.tedi-toggle--colored-outlined .tedi-toggle__input:checked:focus-visible{outline:calc(2 * var(--borders-01)) solid var(--form-toggl-primary-active-default);outline-offset:var(--borders-01);border:var(--borders-01) solid var(--form-toggl-colored-active-default)}.tedi-toggle--colored-outlined .tedi-toggle__input:checked:focus-visible+.tedi-toggle__slider{background-color:var(--form-toggl-colored-active-default)}.tedi-toggle--colored-outlined .tedi-toggle__input:checked:disabled{cursor:not-allowed;border:var(--borders-01) solid var(--form-toggl-colored-active-default);opacity:.5}.tedi-toggle--colored-outlined .tedi-toggle__input:checked:disabled+.tedi-toggle__slider{background-color:var(--form-toggl-colored-active-default)}.tedi-toggle--colored-outlined .tedi-toggle__input:checked:disabled+.tedi-toggle__slider{opacity:.5}.tedi-toggle__input{width:100%;height:100%;margin:0;appearance:none;cursor:pointer;border-radius:var(--form-toggl-radius)}.tedi-toggle__input:checked+.tedi-toggle__slider{left:calc(100% - var(--_toggle-indicator) - var(--form-toggl-padding));transform:translateY(-50%)}.tedi-toggle__slider{position:absolute;top:50%;left:var(--form-toggl-padding);display:flex;align-items:center;justify-content:center;pointer-events:none;border-radius:50%;transform:translateY(-50%);transition:left .17s ease-out}\n"] }]
|
|
4209
|
-
}], propDecorators: { inputRef: [{
|
|
4210
|
-
type: ViewChild,
|
|
4211
|
-
args: ['inputElement']
|
|
4212
|
-
}] } });
|
|
5211
|
+
], template: "<input\n #inputElement\n type=\"text\"\n class=\"tedi-date-picker__input\"\n role=\"combobox\"\n aria-autocomplete=\"none\"\n aria-haspopup=\"dialog\"\n [class.tedi-date-picker__input--small]=\"inputSize() === 'small'\"\n [class.tedi-date-picker__input--valid]=\"inputState() === 'valid'\"\n [class.tedi-date-picker__input--error]=\"inputState() === 'error'\"\n [attr.id]=\"inputId()\"\n [attr.placeholder]=\"inputPlaceholder()\"\n [attr.aria-expanded]=\"!fieldDisabled() && popover().floatUiComponent().state\"\n [attr.aria-controls]=\"uniqueId\"\n [attr.aria-readonly]=\"!allowManualInput()\"\n [readOnly]=\"!allowManualInput()\"\n [value]=\"inputValue()\"\n [disabled]=\"fieldDisabled()\"\n (input)=\"onInput($event)\"\n (blur)=\"onInputBlur()\"\n (click)=\"onInputClick()\"\n/>\n<div class=\"tedi-date-picker__input-buttons\">\n @if (selected()) {\n <button\n tedi-closing-button\n type=\"button\"\n size=\"small\"\n class=\"tedi-date-picker__clear\"\n [iconSize]=\"18\"\n [ariaLabel]=\"'date-picker.clear-date' | tediTranslate\"\n [disabled]=\"fieldDisabled()\"\n (click)=\"clearInput()\"\n ></button>\n <tedi-separator axis=\"vertical\" size=\"1rem\" />\n }\n <tedi-popover\n style=\"display: flex; align-items: center\"\n position=\"bottom-end\"\n [withArrow]=\"false\"\n [preventOverflow]=\"true\"\n >\n <button\n tedi-button\n tedi-popover-trigger\n type=\"button\"\n variant=\"neutral\"\n size=\"small\"\n class=\"tedi-date-picker__toggle\"\n [attr.aria-label]=\"'date-picker.open-calendar' | tediTranslate\"\n [disabled]=\"fieldDisabled()\"\n (click)=\"openCalendar()\"\n >\n <tedi-icon name=\"calendar_today\" size=\"inherit\" />\n </button>\n <tedi-popover-content maxWidth=\"none\" style=\"padding: 0\">\n <div\n class=\"tedi-date-picker__calendar\"\n (keydown)=\"onCalendarKeyDown($event)\"\n >\n <tedi-date-picker-header\n [uniqueId]=\"uniqueId\"\n [currentView]=\"currentView()\"\n [month]=\"month()\"\n [monthMode]=\"monthMode()\"\n [yearMode]=\"yearMode()\"\n [showNavigation]=\"showNavigation()\"\n [canGoPrev]=\"canGoPrev()\"\n [canGoNext]=\"canGoNext()\"\n [selectedYear]=\"selectedYear()\"\n [years]=\"years()\"\n [pagedYears]=\"pagedYears()\"\n [hasPrevYearPage]=\"hasPrevYearPage()\"\n [hasNextYearPage]=\"hasNextYearPage()\"\n [disabledMonths]=\"disabledMonths()\"\n [disabledYears]=\"disabledYears()\"\n (prevMonth)=\"prevMonth()\"\n (nextMonth)=\"nextMonth()\"\n (monthSelect)=\"onMonthSelect($event)\"\n (yearSelect)=\"onYearSelect($event)\"\n (monthClick)=\"onMonthClick()\"\n (yearClick)=\"onYearClick()\"\n (prevYearPage)=\"prevYearPage()\"\n (nextYearPage)=\"nextYearPage()\"\n />\n\n @if (currentView() === \"calendar-grid\") {\n <tedi-date-picker-calendar-grid\n #gridElement\n [gridId]=\"uniqueId\"\n [weekRows]=\"weekRows()\"\n [weekNumbers]=\"weekNumbers()\"\n [showWeekNumbers]=\"showWeekNumbers()\"\n [activeDate]=\"activeDate()\"\n [selected]=\"selected()\"\n [today]=\"today\"\n (daySelect)=\"selectDay($event)\"\n (dayKeydown)=\"onDayKeydown($event.event, $event.date)\"\n />\n } @else if (currentView() === \"month-grid\") {\n <tedi-date-picker-month-grid\n [currentMonth]=\"month()\"\n (monthSelect)=\"onMonthSelect($event)\"\n />\n } @else if (currentView() === \"year-grid\") {\n <tedi-date-picker-year-grid\n [pagedYears]=\"pagedYears()\"\n [selectedYear]=\"selectedYear()\"\n (yearSelect)=\"onYearSelect($event)\"\n />\n }\n </div>\n </tedi-popover-content>\n </tedi-popover>\n</div>\n", styles: ["tedi-date-picker{display:flex;gap:var(--form-field-inner-spacing);align-self:stretch;min-height:var(--form-field-height);padding-right:var(--form-field-padding-x-md-default);background:var(--form-input-background-default);border:var(--borders-01) solid var(--form-input-border-default);border-radius:var(--form-field-radius)}tedi-date-picker:has(.tedi-date-picker__input:hover):not(:has(.tedi-date-picker__input:disabled)){border-color:var(--form-input-border-hover)}tedi-date-picker:has(.tedi-date-picker__input:active):not(:has(.tedi-date-picker__input:disabled)),tedi-date-picker:has(.tedi-date-picker__input:focus):not(:has(.tedi-date-picker__input:disabled)){border-color:var(--form-input-border-active);box-shadow:0 0 0 1px var(--form-input-border-active)}tedi-date-picker:has(.tedi-date-picker__input:disabled){cursor:not-allowed;background:var(--form-input-background-disabled);border-color:var(--form-input-border-disabled)}tedi-date-picker:has(.tedi-date-picker__input--valid){border-color:var(--form-general-feedback-success-border)}tedi-date-picker:has(.tedi-date-picker__input--error){border-color:var(--form-general-feedback-error-border)}tedi-date-picker:has(.tedi-date-picker__input--small){min-height:var(--form-field-height-sm)}.tedi-date-picker__input{flex:1;min-width:0;padding-left:var(--form-field-padding-x-md-default);font-size:var(--body-regular-size);color:var(--form-input-text-filled);border:0;border-radius:var(--form-field-radius)}.tedi-date-picker__input::placeholder{color:var(--form-input-text-placeholder)}.tedi-date-picker__input:disabled{cursor:not-allowed}.tedi-date-picker__input-buttons{display:flex;gap:var(--layout-grid-gutters-04);align-items:center;align-self:center;justify-content:center;min-width:0}.tedi-date-picker__clear:disabled{cursor:not-allowed}.tedi-date-picker__toggle{width:var(--button-xs-icon-size)!important;height:var(--form-field-button-height-sm)!important;font-size:1.125rem!important;border-radius:var(--button-radius-sm)!important}.tedi-date-picker__toggle:disabled{cursor:not-allowed}.tedi-date-picker__calendar{display:block;width:fit-content;-webkit-user-select:none;user-select:none;background:var(--card-background-primary);border-radius:var(--card-radius-rounded)}.tedi-date-picker__header{display:flex;gap:var(--layout-grid-gutters-08);align-items:center;justify-content:space-between;padding:var(--card-padding-md-default) var(--card-padding-md-default) var(--card-padding-xs) var(--card-padding-md-default)}.tedi-date-picker__controls{display:flex;gap:var(--layout-grid-gutters-08);align-items:center;margin:0 auto}.tedi-date-picker__dropdown-trigger{display:inline-flex;gap:var(--layout-grid-gutters-02);align-items:center;padding:0;padding-left:var(--layout-grid-gutters-04);font-size:1rem;font-weight:500;color:var(--general-text-primary);cursor:pointer;background:transparent;border:0;border-radius:var(--button-radius-sm)}.tedi-date-picker__dropdown-trigger:hover{color:var(--button-main-neutral-text-hover);background:var(--button-main-neutral-icon-only-background-hover)}.tedi-date-picker__dropdown-trigger:hover tedi-icon{color:var(--button-main-neutral-text-hover)}.tedi-date-picker__dropdown-trigger:active{color:var(--button-main-neutral-text-active);background:var(--button-main-neutral-icon-only-background-active)}.tedi-date-picker__dropdown-trigger:active tedi-icon{color:var(--button-main-neutral-text-active)}.tedi-date-picker__dropdown-trigger:focus-visible{outline:var(--borders-02) solid var(--tedi-primary-500);outline-offset:var(--borders-01)}.tedi-date-picker__dropdown-trigger tedi-icon{font-size:2rem;color:var(--general-icon-tertiary)}.tedi-date-picker__dropdown-content{max-height:15rem}.tedi-date-picker__dropdown-content--month{width:10rem}.tedi-date-picker__dropdown-content--year{width:8.75rem}.tedi-date-picker__label{font-weight:500;color:var(--general-text-primary)}.tedi-date-picker__nav{font-size:var(--button-icon-inner-icon-only-size)!important}.tedi-date-picker__weekdays{display:grid;grid-template-columns:repeat(7,1fr);padding:0 var(--card-padding-md-default)}.tedi-date-picker__weekdays--numbered{grid-template-columns:repeat(8,1fr)}.tedi-date-picker__weekday{display:flex;align-items:center;justify-content:center;width:var(--form-calendar-date-width);height:var(--form-calendar-date-width);font-size:var(--body-small-regular-size);color:var(--general-text-tertiary);text-align:center;text-transform:uppercase;border-bottom:var(--borders-01) solid var(--general-border-primary)}.tedi-date-picker__grid{display:flex;flex-direction:column;padding:0 var(--card-padding-md-default) var(--card-padding-md-default) var(--card-padding-md-default)}.tedi-date-picker__row{display:grid;grid-template-columns:repeat(7,1fr)}.tedi-date-picker__row--numbered{grid-template-columns:repeat(8,1fr)}.tedi-date-picker__weeknumber{display:flex;flex-shrink:0;align-items:center;justify-content:center;width:var(--form-calendar-date-width);height:var(--form-calendar-date-width);font-size:var(--body-small-regular-size);color:var(--general-text-tertiary);border-right:var(--borders-01) solid var(--general-border-primary)}.tedi-date-picker__day{display:flex;flex-shrink:0;align-items:center;justify-content:center;width:var(--form-calendar-date-width);height:var(--form-calendar-date-width);font-size:var(--body-regular-size);color:var(--general-text-primary);cursor:pointer;background:none;border:none;border-radius:var(--button-radius-sm)}.tedi-date-picker__day:hover{background:var(--form-datepicker-date-hover)}.tedi-date-picker__day:active{background:var(--form-datepicker-date-active)}.tedi-date-picker__day:disabled{cursor:not-allowed;opacity:.3}.tedi-date-picker__day:focus-visible{outline:var(--borders-02) solid var(--tedi-primary-500);outline-offset:var(--borders-01)}.tedi-date-picker__day--other-month{color:var(--form-datepicker-date-text-muted)}.tedi-date-picker__day--selected{color:var(--form-datepicker-date-text-selected);background:var(--form-datepicker-date-selected);border-radius:var(--button-radius-sm)}.tedi-date-picker__day--selected:hover{background:var(--form-datepicker-date-selected)}.tedi-date-picker__day--selected .tedi-date-picker__today{border-color:var(--form-datepicker-today-border-secondary)}.tedi-date-picker__today{display:flex;flex-shrink:0;align-items:center;justify-content:center;width:var(--form-calendar-date-width);height:var(--form-calendar-date-width);border:var(--borders-01) solid var(--form-datepicker-today-border);border-radius:var(--button-radius-default)}.tedi-date-picker__month-year-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:var(--layout-grid-gutters-08);padding:var(--card-padding-md-default)}.tedi-date-picker__month-year-button{display:flex;align-items:center;justify-content:center;padding:var(--form-checkbox-radio-card-radio-padding-y) var(--form-checkbox-radio-card-radio-padding-x);font-size:var(--body-regular-size);color:var(--form-checkbox-radio-card-primary-default-text);background:var(--form-checkbox-radio-card-secondary-default-background);border:var(--borders-01) solid var(--form-checkbox-radio-card-secondary-default-border);border-radius:var(--form-checkbox-radio-card-radius)}.tedi-date-picker__month-year-button:hover{color:var(--form-checkbox-radio-card-secondary-hover-text);background:var(--form-checkbox-radio-card-secondary-hover-background);border-color:var(--form-checkbox-radio-card-secondary-hover-border)}.tedi-date-picker__month-year-button:focus-visible{outline:var(--borders-02) solid var(--tedi-primary-500);outline-offset:var(--borders-01)}.tedi-date-picker__month-year-button:disabled{color:var(--form-checkbox-radio-card-secondary-disabled-default-text);cursor:not-allowed;background:var(--form-checkbox-radio-card-secondary-disabled-default-background);border-color:var(--form-checkbox-radio-card-secondary-disabled-default-border)}.tedi-date-picker__month-year-button--selected{color:var(--form-checkbox-radio-card-secondary-selected-text);background:var(--form-checkbox-radio-card-secondary-selected-background);border-color:var(--form-checkbox-radio-card-secondary-selected-border);box-shadow:0 0 0 1px var(--form-checkbox-radio-card-secondary-selected-border)}.tedi-date-picker__month-year-button--selected:disabled{color:var(--form-checkbox-radio-card-secondary-disabled-selected-text);cursor:not-allowed;background:var(--form-checkbox-radio-card-secondary-disabled-selected-background);border-color:var(--form-checkbox-radio-card-secondary-disabled-selected-border);box-shadow:0 0 0 1px var(--form-checkbox-radio-card-secondary-disabled-selected-border)}\n"] }]
|
|
5212
|
+
}], ctorParameters: () => [] });
|
|
4213
5213
|
|
|
4214
5214
|
/**
|
|
4215
5215
|
* Injection token used by `tedi-form-field` to obtain
|
|
@@ -4366,7 +5366,7 @@ class TextFieldComponent {
|
|
|
4366
5366
|
this.clear.emit();
|
|
4367
5367
|
this.onTouched();
|
|
4368
5368
|
}
|
|
4369
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: TextFieldComponent, deps: [{ token: i0.ElementRef }, { token: i1$
|
|
5369
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: TextFieldComponent, deps: [{ token: i0.ElementRef }, { token: i1$3.NgControl, optional: true, self: true }], target: i0.ɵɵFactoryTarget.Component });
|
|
4370
5370
|
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "19.2.15", type: TextFieldComponent, isStandalone: true, selector: "input[tedi-text-field]", inputs: { value: { classPropertyName: "value", publicName: "value", isSignal: true, isRequired: false, transformFunction: null }, arrowsHidden: { classPropertyName: "arrowsHidden", publicName: "arrowsHidden", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { value: "valueChange", clear: "clear" }, host: { listeners: { "input": "handleInputChange($event)", "blur": "handleBlur()" }, properties: { "class.tedi-text-field--arrows-hidden": "arrowsHidden()", "attr.aria-invalid": "invalid() || null" }, classAttribute: "tedi-text-field" }, providers: [
|
|
4371
5371
|
{
|
|
4372
5372
|
provide: NG_VALUE_ACCESSOR,
|
|
@@ -4398,7 +5398,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImpo
|
|
|
4398
5398
|
"(input)": "handleInputChange($event)",
|
|
4399
5399
|
"(blur)": "handleBlur()",
|
|
4400
5400
|
}, styles: [".tedi-text-field{flex:1;height:100%;padding:var(--form-field-padding-y-md-default) var(--form-field-padding-x-md-default);font-size:var(--body-regular-size);font-weight:var(--body-regular-weight);line-height:var(--body-regular-line-height);color:var(--form-input-text-filled);outline:none;background:transparent;border:0;border-radius:var(--form-field-radius)}.tedi-text-field::placeholder{color:var(--form-input-text-placeholder)}.tedi-text-field:disabled{color:var(--form-input-text-disabled);cursor:not-allowed;background:transparent}.tedi-text-field--arrows-hidden::-webkit-outer-spin-button,.tedi-text-field--arrows-hidden::-webkit-inner-spin-button{appearance:none}.tedi-text-field--arrows-hidden[type=number]{appearance:textfield}.tedi-form-field--with-icon .tedi-text-field{padding-right:0}.tedi-form-field--small .tedi-text-field{padding-block:var(--form-field-padding-y-sm);padding-inline:var(--form-field-padding-x-md-default)}.tedi-form-field--large .tedi-text-field{padding-block:var(--form-field-padding-y-lg);padding-inline:var(--form-field-padding-x-lg)}\n"] }]
|
|
4401
|
-
}], ctorParameters: () => [{ type: i0.ElementRef }, { type: i1$
|
|
5401
|
+
}], ctorParameters: () => [{ type: i0.ElementRef }, { type: i1$3.NgControl, decorators: [{
|
|
4402
5402
|
type: Optional
|
|
4403
5403
|
}, {
|
|
4404
5404
|
type: Self
|
|
@@ -6139,7 +7139,7 @@ class TooltipComponent {
|
|
|
6139
7139
|
}
|
|
6140
7140
|
}
|
|
6141
7141
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: TooltipComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
6142
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.15", type: TooltipComponent, isStandalone: true, selector: "tedi-tooltip", inputs: { position: { classPropertyName: "position", publicName: "position", isSignal: true, isRequired: false, transformFunction: null }, preventOverflow: { classPropertyName: "preventOverflow", publicName: "preventOverflow", isSignal: true, isRequired: false, transformFunction: null }, openWith: { classPropertyName: "openWith", publicName: "openWith", isSignal: true, isRequired: false, transformFunction: null }, appendTo: { classPropertyName: "appendTo", publicName: "appendTo", isSignal: true, isRequired: false, transformFunction: null }, timeoutDelay: { classPropertyName: "timeoutDelay", publicName: "timeoutDelay", isSignal: true, isRequired: false, transformFunction: null } }, queries: [{ propertyName: "tooltipTrigger", first: true, predicate: TooltipTriggerComponent, descendants: true, isSignal: true }, { propertyName: "tooltipContent", first: true, predicate: TooltipContentComponent, descendants: true, read: ElementRef, isSignal: true }], viewQueries: [{ propertyName: "floatUiComponent", first: true, predicate: NgxFloatUiContentComponent, descendants: true, isSignal: true }], ngImport: i0, template: "<div\n applyClass=\"float-ui-container-tooltip\"\n ariaRole=\"tooltip\"\n ariaHidden=\"true\"\n style=\"display: contents\"\n looseTrigger=\"none\"\n [floatUiLoose]=\"floatUiComponent\"\n [loosePlacement]=\"position()\"\n [preventOverflow]=\"position().includes('auto') ? false : preventOverflow()\"\n [disableAnimation]=\"true\"\n [targetElement]=\"tooltipTrigger().host.nativeElement\"\n [appendTo]=\"appendTo()\"\n>\n <ng-content select=\"tedi-tooltip-trigger\" />\n</div>\n@if (contentText()) {\n <span [id]=\"descriptionId\" class=\"sr-only\">{{ contentText() }}</span>\n}\n<float-ui-content #floatUiComponent [style.display]=\"floatUiDisplay()\" aria-hidden=\"true\">\n <ng-content select=\"tedi-tooltip-content\" />\n</float-ui-content>\n", styles: ["tedi-tooltip{display:contents}float-ui-content .float-ui-container-tooltip{z-index:var(--z-index-tooltip);width:max-content;padding:0;border:0;border-radius:var(--popover-radius-rounded);box-shadow:0 1px 5px 0 var(--tedi-alpha-20, rgba(0, 0, 0, .2))}float-ui-content .float-ui-container-tooltip .float-ui-arrow{width:8px;height:8px;background:var(--tooltip-background);clip-path:inset(0 -5px -5px 0)}float-ui-content .float-ui-container-tooltip[data-float-ui-placement=top]{transform:translateY(-4px)}float-ui-content .float-ui-container-tooltip[data-float-ui-placement=top] .float-ui-arrow{transform:rotate(-135deg)}float-ui-content .float-ui-container-tooltip[data-float-ui-placement=bottom]{transform:translateY(4px)}float-ui-content .float-ui-container-tooltip[data-float-ui-placement=bottom] .float-ui-arrow{transform:rotate(-135deg)}float-ui-content .float-ui-container-tooltip[data-float-ui-placement=left]{transform:translate(-4px)}float-ui-content .float-ui-container-tooltip[data-float-ui-placement=left] .float-ui-arrow{transform:rotate(-45deg)}float-ui-content .float-ui-container-tooltip[data-float-ui-placement=right]{transform:translate(4px)}float-ui-content .float-ui-container-tooltip[data-float-ui-placement=right] .float-ui-arrow{transform:rotate(135deg)}tedi-tooltip-trigger{display:inline-flex}tedi-tooltip-trigger .tedi-tooltip-trigger--focus:focus-visible{outline:2px solid var(--tedi-primary-500);outline-offset:2px}tedi-tooltip-trigger .tedi-tooltip-trigger__text{text-decoration:underline dashed var(--general-border-secondary);text-underline-offset:.5em}.tedi-tooltip-content{position:relative;display:block;max-width:var(--tooltip-max-width);padding:var(--tooltip-padding-y) var(--tooltip-padding-x);color:var(--tooltip-text);background:var(--tooltip-background);border-radius:var(--tooltip-radius);box-shadow:0 1px 5px 0 var(--tedi-alpha-20, rgba(0, 0, 0, .2))}.tedi-tooltip-content--none{max-width:none}.tedi-tooltip-content--small{max-width:10rem}.tedi-tooltip-content--medium{max-width:15rem}.tedi-tooltip-content--large{max-width:30rem}\n"], dependencies: [{ kind: "ngmodule", type: NgxFloatUiModule }, { kind: "component", type: i1$
|
|
7142
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.15", type: TooltipComponent, isStandalone: true, selector: "tedi-tooltip", inputs: { position: { classPropertyName: "position", publicName: "position", isSignal: true, isRequired: false, transformFunction: null }, preventOverflow: { classPropertyName: "preventOverflow", publicName: "preventOverflow", isSignal: true, isRequired: false, transformFunction: null }, openWith: { classPropertyName: "openWith", publicName: "openWith", isSignal: true, isRequired: false, transformFunction: null }, appendTo: { classPropertyName: "appendTo", publicName: "appendTo", isSignal: true, isRequired: false, transformFunction: null }, timeoutDelay: { classPropertyName: "timeoutDelay", publicName: "timeoutDelay", isSignal: true, isRequired: false, transformFunction: null } }, queries: [{ propertyName: "tooltipTrigger", first: true, predicate: TooltipTriggerComponent, descendants: true, isSignal: true }, { propertyName: "tooltipContent", first: true, predicate: TooltipContentComponent, descendants: true, read: ElementRef, isSignal: true }], viewQueries: [{ propertyName: "floatUiComponent", first: true, predicate: NgxFloatUiContentComponent, descendants: true, isSignal: true }], ngImport: i0, template: "<div\n applyClass=\"float-ui-container-tooltip\"\n ariaRole=\"tooltip\"\n ariaHidden=\"true\"\n style=\"display: contents\"\n looseTrigger=\"none\"\n [floatUiLoose]=\"floatUiComponent\"\n [loosePlacement]=\"position()\"\n [preventOverflow]=\"position().includes('auto') ? false : preventOverflow()\"\n [disableAnimation]=\"true\"\n [targetElement]=\"tooltipTrigger().host.nativeElement\"\n [appendTo]=\"appendTo()\"\n>\n <ng-content select=\"tedi-tooltip-trigger\" />\n</div>\n@if (contentText()) {\n <span [id]=\"descriptionId\" class=\"sr-only\">{{ contentText() }}</span>\n}\n<float-ui-content #floatUiComponent [style.display]=\"floatUiDisplay()\" aria-hidden=\"true\">\n <ng-content select=\"tedi-tooltip-content\" />\n</float-ui-content>\n", styles: ["tedi-tooltip{display:contents}float-ui-content .float-ui-container-tooltip{z-index:var(--z-index-tooltip);width:max-content;padding:0;border:0;border-radius:var(--popover-radius-rounded);box-shadow:0 1px 5px 0 var(--tedi-alpha-20, rgba(0, 0, 0, .2))}float-ui-content .float-ui-container-tooltip .float-ui-arrow{width:8px;height:8px;background:var(--tooltip-background);clip-path:inset(0 -5px -5px 0)}float-ui-content .float-ui-container-tooltip[data-float-ui-placement=top]{transform:translateY(-4px)}float-ui-content .float-ui-container-tooltip[data-float-ui-placement=top] .float-ui-arrow{transform:rotate(-135deg)}float-ui-content .float-ui-container-tooltip[data-float-ui-placement=bottom]{transform:translateY(4px)}float-ui-content .float-ui-container-tooltip[data-float-ui-placement=bottom] .float-ui-arrow{transform:rotate(-135deg)}float-ui-content .float-ui-container-tooltip[data-float-ui-placement=left]{transform:translate(-4px)}float-ui-content .float-ui-container-tooltip[data-float-ui-placement=left] .float-ui-arrow{transform:rotate(-45deg)}float-ui-content .float-ui-container-tooltip[data-float-ui-placement=right]{transform:translate(4px)}float-ui-content .float-ui-container-tooltip[data-float-ui-placement=right] .float-ui-arrow{transform:rotate(135deg)}tedi-tooltip-trigger{display:inline-flex}tedi-tooltip-trigger .tedi-tooltip-trigger--focus:focus-visible{outline:2px solid var(--tedi-primary-500);outline-offset:2px}tedi-tooltip-trigger .tedi-tooltip-trigger__text{text-decoration:underline dashed var(--general-border-secondary);text-underline-offset:.5em}.tedi-tooltip-content{position:relative;display:block;max-width:var(--tooltip-max-width);padding:var(--tooltip-padding-y) var(--tooltip-padding-x);color:var(--tooltip-text);background:var(--tooltip-background);border-radius:var(--tooltip-radius);box-shadow:0 1px 5px 0 var(--tedi-alpha-20, rgba(0, 0, 0, .2))}.tedi-tooltip-content--none{max-width:none}.tedi-tooltip-content--small{max-width:10rem}.tedi-tooltip-content--medium{max-width:15rem}.tedi-tooltip-content--large{max-width:30rem}\n"], dependencies: [{ kind: "ngmodule", type: NgxFloatUiModule }, { kind: "component", type: i1$2.NgxFloatUiContentComponent, selector: "float-ui-content", exportAs: ["ngxFloatUiContent"] }, { kind: "directive", type: i1$2.NgxFloatUiLooseDirective, selector: "[floatUiLoose]", inputs: ["floatUiLoose", "loosePlacement", "looseTrigger"], exportAs: ["floatUiLoose"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
6143
7143
|
}
|
|
6144
7144
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: TooltipComponent, decorators: [{
|
|
6145
7145
|
type: Component,
|
|
@@ -6381,49 +7381,22 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImpo
|
|
|
6381
7381
|
args: ["click"]
|
|
6382
7382
|
}] } });
|
|
6383
7383
|
|
|
6384
|
-
class
|
|
6385
|
-
|
|
6386
|
-
|
|
6387
|
-
* @default 16
|
|
6388
|
-
*/
|
|
6389
|
-
size = input(16);
|
|
6390
|
-
/**
|
|
6391
|
-
* Specifies the color theme of the spinner.
|
|
6392
|
-
* The color should meet accessibility standards for color contrast.
|
|
6393
|
-
* @default primary
|
|
6394
|
-
*/
|
|
6395
|
-
color = input("primary");
|
|
6396
|
-
/**
|
|
6397
|
-
* Provides a text label for screen readers to announce the spinner's purpose or status.
|
|
6398
|
-
*/
|
|
6399
|
-
label = input();
|
|
6400
|
-
sizeConfig = {
|
|
6401
|
-
10: { strokeWidth: 4.4, r: 19.8 },
|
|
6402
|
-
16: { strokeWidth: 5.5, r: 19.25 },
|
|
6403
|
-
48: { strokeWidth: 3.6667, r: 20.1667 },
|
|
6404
|
-
};
|
|
6405
|
-
strokeWidth = computed(() => this.sizeConfig[this.size()].strokeWidth);
|
|
6406
|
-
r = computed(() => this.sizeConfig[this.size()].r);
|
|
6407
|
-
classes = computed(() => {
|
|
6408
|
-
const classList = [
|
|
6409
|
-
"tedi-spinner",
|
|
6410
|
-
`tedi-spinner--size-${this.size()}`,
|
|
6411
|
-
`tedi-spinner--color-${this.color()}`,
|
|
6412
|
-
];
|
|
6413
|
-
return classList.join(" ");
|
|
6414
|
-
});
|
|
6415
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: SpinnerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
6416
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "19.2.15", type: SpinnerComponent, isStandalone: true, selector: "tedi-spinner", inputs: { size: { classPropertyName: "size", publicName: "size", isSignal: true, isRequired: false, transformFunction: null }, color: { classPropertyName: "color", publicName: "color", isSignal: true, isRequired: false, transformFunction: null }, label: { classPropertyName: "label", publicName: "label", isSignal: true, isRequired: false, transformFunction: null } }, host: { attributes: { "role": "status", "aria-live": "polite" }, properties: { "class": "classes()", "attr.aria-label": "label() ? label() : null", "attr.aria-hidden": "!label()" } }, ngImport: i0, template: "<svg viewBox=\"0 0 44 44\" aria-hidden=\"true\">\n <circle\n class=\"tedi-spinner--inner\"\n cx=\"22\"\n cy=\"22\"\n [attr.r]=\"r()\"\n fill=\"none\"\n ></circle>\n</svg>", styles: [".tedi-spinner{display:flex;width:calc(var(--tedi-spinner-size, 16) * 1rem / 16);height:calc(var(--tedi-spinner-size, 16) * 1rem / 16);animation:1.4s linear 0s infinite normal none running tedi-spinner-outer}.tedi-spinner--inner{stroke-width:var(--tedi-spinner-stroke-width);stroke-dasharray:80,200;stroke-dashoffset:0;animation:1.4s ease-in-out 0s infinite normal none running tedi-spinner-inner}@media (prefers-reduced-motion: reduce){.tedi-spinner--inner{animation:none}}.tedi-spinner--color-primary{stroke:var(--loader-spinner-color-primary)}.tedi-spinner--color-secondary{stroke:var(--loader-spinner-color-secondary)}.tedi-spinner--size-10{--tedi-spinner-size: 10;--tedi-spinner-stroke-width: 4.4}.tedi-spinner--size-16{--tedi-spinner-size: 16;--tedi-spinner-stroke-width: 5.5}.tedi-spinner--size-48{--tedi-spinner-size: 48;--tedi-spinner-stroke-width: 3.6666666667}@media (prefers-reduced-motion: reduce){.tedi-spinner{animation:none}}@keyframes tedi-spinner-outer{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes tedi-spinner-inner{0%{stroke-dasharray:1,200;stroke-dashoffset:0}50%{stroke-dasharray:100,200;stroke-dashoffset:-15}to{stroke-dasharray:100,200;stroke-dashoffset:-125}}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
7384
|
+
class DropdownItemValueMetaComponent {
|
|
7385
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: DropdownItemValueMetaComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
7386
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.15", type: DropdownItemValueMetaComponent, isStandalone: true, selector: "tedi-dropdown-item-value-meta", host: { classAttribute: "tedi-dropdown-item-value__meta" }, ngImport: i0, template: `<ng-content />`, isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
6417
7387
|
}
|
|
6418
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type:
|
|
7388
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: DropdownItemValueMetaComponent, decorators: [{
|
|
6419
7389
|
type: Component,
|
|
6420
|
-
args: [{
|
|
6421
|
-
|
|
6422
|
-
|
|
6423
|
-
|
|
6424
|
-
|
|
6425
|
-
|
|
6426
|
-
|
|
7390
|
+
args: [{
|
|
7391
|
+
selector: "tedi-dropdown-item-value-meta",
|
|
7392
|
+
template: `<ng-content />`,
|
|
7393
|
+
standalone: true,
|
|
7394
|
+
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
7395
|
+
encapsulation: ViewEncapsulation.None,
|
|
7396
|
+
host: {
|
|
7397
|
+
class: "tedi-dropdown-item-value__meta",
|
|
7398
|
+
},
|
|
7399
|
+
}]
|
|
6427
7400
|
}] });
|
|
6428
7401
|
|
|
6429
7402
|
class ModalComponent {
|
|
@@ -6539,54 +7512,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImpo
|
|
|
6539
7512
|
args: [{ standalone: true, selector: "tedi-modal-header", imports: [ClosingButtonComponent], encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"tedi-modal-header__head\">\n <ng-content select=\"h1,h2,h3,h4,h5,h6\" />\n @if (showClose()) {\n <button tedi-closing-button (click)=\"closeModal()\"></button>\n }\n</div>\n<ng-content />\n", styles: ["h1,.h1,.tedi-h1,.text-h1,.tedi-text--h1{font-size:var(--heading-h1-size);font-weight:var(--heading-h1-weight);line-height:var(--heading-h1-line-height)}h2,.h2,.tedi-h2,.text-h2,.tedi-text--h2{font-size:var(--heading-h2-size);font-weight:var(--heading-h2-weight);line-height:var(--heading-h2-line-height)}h3,.h3,.tedi-h3,.text-h3,.tedi-text--h3{font-size:var(--heading-h3-size);font-weight:var(--heading-h3-weight);line-height:var(--heading-h3-line-height)}h4,.h4,.tedi-h4,.text-h4,.tedi-text--h4{font-size:var(--heading-h4-size);font-weight:var(--heading-h4-weight);line-height:var(--heading-h4-line-height)}h5,.h5,.tedi-h5,.text-h5,.tedi-text--h5{font-size:var(--heading-h5-size);font-weight:var(--heading-h5-weight);line-height:var(--heading-h5-line-height)}h6,.h6,.tedi-h6,.text-h6,.tedi-text--h6{font-size:var(--heading-h6-size);font-weight:var(--heading-h6-weight);line-height:var(--heading-h6-line-height)}.tedi-text--h1{font-size:var(--heading-h1-size);font-weight:var(--heading-h1-weight);line-height:var(--heading-h1-line-height)}.tedi-text--h2{font-size:var(--heading-h2-size);font-weight:var(--heading-h2-weight);line-height:var(--heading-h2-line-height)}.tedi-text--h3{font-size:var(--heading-h3-size);font-weight:var(--heading-h3-weight);line-height:var(--heading-h3-line-height)}.tedi-text--h4{font-size:var(--heading-h4-size);font-weight:var(--heading-h4-weight);line-height:var(--heading-h4-line-height)}.tedi-text--h5{font-size:var(--heading-h5-size);font-weight:var(--heading-h5-weight);line-height:var(--heading-h5-line-height)}.tedi-text--h6{font-size:var(--heading-h6-size);font-weight:var(--heading-h6-weight);line-height:var(--heading-h6-line-height)}.tedi-text--default{font-family:var(--family-default);font-size:var(--body-regular-size);font-weight:var(--body-regular-weight);line-height:var(--body-regular-line-height);color:var(--general-text-primary)}.tedi-text--small{font-size:var(--body-small-regular-size);font-weight:var(--body-small-regular-weight);line-height:var(--body-small-regular-line-height)}.text-subtitle{font-size:var(--heading-subtitle-regular-size);font-weight:var(--heading-subtitle-regular-weight);line-height:var(--heading-subtitle-regular-line-height);text-transform:uppercase}.text-subtitle.text-small{font-size:var(--heading-subtitle-small-size);font-weight:var(--heading-subtitle-small-weight);line-height:var(--heading-subtitle-small-line-height)}label{line-height:var(--body-regular-line-height);color:var(--general-text-secondary)}.text-normal{font-family:var(--family-default);font-size:var(--body-regular-size);font-weight:var(--body-regular-weight);line-height:var(--body-regular-line-height);color:var(--general-text-primary)}small,.text-small{font-size:var(--body-small-regular-size);font-weight:var(--body-small-regular-weight);line-height:var(--body-small-regular-line-height)}.text-extra-small{font-size:var(--body-extra-small-size);font-weight:var(--body-extra-small-weight);line-height:var(--body-extra-small-line-height)}.tedi-text--default,.tedi-text--primary{color:var(--general-text-primary)}.tedi-text--secondary{color:var(--general-text-secondary)}.tedi-text--tertiary{color:var(--general-text-tertiary)}.tedi-text--white{color:var(--general-text-white)}.tedi-text--disabled{color:var(--general-text-disabled)}.tedi-text--brand{color:var(--general-text-brand)}.tedi-text--success{color:var(--general-status-success-text)}.tedi-text--warning{color:var(--general-status-warning-text)}.tedi-text--danger{color:var(--general-status-danger-text)}.tedi-text--info{color:var(--general-status-info-text)}.tedi-text--neutral{color:var(--general-status-neutral-text)}.text-nowrap{white-space:nowrap}.text-break-all{word-break:break-all}.text-break-word{overflow-wrap:break-word}.text-uppercase{text-transform:uppercase}.text-lowercase{text-transform:lowercase}.text-capitalize{text-transform:capitalize}.text-capitalize-first:first-letter{text-transform:capitalize}.text-break-spaces{white-space:break-spaces}.text-inline-block{display:inline-block}.text-inline{display:inline}b,strong,.text-bold{font-weight:700}.text-thin{font-weight:300}i,.text-italic{font-style:italic}.text-center{text-align:center}.text-left{text-align:left}.text-right{text-align:right}.text-line-normal{line-height:normal}.text-line-condensed{line-height:1}.text-default{color:var(--general-text-primary)}.text-primary{color:var(--general-text-brand)}@media print{.text-primary{filter:grayscale(1)}}.text-muted{color:var(--general-text-secondary)}.text-subtle{color:var(--general-text-tertiary)}.text-disabled{color:var(--general-text-disabled)}.text-inverted{color:var(--general-text-white)}.text-positive{color:var(--general-status-success-text)}@media print{.text-positive{filter:grayscale(1)}}.text-important{color:var(--general-status-danger-text)}@media print{.text-important{filter:grayscale(1)}}.text-warning{color:var(--general-status-warning-text)}@media print{.text-warning{filter:grayscale(1)}}.tedi-modal{position:fixed;inset:0;z-index:var(--z-index-modal);display:none}.tedi-modal--open{display:block}.tedi-modal--default{--_tedi-modal-heading-padding-x: var(--modal-heading-padding-x);--_tedi-modal-heading-padding-y: var(--modal-heading-padding-y);--_tedi-modal-body-padding: var(--modal-body-padding);--_tedi-modal-footer-padding-x: var(--modal-footer-padding-x);--_tedi-modal-footer-padding-y: var(--modal-footer-padding-y)}.tedi-modal--default .tedi-modal-header__head h1,.tedi-modal--default .tedi-modal-header__head h2,.tedi-modal--default .tedi-modal-header__head h3,.tedi-modal--default .tedi-modal-header__head h4,.tedi-modal--default .tedi-modal-header__head h5,.tedi-modal--default .tedi-modal-header__head h6{font-size:var(--heading-h3-size);font-weight:var(--heading-h3-weight);line-height:var(--heading-h3-line-height)}.tedi-modal--small{--_tedi-modal-heading-padding-x: var(--modal-heading-padding-x-sm);--_tedi-modal-heading-padding-y: var(--modal-heading-padding-y-sm);--_tedi-modal-body-padding: var(--modal-body-padding-sm);--_tedi-modal-footer-padding-x: var(--modal-footer-padding-x-sm);--_tedi-modal-footer-padding-y: var(--modal-footer-padding-y-sm)}.tedi-modal--small .tedi-modal-header__head h1,.tedi-modal--small .tedi-modal-header__head h2,.tedi-modal--small .tedi-modal-header__head h3,.tedi-modal--small .tedi-modal-header__head h4,.tedi-modal--small .tedi-modal-header__head h5,.tedi-modal--small .tedi-modal-header__head h6{font-size:var(--heading-h4-size);font-weight:var(--heading-h4-weight);line-height:var(--heading-h4-line-height)}.tedi-modal--xs .tedi-modal__dialog{max-width:var(--modal-max-width-xs)}.tedi-modal--sm .tedi-modal__dialog{max-width:var(--modal-max-width-sm)}.tedi-modal--md .tedi-modal__dialog{max-width:var(--modal-max-width-md)}.tedi-modal--lg .tedi-modal__dialog{max-width:var(--modal-max-width-lg)}.tedi-modal--xl .tedi-modal__dialog{max-width:var(--modal-max-width-xl)}.tedi-modal--center .tedi-modal__dialog{top:50%;left:50%;max-height:95dvh;transform:translate(-50%,-50%)}.tedi-modal--left .tedi-modal__dialog{top:0;left:0;height:100%}.tedi-modal--right .tedi-modal__dialog{top:0;right:0;height:100%}.tedi-modal__dialog{position:fixed;display:flex;flex-direction:column;width:100%;background-color:var(--modal-background);border:var(--borders-01) solid var(--modal-border-outer);border-radius:var(--modal-radius)}.tedi-modal__backdrop{position:fixed;inset:0;background:var(--general-surface-overlay)}.tedi-modal tedi-modal-header{padding:var(--_tedi-modal-heading-padding-y) var(--_tedi-modal-heading-padding-x);border-bottom:var(--borders-01) solid var(--modal-border-inner)}.tedi-modal tedi-modal-header .tedi-modal-header__head{display:flex;gap:var(--layout-grid-gutters-08);align-items:center}.tedi-modal tedi-modal-header .tedi-modal-header__head button[tedi-closing-button]{margin-left:auto}.tedi-modal tedi-modal-content{display:flex;flex-direction:column;gap:var(--layout-grid-gutters-16);padding:var(--_tedi-modal-body-padding);overflow-y:auto}.tedi-modal tedi-modal-footer{display:flex;gap:var(--layout-grid-gutters-16);justify-content:flex-end;padding:var(--_tedi-modal-footer-padding-y) var(--_tedi-modal-footer-padding-x);border-top:var(--borders-01) solid var(--modal-border-inner)}\n"] }]
|
|
6540
7513
|
}] });
|
|
6541
7514
|
|
|
6542
|
-
class TagComponent {
|
|
6543
|
-
idGenerator = inject(_IdGenerator);
|
|
6544
|
-
uniqueId = this.idGenerator.getId('tedi-tag');
|
|
6545
|
-
/**
|
|
6546
|
-
* Whether the tag is in loading state.
|
|
6547
|
-
* When true, a spinner will be displayed inside the tag.
|
|
6548
|
-
* @default false
|
|
6549
|
-
*/
|
|
6550
|
-
loading = input(false);
|
|
6551
|
-
/**
|
|
6552
|
-
* Whether the tag can be closed.
|
|
6553
|
-
* When true, a close button will be displayed that emits the 'closed' event when clicked.
|
|
6554
|
-
* @default false
|
|
6555
|
-
*/
|
|
6556
|
-
closable = input(false);
|
|
6557
|
-
/**
|
|
6558
|
-
* The visual style of the tag.
|
|
6559
|
-
* Possible values: 'primary', 'secondary', 'danger'
|
|
6560
|
-
* @default "primary"
|
|
6561
|
-
*/
|
|
6562
|
-
type = input("primary");
|
|
6563
|
-
/**
|
|
6564
|
-
* Event emitted when the close button is clicked.
|
|
6565
|
-
*/
|
|
6566
|
-
closed = output();
|
|
6567
|
-
classes = computed(() => {
|
|
6568
|
-
const classList = [];
|
|
6569
|
-
if (this.type()) {
|
|
6570
|
-
classList.push(`tedi-tag--${this.type()}`);
|
|
6571
|
-
}
|
|
6572
|
-
return classList.join(" ");
|
|
6573
|
-
});
|
|
6574
|
-
handleClose(event) {
|
|
6575
|
-
this.closed.emit(event);
|
|
6576
|
-
}
|
|
6577
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: TagComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
6578
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.15", type: TagComponent, isStandalone: true, selector: "tedi-tag", inputs: { loading: { classPropertyName: "loading", publicName: "loading", isSignal: true, isRequired: false, transformFunction: null }, closable: { classPropertyName: "closable", publicName: "closable", isSignal: true, isRequired: false, transformFunction: null }, type: { classPropertyName: "type", publicName: "type", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { closed: "closed" }, host: { properties: { "class.tedi-tag": "true", "class.tedi-tag--loading": "loading()", "class.tedi-tag--closable": "closable()", "class": "classes()" } }, ngImport: i0, template: "@if (type() === \"danger\") {\n <span class=\"tedi-tag__icon-wrapper\">\n <tedi-icon name=\"error\" color=\"danger\" [size]=\"16\" />\n </span>\n}\n\n<span class=\"tedi-tag__content\" [attr.id]=\"uniqueId\">\n <ng-content />\n</span>\n\n@if (loading()) {\n <span class=\"tedi-tag__spinner-wrapper\">\n <tedi-spinner [size]=\"48\" />\n </span>\n} @else if (closable()) {\n <button\n type=\"button\"\n tedi-closing-button\n size=\"small\"\n [iconSize]=\"18\"\n (click)=\"handleClose($event)\"\n [attr.aria-describedby]=\"uniqueId\"\n [ariaLabel]=\"'remove' | tediTranslate\"\n >\n </button>\n}\n", styles: [".tedi-tag{--_background-color: var(--tag-primary-background);--_border-color: var(--tag-primary-border);--_line-height: var(--body-small-regular-line-height);display:inline-flex;gap:var(--tag-default-padding-x);align-items:flex-start;padding:0 var(--tag-default-padding-x);font-family:var(--family-default);font-size:var(--body-small-regular-size);font-weight:var(--body-small-regular-weight);line-height:var(--_line-height);color:var(--general-text-primary);background-color:var(--_background-color);border-radius:var(--tag-default-radius);box-shadow:inset 0 0 0 1px var(--_border-color)}.tedi-tag__content{padding:var(--tag-default-padding-y) 0}.tedi-tag__icon-wrapper{line-height:var(--_line-height)}.tedi-tag__spinner-wrapper{display:flex;align-items:center;height:calc(var(--_line-height) + var(--tag-default-padding-y))}.tedi-tag__spinner-wrapper tedi-spinner{--tedi-spinner-size: 12;--tedi-spinner-stroke: 2}.tedi-tag--closable:not(.tedi-tag--loading){padding-right:0}.tedi-tag--closable:not(.tedi-tag--loading) .tedi-closing-button{border-radius:0 var(--button-radius-sm) var(--button-radius-sm) 0}.tedi-tag--secondary{--_background-color: var(--tag-secondary-background);--_border-color: var(--tag-secondary-border)}.tedi-tag--danger{--_background-color: var(--tag-danger-background);--_border-color: var(--tag-danger-border)}\n"], dependencies: [{ kind: "component", type: SpinnerComponent, selector: "tedi-spinner", inputs: ["size", "color", "label"] }, { kind: "component", type: IconComponent, selector: "tedi-icon", inputs: ["name", "size", "color", "background", "variant", "type", "label"] }, { kind: "component", type: ClosingButtonComponent, selector: "button[tedi-closing-button]", inputs: ["size", "iconSize", "ariaLabel"] }, { kind: "pipe", type: TediTranslationPipe, name: "tediTranslate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
6579
|
-
}
|
|
6580
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: TagComponent, decorators: [{
|
|
6581
|
-
type: Component,
|
|
6582
|
-
args: [{ selector: "tedi-tag", imports: [SpinnerComponent, IconComponent, ClosingButtonComponent, TediTranslationPipe], encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, host: {
|
|
6583
|
-
"[class.tedi-tag]": "true",
|
|
6584
|
-
"[class.tedi-tag--loading]": "loading()",
|
|
6585
|
-
"[class.tedi-tag--closable]": "closable()",
|
|
6586
|
-
"[class]": "classes()",
|
|
6587
|
-
}, template: "@if (type() === \"danger\") {\n <span class=\"tedi-tag__icon-wrapper\">\n <tedi-icon name=\"error\" color=\"danger\" [size]=\"16\" />\n </span>\n}\n\n<span class=\"tedi-tag__content\" [attr.id]=\"uniqueId\">\n <ng-content />\n</span>\n\n@if (loading()) {\n <span class=\"tedi-tag__spinner-wrapper\">\n <tedi-spinner [size]=\"48\" />\n </span>\n} @else if (closable()) {\n <button\n type=\"button\"\n tedi-closing-button\n size=\"small\"\n [iconSize]=\"18\"\n (click)=\"handleClose($event)\"\n [attr.aria-describedby]=\"uniqueId\"\n [ariaLabel]=\"'remove' | tediTranslate\"\n >\n </button>\n}\n", styles: [".tedi-tag{--_background-color: var(--tag-primary-background);--_border-color: var(--tag-primary-border);--_line-height: var(--body-small-regular-line-height);display:inline-flex;gap:var(--tag-default-padding-x);align-items:flex-start;padding:0 var(--tag-default-padding-x);font-family:var(--family-default);font-size:var(--body-small-regular-size);font-weight:var(--body-small-regular-weight);line-height:var(--_line-height);color:var(--general-text-primary);background-color:var(--_background-color);border-radius:var(--tag-default-radius);box-shadow:inset 0 0 0 1px var(--_border-color)}.tedi-tag__content{padding:var(--tag-default-padding-y) 0}.tedi-tag__icon-wrapper{line-height:var(--_line-height)}.tedi-tag__spinner-wrapper{display:flex;align-items:center;height:calc(var(--_line-height) + var(--tag-default-padding-y))}.tedi-tag__spinner-wrapper tedi-spinner{--tedi-spinner-size: 12;--tedi-spinner-stroke: 2}.tedi-tag--closable:not(.tedi-tag--loading){padding-right:0}.tedi-tag--closable:not(.tedi-tag--loading) .tedi-closing-button{border-radius:0 var(--button-radius-sm) var(--button-radius-sm) 0}.tedi-tag--secondary{--_background-color: var(--tag-secondary-background);--_border-color: var(--tag-secondary-border)}.tedi-tag--danger{--_background-color: var(--tag-danger-background);--_border-color: var(--tag-danger-border)}\n"] }]
|
|
6588
|
-
}] });
|
|
6589
|
-
|
|
6590
7515
|
class StatusBadgeComponent {
|
|
6591
7516
|
idGenerator = inject(_IdGenerator);
|
|
6592
7517
|
uniqueId = this.idGenerator.getId("tedi-status-badge");
|
|
@@ -6665,7 +7590,7 @@ class StatusBadgeComponent {
|
|
|
6665
7590
|
return null;
|
|
6666
7591
|
});
|
|
6667
7592
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: StatusBadgeComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
6668
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.15", type: StatusBadgeComponent, isStandalone: true, selector: "tedi-status-badge", inputs: { text: { classPropertyName: "text", publicName: "text", isSignal: true, isRequired: false, transformFunction: null }, class: { classPropertyName: "class", publicName: "class", isSignal: true, isRequired: false, transformFunction: null }, title: { classPropertyName: "title", publicName: "title", isSignal: true, isRequired: false, transformFunction: null }, role: { classPropertyName: "role", publicName: "role", isSignal: true, isRequired: false, transformFunction: null }, color: { classPropertyName: "color", publicName: "color", isSignal: true, isRequired: false, transformFunction: null }, variant: { classPropertyName: "variant", publicName: "variant", isSignal: true, isRequired: false, transformFunction: null }, size: { classPropertyName: "size", publicName: "size", isSignal: true, isRequired: false, transformFunction: null }, status: { classPropertyName: "status", publicName: "status", isSignal: true, isRequired: false, transformFunction: null }, icon: { classPropertyName: "icon", publicName: "icon", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: "@if (title()) {\n <abbr\n [ngClass]=\"classes()\"\n [attr.id]=\"uniqueId\"\n [attr.title]=\"title()\"\n [attr.role]=\"role()\"\n [attr.aria-live]=\"ariaLive()\"\n >\n <ng-container *ngTemplateOutlet=\"statusBadgeContent\"></ng-container>\n </abbr>\n} @else {\n <div\n [ngClass]=\"classes()\"\n [attr.id]=\"uniqueId\"\n [attr.role]=\"role()\"\n [attr.aria-live]=\"ariaLive()\"\n >\n <ng-container *ngTemplateOutlet=\"statusBadgeContent\"></ng-container>\n </div>\n}\n\n<ng-template #statusBadgeContent>\n @if (icon()) {\n <tedi-icon class=\"tedi-status-badge__icon\" [name]=\"icon()\" [size]=\"16\" />\n }\n\n @if (text()) {\n <span class=\"tedi-status-badge__text\">{{ text() }}</span>\n }\n</ng-template>\n", styles: [".tedi-status-badge{position:relative;display:inline-flex;align-items:center;justify-content:center;padding:var(--tag-default-padding-y) var(--tag-default-padding-x);font-size:var(--body-small-regular-size);font-weight:var(--body-small-regular-weight);line-height:var(--body-small-regular-line-height);color:var(--_status-badge-text);text-decoration:none;background:var(--_status-badge-background);border-radius:var(--tag-default-radius);box-shadow:var(--_status-badge-box-shadow)}.tedi-status-badge__text{min-width:fit-content;padding:0 var(--tag-default-padding-x)}.tedi-status-badge--large{min-width:var(--tag-status-large-min-width);padding:var(--tag-status-large-padding-y) var(--tag-status-large-padding-x)}.tedi-status-badge.tedi-status-badge--variant-filled.tedi-status-badge--color-neutral{--_status-badge-text: var(--status-badge-text-neutral);--_status-badge-box-shadow: inset 0 0 0 1px var(--status-badge-border-neutral);--_status-badge-background: var( --status-badge-background-neutral );--_status-badge-box-shadow: none}.tedi-status-badge.tedi-status-badge--variant-filled.tedi-status-badge--color-brand{--_status-badge-text: var(--status-badge-text-brand);--_status-badge-box-shadow: inset 0 0 0 1px var(--status-badge-border-brand);--_status-badge-background: var( --status-badge-background-brand );--_status-badge-box-shadow: none}.tedi-status-badge.tedi-status-badge--variant-filled.tedi-status-badge--color-accent{--_status-badge-text: var(--status-badge-text-accent);--_status-badge-box-shadow: inset 0 0 0 1px var(--status-badge-border-accent);--_status-badge-background: var( --status-badge-background-accent );--_status-badge-box-shadow: none}.tedi-status-badge.tedi-status-badge--variant-filled.tedi-status-badge--color-success{--_status-badge-text: var(--status-badge-text-success);--_status-badge-box-shadow: inset 0 0 0 1px var(--status-badge-border-success);--_status-badge-background: var( --status-badge-background-success );--_status-badge-box-shadow: none}.tedi-status-badge.tedi-status-badge--variant-filled.tedi-status-badge--color-danger{--_status-badge-text: var(--status-badge-text-danger);--_status-badge-box-shadow: inset 0 0 0 1px var(--status-badge-border-danger);--_status-badge-background: var( --status-badge-background-danger );--_status-badge-box-shadow: none}.tedi-status-badge.tedi-status-badge--variant-filled.tedi-status-badge--color-warning{--_status-badge-text: var(--status-badge-text-warning);--_status-badge-box-shadow: inset 0 0 0 1px var(--status-badge-border-warning);--_status-badge-background: var( --status-badge-background-warning );--_status-badge-box-shadow: none}.tedi-status-badge.tedi-status-badge--variant-filled.tedi-status-badge--color-transparent{--_status-badge-text: var(--status-badge-text-transparent);--_status-badge-box-shadow: inset 0 0 0 1px var(--status-badge-border-transparent);--_status-badge-background: var( --status-badge-background-transparent );--_status-badge-box-shadow: none}.tedi-status-badge.tedi-status-badge--variant-filled-bordered.tedi-status-badge--color-neutral{--_status-badge-text: var(--status-badge-text-neutral);--_status-badge-box-shadow: inset 0 0 0 1px var(--status-badge-border-neutral);--_status-badge-background: var( --status-badge-background-neutral )}.tedi-status-badge.tedi-status-badge--variant-filled-bordered.tedi-status-badge--color-brand{--_status-badge-text: var(--status-badge-text-brand);--_status-badge-box-shadow: inset 0 0 0 1px var(--status-badge-border-brand);--_status-badge-background: var( --status-badge-background-brand )}.tedi-status-badge.tedi-status-badge--variant-filled-bordered.tedi-status-badge--color-accent{--_status-badge-text: var(--status-badge-text-accent);--_status-badge-box-shadow: inset 0 0 0 1px var(--status-badge-border-accent);--_status-badge-background: var( --status-badge-background-accent )}.tedi-status-badge.tedi-status-badge--variant-filled-bordered.tedi-status-badge--color-success{--_status-badge-text: var(--status-badge-text-success);--_status-badge-box-shadow: inset 0 0 0 1px var(--status-badge-border-success);--_status-badge-background: var( --status-badge-background-success )}.tedi-status-badge.tedi-status-badge--variant-filled-bordered.tedi-status-badge--color-danger{--_status-badge-text: var(--status-badge-text-danger);--_status-badge-box-shadow: inset 0 0 0 1px var(--status-badge-border-danger);--_status-badge-background: var( --status-badge-background-danger )}.tedi-status-badge.tedi-status-badge--variant-filled-bordered.tedi-status-badge--color-warning{--_status-badge-text: var(--status-badge-text-warning);--_status-badge-box-shadow: inset 0 0 0 1px var(--status-badge-border-warning);--_status-badge-background: var( --status-badge-background-warning )}.tedi-status-badge.tedi-status-badge--variant-filled-bordered.tedi-status-badge--color-transparent{--_status-badge-text: var(--status-badge-text-transparent);--_status-badge-box-shadow: inset 0 0 0 1px var(--status-badge-border-transparent);--_status-badge-background: var( --status-badge-background-transparent )}.tedi-status-badge.tedi-status-badge--variant-bordered.tedi-status-badge--color-neutral{--_status-badge-text: var(--status-badge-text-neutral);--_status-badge-box-shadow: inset 0 0 0 1px var(--status-badge-border-neutral);--_status-badge-background: transparent}.tedi-status-badge.tedi-status-badge--variant-bordered.tedi-status-badge--color-brand{--_status-badge-text: var(--status-badge-text-brand);--_status-badge-box-shadow: inset 0 0 0 1px var(--status-badge-border-brand);--_status-badge-background: transparent}.tedi-status-badge.tedi-status-badge--variant-bordered.tedi-status-badge--color-accent{--_status-badge-text: var(--status-badge-text-accent);--_status-badge-box-shadow: inset 0 0 0 1px var(--status-badge-border-accent);--_status-badge-background: transparent}.tedi-status-badge.tedi-status-badge--variant-bordered.tedi-status-badge--color-success{--_status-badge-text: var(--status-badge-text-success);--_status-badge-box-shadow: inset 0 0 0 1px var(--status-badge-border-success);--_status-badge-background: transparent}.tedi-status-badge.tedi-status-badge--variant-bordered.tedi-status-badge--color-danger{--_status-badge-text: var(--status-badge-text-danger);--_status-badge-box-shadow: inset 0 0 0 1px var(--status-badge-border-danger);--_status-badge-background: transparent}.tedi-status-badge.tedi-status-badge--variant-bordered.tedi-status-badge--color-warning{--_status-badge-text: var(--status-badge-text-warning);--_status-badge-box-shadow: inset 0 0 0 1px var(--status-badge-border-warning);--_status-badge-background: transparent}.tedi-status-badge.tedi-status-badge--variant-bordered.tedi-status-badge--color-transparent{--_status-badge-text: var(--status-badge-text-transparent);--_status-badge-box-shadow: inset 0 0 0 1px var(--status-badge-border-transparent);--_status-badge-background: transparent}.tedi-status-badge--status:before{position:absolute;top:-.125rem;right:-.125rem;z-index:1;width:var(--status-indicator-sm);height:var(--status-indicator-sm);content:\"\";background-color:var(--_status-badge--indicator-background);border:1px solid var(--status-badge-indicator-border);border-radius:50%}.tedi-status-badge--status.tedi-status-badge--large:before{width:var(--status-indicator-lg);height:var(--status-indicator-lg)}.tedi-status-badge--status-inactive:before{--_status-badge--indicator-background: var( --status-badge-indicator-inactive )}.tedi-status-badge--status-success:before{--_status-badge--indicator-background: var( --status-badge-indicator-success )}.tedi-status-badge--status-danger:before{--_status-badge--indicator-background: var( --status-badge-indicator-danger )}.tedi-status-badge--status-warning:before{--_status-badge--indicator-background: var( --status-badge-indicator-warning )}.tedi-status-badge .tedi-status-badge__icon{color:inherit}.tedi-status-badge__icon-only{display:inline-flex;align-items:center;padding:var(--tag-status-icon-padding-y) var(--tag-status-icon-padding-x);line-height:var(--body-small-regular-line-height)}\n"], dependencies: [{ kind: "component", type: IconComponent, selector: "tedi-icon", inputs: ["name", "size", "color", "background", "variant", "type", "label"] }, { kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1$3.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1$3.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
7593
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.15", type: StatusBadgeComponent, isStandalone: true, selector: "tedi-status-badge", inputs: { text: { classPropertyName: "text", publicName: "text", isSignal: true, isRequired: false, transformFunction: null }, class: { classPropertyName: "class", publicName: "class", isSignal: true, isRequired: false, transformFunction: null }, title: { classPropertyName: "title", publicName: "title", isSignal: true, isRequired: false, transformFunction: null }, role: { classPropertyName: "role", publicName: "role", isSignal: true, isRequired: false, transformFunction: null }, color: { classPropertyName: "color", publicName: "color", isSignal: true, isRequired: false, transformFunction: null }, variant: { classPropertyName: "variant", publicName: "variant", isSignal: true, isRequired: false, transformFunction: null }, size: { classPropertyName: "size", publicName: "size", isSignal: true, isRequired: false, transformFunction: null }, status: { classPropertyName: "status", publicName: "status", isSignal: true, isRequired: false, transformFunction: null }, icon: { classPropertyName: "icon", publicName: "icon", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: "@if (title()) {\n <abbr\n [ngClass]=\"classes()\"\n [attr.id]=\"uniqueId\"\n [attr.title]=\"title()\"\n [attr.role]=\"role()\"\n [attr.aria-live]=\"ariaLive()\"\n >\n <ng-container *ngTemplateOutlet=\"statusBadgeContent\"></ng-container>\n </abbr>\n} @else {\n <div\n [ngClass]=\"classes()\"\n [attr.id]=\"uniqueId\"\n [attr.role]=\"role()\"\n [attr.aria-live]=\"ariaLive()\"\n >\n <ng-container *ngTemplateOutlet=\"statusBadgeContent\"></ng-container>\n </div>\n}\n\n<ng-template #statusBadgeContent>\n @if (icon()) {\n <tedi-icon class=\"tedi-status-badge__icon\" [name]=\"icon()\" [size]=\"16\" />\n }\n\n @if (text()) {\n <span class=\"tedi-status-badge__text\">{{ text() }}</span>\n }\n</ng-template>\n", styles: [".tedi-status-badge{position:relative;display:inline-flex;align-items:center;justify-content:center;padding:var(--tag-default-padding-y) var(--tag-default-padding-x);font-size:var(--body-small-regular-size);font-weight:var(--body-small-regular-weight);line-height:var(--body-small-regular-line-height);color:var(--_status-badge-text);text-decoration:none;background:var(--_status-badge-background);border-radius:var(--tag-default-radius);box-shadow:var(--_status-badge-box-shadow)}.tedi-status-badge__text{min-width:fit-content;padding:0 var(--tag-default-padding-x)}.tedi-status-badge--large{min-width:var(--tag-status-large-min-width);padding:var(--tag-status-large-padding-y) var(--tag-status-large-padding-x)}.tedi-status-badge.tedi-status-badge--variant-filled.tedi-status-badge--color-neutral{--_status-badge-text: var(--status-badge-text-neutral);--_status-badge-box-shadow: inset 0 0 0 1px var(--status-badge-border-neutral);--_status-badge-background: var( --status-badge-background-neutral );--_status-badge-box-shadow: none}.tedi-status-badge.tedi-status-badge--variant-filled.tedi-status-badge--color-brand{--_status-badge-text: var(--status-badge-text-brand);--_status-badge-box-shadow: inset 0 0 0 1px var(--status-badge-border-brand);--_status-badge-background: var( --status-badge-background-brand );--_status-badge-box-shadow: none}.tedi-status-badge.tedi-status-badge--variant-filled.tedi-status-badge--color-accent{--_status-badge-text: var(--status-badge-text-accent);--_status-badge-box-shadow: inset 0 0 0 1px var(--status-badge-border-accent);--_status-badge-background: var( --status-badge-background-accent );--_status-badge-box-shadow: none}.tedi-status-badge.tedi-status-badge--variant-filled.tedi-status-badge--color-success{--_status-badge-text: var(--status-badge-text-success);--_status-badge-box-shadow: inset 0 0 0 1px var(--status-badge-border-success);--_status-badge-background: var( --status-badge-background-success );--_status-badge-box-shadow: none}.tedi-status-badge.tedi-status-badge--variant-filled.tedi-status-badge--color-danger{--_status-badge-text: var(--status-badge-text-danger);--_status-badge-box-shadow: inset 0 0 0 1px var(--status-badge-border-danger);--_status-badge-background: var( --status-badge-background-danger );--_status-badge-box-shadow: none}.tedi-status-badge.tedi-status-badge--variant-filled.tedi-status-badge--color-warning{--_status-badge-text: var(--status-badge-text-warning);--_status-badge-box-shadow: inset 0 0 0 1px var(--status-badge-border-warning);--_status-badge-background: var( --status-badge-background-warning );--_status-badge-box-shadow: none}.tedi-status-badge.tedi-status-badge--variant-filled.tedi-status-badge--color-transparent{--_status-badge-text: var(--status-badge-text-transparent);--_status-badge-box-shadow: inset 0 0 0 1px var(--status-badge-border-transparent);--_status-badge-background: var( --status-badge-background-transparent );--_status-badge-box-shadow: none}.tedi-status-badge.tedi-status-badge--variant-filled-bordered.tedi-status-badge--color-neutral{--_status-badge-text: var(--status-badge-text-neutral);--_status-badge-box-shadow: inset 0 0 0 1px var(--status-badge-border-neutral);--_status-badge-background: var( --status-badge-background-neutral )}.tedi-status-badge.tedi-status-badge--variant-filled-bordered.tedi-status-badge--color-brand{--_status-badge-text: var(--status-badge-text-brand);--_status-badge-box-shadow: inset 0 0 0 1px var(--status-badge-border-brand);--_status-badge-background: var( --status-badge-background-brand )}.tedi-status-badge.tedi-status-badge--variant-filled-bordered.tedi-status-badge--color-accent{--_status-badge-text: var(--status-badge-text-accent);--_status-badge-box-shadow: inset 0 0 0 1px var(--status-badge-border-accent);--_status-badge-background: var( --status-badge-background-accent )}.tedi-status-badge.tedi-status-badge--variant-filled-bordered.tedi-status-badge--color-success{--_status-badge-text: var(--status-badge-text-success);--_status-badge-box-shadow: inset 0 0 0 1px var(--status-badge-border-success);--_status-badge-background: var( --status-badge-background-success )}.tedi-status-badge.tedi-status-badge--variant-filled-bordered.tedi-status-badge--color-danger{--_status-badge-text: var(--status-badge-text-danger);--_status-badge-box-shadow: inset 0 0 0 1px var(--status-badge-border-danger);--_status-badge-background: var( --status-badge-background-danger )}.tedi-status-badge.tedi-status-badge--variant-filled-bordered.tedi-status-badge--color-warning{--_status-badge-text: var(--status-badge-text-warning);--_status-badge-box-shadow: inset 0 0 0 1px var(--status-badge-border-warning);--_status-badge-background: var( --status-badge-background-warning )}.tedi-status-badge.tedi-status-badge--variant-filled-bordered.tedi-status-badge--color-transparent{--_status-badge-text: var(--status-badge-text-transparent);--_status-badge-box-shadow: inset 0 0 0 1px var(--status-badge-border-transparent);--_status-badge-background: var( --status-badge-background-transparent )}.tedi-status-badge.tedi-status-badge--variant-bordered.tedi-status-badge--color-neutral{--_status-badge-text: var(--status-badge-text-neutral);--_status-badge-box-shadow: inset 0 0 0 1px var(--status-badge-border-neutral);--_status-badge-background: transparent}.tedi-status-badge.tedi-status-badge--variant-bordered.tedi-status-badge--color-brand{--_status-badge-text: var(--status-badge-text-brand);--_status-badge-box-shadow: inset 0 0 0 1px var(--status-badge-border-brand);--_status-badge-background: transparent}.tedi-status-badge.tedi-status-badge--variant-bordered.tedi-status-badge--color-accent{--_status-badge-text: var(--status-badge-text-accent);--_status-badge-box-shadow: inset 0 0 0 1px var(--status-badge-border-accent);--_status-badge-background: transparent}.tedi-status-badge.tedi-status-badge--variant-bordered.tedi-status-badge--color-success{--_status-badge-text: var(--status-badge-text-success);--_status-badge-box-shadow: inset 0 0 0 1px var(--status-badge-border-success);--_status-badge-background: transparent}.tedi-status-badge.tedi-status-badge--variant-bordered.tedi-status-badge--color-danger{--_status-badge-text: var(--status-badge-text-danger);--_status-badge-box-shadow: inset 0 0 0 1px var(--status-badge-border-danger);--_status-badge-background: transparent}.tedi-status-badge.tedi-status-badge--variant-bordered.tedi-status-badge--color-warning{--_status-badge-text: var(--status-badge-text-warning);--_status-badge-box-shadow: inset 0 0 0 1px var(--status-badge-border-warning);--_status-badge-background: transparent}.tedi-status-badge.tedi-status-badge--variant-bordered.tedi-status-badge--color-transparent{--_status-badge-text: var(--status-badge-text-transparent);--_status-badge-box-shadow: inset 0 0 0 1px var(--status-badge-border-transparent);--_status-badge-background: transparent}.tedi-status-badge--status:before{position:absolute;top:-.125rem;right:-.125rem;z-index:1;width:var(--status-indicator-sm);height:var(--status-indicator-sm);content:\"\";background-color:var(--_status-badge--indicator-background);border:1px solid var(--status-badge-indicator-border);border-radius:50%}.tedi-status-badge--status.tedi-status-badge--large:before{width:var(--status-indicator-lg);height:var(--status-indicator-lg)}.tedi-status-badge--status-inactive:before{--_status-badge--indicator-background: var( --status-badge-indicator-inactive )}.tedi-status-badge--status-success:before{--_status-badge--indicator-background: var( --status-badge-indicator-success )}.tedi-status-badge--status-danger:before{--_status-badge--indicator-background: var( --status-badge-indicator-danger )}.tedi-status-badge--status-warning:before{--_status-badge--indicator-background: var( --status-badge-indicator-warning )}.tedi-status-badge .tedi-status-badge__icon{color:inherit}.tedi-status-badge__icon-only{display:inline-flex;align-items:center;padding:var(--tag-status-icon-padding-y) var(--tag-status-icon-padding-x);line-height:var(--body-small-regular-line-height)}\n"], dependencies: [{ kind: "component", type: IconComponent, selector: "tedi-icon", inputs: ["name", "size", "color", "background", "variant", "type", "label"] }, { kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1$1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1$1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
6669
7594
|
}
|
|
6670
7595
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: StatusBadgeComponent, decorators: [{
|
|
6671
7596
|
type: Component,
|
|
@@ -6773,7 +7698,7 @@ class AccordionItemComponent {
|
|
|
6773
7698
|
return !this.headerClickable() && !this.showExpandLabel();
|
|
6774
7699
|
});
|
|
6775
7700
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: AccordionItemComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
6776
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.15", type: AccordionItemComponent, isStandalone: true, selector: "tedi-accordion-item", inputs: { headerClickable: { classPropertyName: "headerClickable", publicName: "headerClickable", isSignal: true, isRequired: false, transformFunction: null }, title: { classPropertyName: "title", publicName: "title", isSignal: true, isRequired: false, transformFunction: null }, titleLayout: { classPropertyName: "titleLayout", publicName: "titleLayout", isSignal: true, isRequired: false, transformFunction: null }, showSeparateTitle: { classPropertyName: "showSeparateTitle", publicName: "showSeparateTitle", isSignal: true, isRequired: false, transformFunction: null }, openLabel: { classPropertyName: "openLabel", publicName: "openLabel", isSignal: true, isRequired: false, transformFunction: null }, closeLabel: { classPropertyName: "closeLabel", publicName: "closeLabel", isSignal: true, isRequired: false, transformFunction: null }, showExpandLabel: { classPropertyName: "showExpandLabel", publicName: "showExpandLabel", isSignal: true, isRequired: false, transformFunction: null }, showDefaultExpandAction: { classPropertyName: "showDefaultExpandAction", publicName: "showDefaultExpandAction", isSignal: true, isRequired: false, transformFunction: null }, expandActionPosition: { classPropertyName: "expandActionPosition", publicName: "expandActionPosition", isSignal: true, isRequired: false, transformFunction: null }, defaultExpanded: { classPropertyName: "defaultExpanded", publicName: "defaultExpanded", isSignal: true, isRequired: false, transformFunction: null }, description: { classPropertyName: "description", publicName: "description", isSignal: true, isRequired: false, transformFunction: null }, descriptionPosition: { classPropertyName: "descriptionPosition", publicName: "descriptionPosition", isSignal: true, isRequired: false, transformFunction: null }, showIconCard: { classPropertyName: "showIconCard", publicName: "showIconCard", isSignal: true, isRequired: false, transformFunction: null }, selected: { classPropertyName: "selected", publicName: "selected", isSignal: true, isRequired: false, transformFunction: null }, headerClass: { classPropertyName: "headerClass", publicName: "headerClass", isSignal: true, isRequired: false, transformFunction: null }, bodyClass: { classPropertyName: "bodyClass", publicName: "bodyClass", isSignal: true, isRequired: false, transformFunction: null }, expanded: { classPropertyName: "expanded", publicName: "expanded", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { expanded: "expandedChange" }, ngImport: i0, template: "<div\n class=\"tedi-accordion__item\"\n [class.tedi-accordion__item--selected]=\"selected()\"\n [class.tedi-accordion__item--expanded]=\"expanded()\"\n>\n @if (showIconCard()) {\n <ng-content select=\"[tedi-accordion-icon-card]\"></ng-content>\n }\n\n <div class=\"tedi-accordion__header-row\">\n @if (headerClickable()) {\n <button\n [id]=\"headerId\"\n type=\"button\"\n [ngClass]=\"headerClasses()\"\n (click)=\"toggle()\"\n [attr.aria-expanded]=\"expanded()\"\n [attr.aria-controls]=\"bodyId\"\n >\n <ng-container *ngTemplateOutlet=\"headerContent\"></ng-container>\n </button>\n } @else {\n <div [id]=\"headerId\" [ngClass]=\"headerClasses()\">\n <ng-container *ngTemplateOutlet=\"headerContent\"></ng-container>\n </div>\n }\n </div>\n\n <div\n [ngClass]=\"bodyClasses()\"\n [id]=\"bodyId\"\n [attr.role]=\"expanded() ? 'region' : null\"\n [attr.aria-labelledby]=\"headerId\"\n [attr.aria-hidden]=\"!expanded()\"\n [attr.inert]=\"!expanded() ? '' : null\"\n >\n <div class=\"tedi-accordion__body--inner\">\n <ng-content></ng-content>\n </div>\n </div>\n</div>\n\n<ng-template #headerContent>\n <div class=\"tedi-accordion__start\">\n <ng-content select=\"[tedi-accordion-start-action]\"></ng-content>\n\n <ng-content select=\"[tedi-accordion-start-before-title]\"></ng-content>\n\n <span\n class=\"tedi-accordion__title\"\n [class.tedi-accordion__title--with-description]=\"description()\"\n [class.tedi-accordion__title--grow]=\"titleLayout() === 'fill'\"\n >\n <span class=\"tedi-accordion__title--main\">\n @if (showStartExpandAction()) {\n <ng-container *ngTemplateOutlet=\"collapseButton\"></ng-container>\n }\n\n @if (showSeparateTitle()) {\n <span\n tedi-text\n color=\"secondary\"\n modifiers=\"normal\"\n [id]=\"headerId + '-title'\"\n [attr.aria-hidden]=\"hideTitleFromSR() ? 'true' : null\"\n >\n {{ title() | tediTranslate }}\n </span>\n }\n </span>\n\n @if (descriptionPosition() !== \"end\") {\n <ng-content select=\"[tedi-accordion-start-description]\"></ng-content>\n\n @if (description(); as desc) {\n <span tedi-text color=\"tertiary\" modifiers=\"normal\">\n {{ desc | tediTranslate }}\n </span>\n }\n }\n </span>\n\n <ng-content select=\"[tedi-accordion-start-after-title]\"></ng-content>\n </div>\n\n @if (descriptionPosition() !== \"start\") {\n <ng-content select=\"[tedi-accordion-end-description]\"></ng-content>\n\n @if (description(); as desc) {\n <span tedi-text color=\"tertiary\" modifiers=\"small\">\n {{ desc | tediTranslate }}\n </span>\n }\n }\n\n @if (showEndExpandAction()) {\n <ng-container *ngTemplateOutlet=\"collapseButton\"></ng-container>\n }\n\n <ng-content select=\"[tedi-accordion-end-action]\"></ng-content>\n</ng-template>\n\n<ng-template #collapseButton>\n @if (headerClickable()) {\n <div\n tedi-text\n modifiers=\"normal\"\n class=\"tedi-accordion__expand-indicator\"\n [class.tedi-accordion__expand-indicator--with-label]=\"showExpandLabel()\"\n >\n {{ (showExpandLabel() ? expandLabel() : \"\") | tediTranslate }}\n <ng-container *ngTemplateOutlet=\"expandIcon\"></ng-container>\n </div>\n } @else {\n <button\n type=\"button\"\n class=\"tedi-accordion__toggle-button\"\n tedi-link\n [underline]=\"false\"\n (click)=\"toggle()\"\n [attr.aria-expanded]=\"expanded()\"\n [attr.aria-controls]=\"bodyId\"\n [attr.aria-label]=\"\n !showExpandLabel() ? (expandLabel() | tediTranslate) : null\n \"\n [attr.aria-labelledby]=\"headerId + '-title'\"\n >\n @if (showExpandLabel()) {\n {{ (showSeparateTitle() ? expandLabel() : title()) | tediTranslate }}\n }\n <ng-container *ngTemplateOutlet=\"expandIcon\"></ng-container>\n </button>\n }\n</ng-template>\n\n<ng-template #expandIcon>\n <tedi-icon\n aria-hidden=\"true\"\n name=\"expand_more\"\n class=\"tedi-accordion__icon\"\n [class.tedi-accordion__icon--expanded]=\"expanded()\"\n [class.tedi-accordion__icon--no-label]=\"!showExpandLabel()\"\n />\n</ng-template>\n", styles: [".tedi-accordion__item{display:grid;grid-template-rows:max-content minmax(0,0fr);grid-template-columns:auto 1fr;transition:grid-template-rows .3s ease}.tedi-accordion__item--selected{border:1px solid var(--card-border-selected);border-radius:var(--card-radius-rounded)}.tedi-accordion__item--selected .tedi-accordion__header,.tedi-accordion__item--selected.tedi-accordion__item--expanded .tedi-accordion__body,.tedi-accordion__item--selected [tedi-accordion-icon-card]{border:transparent}.tedi-accordion__item--selected .tedi-accordion__header--with-icon-card,.tedi-accordion__item--selected.tedi-accordion__item--expanded .tedi-accordion__body--with-icon-card{border-left:1px solid var(--card-border-primary)}.tedi-accordion__item--selected .tedi-accordion__header--expanded{border-bottom:1px solid var(--card-border-primary)}.tedi-accordion__item--expanded{grid-template-rows:max-content minmax(0,1fr)}.tedi-accordion__item--expanded .tedi-accordion__body{border:1px solid var(--card-border-primary);border-top:none;border-radius:0 0 var(--card-radius-rounded) var(--card-radius-rounded)}.tedi-accordion__item--expanded .tedi-accordion__body--with-icon-card{border-radius:0 0 var(--card-radius-rounded) 0}.tedi-accordion__header-row{display:flex;grid-row:1;grid-column:2;align-items:stretch}.tedi-accordion__header{position:relative;display:flex;flex:1;gap:var(--layout-grid-gutters-16);align-items:center;padding:var(--card-padding-md-default);background:var(--card-background-primary);border:1px solid var(--card-border-primary);border-radius:var(--card-radius-rounded)}.tedi-accordion__header--expanded{border-radius:var(--card-radius-rounded) var(--card-radius-rounded) 0 0}.tedi-accordion__header--expanded.tedi-accordion__header--with-icon-card{border-radius:0 var(--card-radius-rounded) 0 0}.tedi-accordion__header--with-icon-card{border-radius:var(--card-radius-sharp) var(--card-radius-rounded) var(--card-radius-rounded) var(--card-radius-sharp)}.tedi-accordion__header--hoverable{cursor:pointer}.tedi-accordion__header--hoverable:hover{background:var(--general-surface-hover)}.tedi-accordion__header--hoverable:active{background:var(--general-surface-brand-tertiary)}.tedi-accordion__header--hoverable:focus-visible{z-index:1;outline:none;background:var(--card-background-primary);border:1px solid var(--card-border-primary);box-shadow:0 0 0 1px var(--tedi-neutral-100),0 0 0 3px var(--tedi-primary-500)}.tedi-accordion__body{grid-row:2;grid-column:2;overflow:hidden;background:var(--card-background-primary)}.tedi-accordion__body--inner{padding:var(--card-padding-md-default)}.tedi-accordion__icon{transition:transform .2s ease-in-out}.tedi-accordion__icon--expanded{transform:rotate(-180deg)}.tedi-accordion__start{display:flex;flex:1;gap:var(--layout-grid-gutters-08);align-items:center;min-width:0}[tedi-accordion-icon-card]{display:inline-flex;grid-row:1/span 2;grid-column:1;gap:var(--layout-grid-gutters-08);align-items:flex-start;align-self:stretch;justify-content:flex-end;padding:var(--card-padding-md-default);background:var(--card-background-secondary);border:1px solid var(--card-border-primary);border-right:none;border-radius:var(--card-radius-rounded) var(--card-radius-sharp) var(--card-radius-sharp) var(--card-radius-rounded)}.tedi-accordion__title{display:flex;gap:var(--layout-grid-gutters-08)}.tedi-accordion__title--main{display:flex;gap:inherit;align-items:center}.tedi-accordion__title--with-description,.tedi-accordion__title:has([tedi-accordion-start-description]){flex-direction:column;gap:0;align-items:flex-start}.tedi-accordion__title--grow{flex:1;justify-content:space-between}.tedi-accordion__toggle-button{display:flex;padding:0;font-size:var(--body-regular-size);background:transparent;border:transparent}.tedi-accordion__expand-indicator{display:flex;align-items:center;color:var(--accordion-action-color)}.tedi-accordion__expand-indicator tedi-icon{color:inherit}.tedi-accordion__expand-indicator--with-label tedi-icon{margin-left:var(--button-sm-inner-spacing);font-size:var(--tedi-size-02);line-height:inherit}.tedi-link tedi-icon.tedi-accordion__icon--no-label{font-size:var(--icon-05)}\n"], dependencies: [{ kind: "component", type: IconComponent, selector: "tedi-icon", inputs: ["name", "size", "color", "background", "variant", "type", "label"] }, { kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1$3.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1$3.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: TextComponent, selector: "[tedi-text]", inputs: ["modifiers", "color"] }, { kind: "component", type: LinkComponent, selector: "[tedi-link]", inputs: ["variant", "size", "underline", "target", "xs", "sm", "md", "lg", "xl", "xxl"] }, { kind: "pipe", type: TediTranslationPipe, name: "tediTranslate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
7701
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.15", type: AccordionItemComponent, isStandalone: true, selector: "tedi-accordion-item", inputs: { headerClickable: { classPropertyName: "headerClickable", publicName: "headerClickable", isSignal: true, isRequired: false, transformFunction: null }, title: { classPropertyName: "title", publicName: "title", isSignal: true, isRequired: false, transformFunction: null }, titleLayout: { classPropertyName: "titleLayout", publicName: "titleLayout", isSignal: true, isRequired: false, transformFunction: null }, showSeparateTitle: { classPropertyName: "showSeparateTitle", publicName: "showSeparateTitle", isSignal: true, isRequired: false, transformFunction: null }, openLabel: { classPropertyName: "openLabel", publicName: "openLabel", isSignal: true, isRequired: false, transformFunction: null }, closeLabel: { classPropertyName: "closeLabel", publicName: "closeLabel", isSignal: true, isRequired: false, transformFunction: null }, showExpandLabel: { classPropertyName: "showExpandLabel", publicName: "showExpandLabel", isSignal: true, isRequired: false, transformFunction: null }, showDefaultExpandAction: { classPropertyName: "showDefaultExpandAction", publicName: "showDefaultExpandAction", isSignal: true, isRequired: false, transformFunction: null }, expandActionPosition: { classPropertyName: "expandActionPosition", publicName: "expandActionPosition", isSignal: true, isRequired: false, transformFunction: null }, defaultExpanded: { classPropertyName: "defaultExpanded", publicName: "defaultExpanded", isSignal: true, isRequired: false, transformFunction: null }, description: { classPropertyName: "description", publicName: "description", isSignal: true, isRequired: false, transformFunction: null }, descriptionPosition: { classPropertyName: "descriptionPosition", publicName: "descriptionPosition", isSignal: true, isRequired: false, transformFunction: null }, showIconCard: { classPropertyName: "showIconCard", publicName: "showIconCard", isSignal: true, isRequired: false, transformFunction: null }, selected: { classPropertyName: "selected", publicName: "selected", isSignal: true, isRequired: false, transformFunction: null }, headerClass: { classPropertyName: "headerClass", publicName: "headerClass", isSignal: true, isRequired: false, transformFunction: null }, bodyClass: { classPropertyName: "bodyClass", publicName: "bodyClass", isSignal: true, isRequired: false, transformFunction: null }, expanded: { classPropertyName: "expanded", publicName: "expanded", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { expanded: "expandedChange" }, ngImport: i0, template: "<div\n class=\"tedi-accordion__item\"\n [class.tedi-accordion__item--selected]=\"selected()\"\n [class.tedi-accordion__item--expanded]=\"expanded()\"\n>\n @if (showIconCard()) {\n <ng-content select=\"[tedi-accordion-icon-card]\"></ng-content>\n }\n\n <div class=\"tedi-accordion__header-row\">\n @if (headerClickable()) {\n <button\n [id]=\"headerId\"\n type=\"button\"\n [ngClass]=\"headerClasses()\"\n (click)=\"toggle()\"\n [attr.aria-expanded]=\"expanded()\"\n [attr.aria-controls]=\"bodyId\"\n >\n <ng-container *ngTemplateOutlet=\"headerContent\"></ng-container>\n </button>\n } @else {\n <div [id]=\"headerId\" [ngClass]=\"headerClasses()\">\n <ng-container *ngTemplateOutlet=\"headerContent\"></ng-container>\n </div>\n }\n </div>\n\n <div\n [ngClass]=\"bodyClasses()\"\n [id]=\"bodyId\"\n [attr.role]=\"expanded() ? 'region' : null\"\n [attr.aria-labelledby]=\"headerId\"\n [attr.aria-hidden]=\"!expanded()\"\n [attr.inert]=\"!expanded() ? '' : null\"\n >\n <div class=\"tedi-accordion__body--inner\">\n <ng-content></ng-content>\n </div>\n </div>\n</div>\n\n<ng-template #headerContent>\n <div class=\"tedi-accordion__start\">\n <ng-content select=\"[tedi-accordion-start-action]\"></ng-content>\n\n <ng-content select=\"[tedi-accordion-start-before-title]\"></ng-content>\n\n <span\n class=\"tedi-accordion__title\"\n [class.tedi-accordion__title--with-description]=\"description()\"\n [class.tedi-accordion__title--grow]=\"titleLayout() === 'fill'\"\n >\n <span class=\"tedi-accordion__title--main\">\n @if (showStartExpandAction()) {\n <ng-container *ngTemplateOutlet=\"collapseButton\"></ng-container>\n }\n\n @if (showSeparateTitle()) {\n <span\n tedi-text\n color=\"secondary\"\n modifiers=\"normal\"\n [id]=\"headerId + '-title'\"\n [attr.aria-hidden]=\"hideTitleFromSR() ? 'true' : null\"\n >\n {{ title() | tediTranslate }}\n </span>\n }\n </span>\n\n @if (descriptionPosition() !== \"end\") {\n <ng-content select=\"[tedi-accordion-start-description]\"></ng-content>\n\n @if (description(); as desc) {\n <span tedi-text color=\"tertiary\" modifiers=\"normal\">\n {{ desc | tediTranslate }}\n </span>\n }\n }\n </span>\n\n <ng-content select=\"[tedi-accordion-start-after-title]\"></ng-content>\n </div>\n\n @if (descriptionPosition() !== \"start\") {\n <ng-content select=\"[tedi-accordion-end-description]\"></ng-content>\n\n @if (description(); as desc) {\n <span tedi-text color=\"tertiary\" modifiers=\"small\">\n {{ desc | tediTranslate }}\n </span>\n }\n }\n\n @if (showEndExpandAction()) {\n <ng-container *ngTemplateOutlet=\"collapseButton\"></ng-container>\n }\n\n <ng-content select=\"[tedi-accordion-end-action]\"></ng-content>\n</ng-template>\n\n<ng-template #collapseButton>\n @if (headerClickable()) {\n <div\n tedi-text\n modifiers=\"normal\"\n class=\"tedi-accordion__expand-indicator\"\n [class.tedi-accordion__expand-indicator--with-label]=\"showExpandLabel()\"\n >\n {{ (showExpandLabel() ? expandLabel() : \"\") | tediTranslate }}\n <ng-container *ngTemplateOutlet=\"expandIcon\"></ng-container>\n </div>\n } @else {\n <button\n type=\"button\"\n class=\"tedi-accordion__toggle-button\"\n tedi-link\n [underline]=\"false\"\n (click)=\"toggle()\"\n [attr.aria-expanded]=\"expanded()\"\n [attr.aria-controls]=\"bodyId\"\n [attr.aria-label]=\"\n !showExpandLabel() ? (expandLabel() | tediTranslate) : null\n \"\n [attr.aria-labelledby]=\"headerId + '-title'\"\n >\n @if (showExpandLabel()) {\n {{ (showSeparateTitle() ? expandLabel() : title()) | tediTranslate }}\n }\n <ng-container *ngTemplateOutlet=\"expandIcon\"></ng-container>\n </button>\n }\n</ng-template>\n\n<ng-template #expandIcon>\n <tedi-icon\n aria-hidden=\"true\"\n name=\"expand_more\"\n class=\"tedi-accordion__icon\"\n [class.tedi-accordion__icon--expanded]=\"expanded()\"\n [class.tedi-accordion__icon--no-label]=\"!showExpandLabel()\"\n />\n</ng-template>\n", styles: [".tedi-accordion__item{display:grid;grid-template-rows:max-content minmax(0,0fr);grid-template-columns:auto 1fr;transition:grid-template-rows .3s ease}.tedi-accordion__item--selected{border:1px solid var(--card-border-selected);border-radius:var(--card-radius-rounded)}.tedi-accordion__item--selected .tedi-accordion__header,.tedi-accordion__item--selected.tedi-accordion__item--expanded .tedi-accordion__body,.tedi-accordion__item--selected [tedi-accordion-icon-card]{border:transparent}.tedi-accordion__item--selected .tedi-accordion__header--with-icon-card,.tedi-accordion__item--selected.tedi-accordion__item--expanded .tedi-accordion__body--with-icon-card{border-left:1px solid var(--card-border-primary)}.tedi-accordion__item--selected .tedi-accordion__header--expanded{border-bottom:1px solid var(--card-border-primary)}.tedi-accordion__item--expanded{grid-template-rows:max-content minmax(0,1fr)}.tedi-accordion__item--expanded .tedi-accordion__body{border:1px solid var(--card-border-primary);border-top:none;border-radius:0 0 var(--card-radius-rounded) var(--card-radius-rounded)}.tedi-accordion__item--expanded .tedi-accordion__body--with-icon-card{border-radius:0 0 var(--card-radius-rounded) 0}.tedi-accordion__header-row{display:flex;grid-row:1;grid-column:2;align-items:stretch}.tedi-accordion__header{position:relative;display:flex;flex:1;gap:var(--layout-grid-gutters-16);align-items:center;padding:var(--card-padding-md-default);background:var(--card-background-primary);border:1px solid var(--card-border-primary);border-radius:var(--card-radius-rounded)}.tedi-accordion__header--expanded{border-radius:var(--card-radius-rounded) var(--card-radius-rounded) 0 0}.tedi-accordion__header--expanded.tedi-accordion__header--with-icon-card{border-radius:0 var(--card-radius-rounded) 0 0}.tedi-accordion__header--with-icon-card{border-radius:var(--card-radius-sharp) var(--card-radius-rounded) var(--card-radius-rounded) var(--card-radius-sharp)}.tedi-accordion__header--hoverable{cursor:pointer}.tedi-accordion__header--hoverable:hover{background:var(--general-surface-hover)}.tedi-accordion__header--hoverable:active{background:var(--general-surface-brand-tertiary)}.tedi-accordion__header--hoverable:focus-visible{z-index:1;outline:none;background:var(--card-background-primary);border:1px solid var(--card-border-primary);box-shadow:0 0 0 1px var(--tedi-neutral-100),0 0 0 3px var(--tedi-primary-500)}.tedi-accordion__body{grid-row:2;grid-column:2;overflow:hidden;background:var(--card-background-primary)}.tedi-accordion__body--inner{padding:var(--card-padding-md-default)}.tedi-accordion__icon{transition:transform .2s ease-in-out}.tedi-accordion__icon--expanded{transform:rotate(-180deg)}.tedi-accordion__start{display:flex;flex:1;gap:var(--layout-grid-gutters-08);align-items:center;min-width:0}[tedi-accordion-icon-card]{display:inline-flex;grid-row:1/span 2;grid-column:1;gap:var(--layout-grid-gutters-08);align-items:flex-start;align-self:stretch;justify-content:flex-end;padding:var(--card-padding-md-default);background:var(--card-background-secondary);border:1px solid var(--card-border-primary);border-right:none;border-radius:var(--card-radius-rounded) var(--card-radius-sharp) var(--card-radius-sharp) var(--card-radius-rounded)}.tedi-accordion__title{display:flex;gap:var(--layout-grid-gutters-08)}.tedi-accordion__title--main{display:flex;gap:inherit;align-items:center}.tedi-accordion__title--with-description,.tedi-accordion__title:has([tedi-accordion-start-description]){flex-direction:column;gap:0;align-items:flex-start}.tedi-accordion__title--grow{flex:1;justify-content:space-between}.tedi-accordion__toggle-button{display:flex;padding:0;font-size:var(--body-regular-size);background:transparent;border:transparent}.tedi-accordion__expand-indicator{display:flex;align-items:center;color:var(--accordion-action-color)}.tedi-accordion__expand-indicator tedi-icon{color:inherit}.tedi-accordion__expand-indicator--with-label tedi-icon{margin-left:var(--button-sm-inner-spacing);font-size:var(--tedi-size-02);line-height:inherit}.tedi-link tedi-icon.tedi-accordion__icon--no-label{font-size:var(--icon-05)}\n"], dependencies: [{ kind: "component", type: IconComponent, selector: "tedi-icon", inputs: ["name", "size", "color", "background", "variant", "type", "label"] }, { kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1$1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1$1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: TextComponent, selector: "[tedi-text]", inputs: ["modifiers", "color"] }, { kind: "component", type: LinkComponent, selector: "[tedi-link]", inputs: ["variant", "size", "underline", "target", "xs", "sm", "md", "lg", "xl", "xxl"] }, { kind: "pipe", type: TediTranslationPipe, name: "tediTranslate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
6777
7702
|
}
|
|
6778
7703
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: AccordionItemComponent, decorators: [{
|
|
6779
7704
|
type: Component,
|
|
@@ -6878,5 +7803,5 @@ function provideTedi(config = {}) {
|
|
|
6878
7803
|
* Generated bundle index. Do not edit.
|
|
6879
7804
|
*/
|
|
6880
7805
|
|
|
6881
|
-
export { AVAILABLE_LANGUAGES, AccordionComponent, AccordionItemComponent, AlertComponent, BREAKPOINTS, BaseButtonDirective, BreakpointService, ButtonComponent, CarouselComponent, CarouselContentComponent, CarouselFooterComponent, CarouselHeaderComponent, CarouselIndicatorsComponent, CarouselNavigationComponent, CarouselSlideDirective, CheckboxComponent, ClosingButtonComponent, ColComponent, CollapseComponent, DatePickerComponent, DropdownComponent, DropdownContentComponent, DropdownItemComponent, DropdownTriggerDirective, FeedbackTextComponent, FooterBodyComponent, FooterBottomComponent, FooterComponent, FooterSectionComponent, FooterSideComponent, FormFieldComponent, HeaderActionsComponent, HeaderComponent, HeaderContentComponent, HeaderLanguageComponent, HeaderLoginComponent, HeaderLogoutComponent, HeaderProfileComponent, HeaderRoleComponent, HideAtDirective, IconComponent, InfoButtonComponent, LANGUAGE_COOKIE_NAME, LANGUAGE_FALLBACK_VALUE, LabelComponent, LinkComponent, ListComponent, ModalComponent, ModalContentComponent, ModalFooterComponent, ModalHeaderComponent, NumberFieldComponent, PopoverComponent, PopoverContentComponent, PopoverTriggerDirective, RowComponent, SeparatorComponent, ShowAtDirective, SideNavComponent, SideNavDropdownComponent, SideNavDropdownGroupComponent, SideNavDropdownItemComponent, SideNavGroupTitleComponent, SideNavItemComponent, SideNavOverlayComponent, SideNavToggleComponent, SpinnerComponent, StatusBadgeComponent, TEDI_THEME_DEFAULT_TOKEN, TEDI_TRANSLATION_DEFAULT_TOKEN, THEME_CLASS_PREFIX, THEME_COOKIE_NAME, THEME_FALLBACK_VALUE, TOAST_DEFAULT_DURATION, TagComponent, TediTranslationPipe, TediTranslationService, TextComponent, TextFieldComponent, TextGroupComponent, TextGroupLabelComponent, TextGroupValueComponent, ThemeService, TimelineComponent, TimelineDescriptionComponent, TimelineItemComponent, TimelineTitleComponent, ToastComponent, ToastService, ToggleComponent, TooltipComponent, TooltipContentComponent, TooltipTriggerComponent, VerticalSpacingDirective, VerticalSpacingItemDirective, breakpointInput, generateUUID, provideTedi };
|
|
7806
|
+
export { AVAILABLE_LANGUAGES, AccordionComponent, AccordionItemComponent, AlertComponent, BREAKPOINTS, BaseButtonDirective, BreakpointService, ButtonComponent, CarouselComponent, CarouselContentComponent, CarouselFooterComponent, CarouselHeaderComponent, CarouselIndicatorsComponent, CarouselNavigationComponent, CarouselSlideDirective, CheckboxComponent, ClosingButtonComponent, ColComponent, CollapseComponent, DROPDOWN_API, DROPDOWN_CONTENT_API, DatePickerComponent, DropdownComponent, DropdownContentComponent, DropdownItemComponent, DropdownItemValueComponent, DropdownItemValueLabelComponent, DropdownItemValueMetaComponent, DropdownTriggerDirective, FeedbackTextComponent, FooterBodyComponent, FooterBottomComponent, FooterComponent, FooterSectionComponent, FooterSideComponent, FormFieldComponent, HeaderActionsComponent, HeaderComponent, HeaderContentComponent, HeaderLanguageComponent, HeaderLoginComponent, HeaderLogoutComponent, HeaderProfileComponent, HeaderRoleComponent, HideAtDirective, IconComponent, InfoButtonComponent, LANGUAGE_COOKIE_NAME, LANGUAGE_FALLBACK_VALUE, LabelComponent, LinkComponent, ListComponent, ModalComponent, ModalContentComponent, ModalFooterComponent, ModalHeaderComponent, NumberFieldComponent, PopoverComponent, PopoverContentComponent, PopoverTriggerDirective, RowComponent, SelectComponent, SelectOptionTemplateDirective, SelectValueTemplateDirective, SeparatorComponent, ShowAtDirective, SideNavComponent, SideNavDropdownComponent, SideNavDropdownGroupComponent, SideNavDropdownItemComponent, SideNavGroupTitleComponent, SideNavItemComponent, SideNavOverlayComponent, SideNavToggleComponent, SpecialOptionControls, SpinnerComponent, StatusBadgeComponent, TEDI_THEME_DEFAULT_TOKEN, TEDI_TRANSLATION_DEFAULT_TOKEN, THEME_CLASS_PREFIX, THEME_COOKIE_NAME, THEME_FALLBACK_VALUE, TOAST_DEFAULT_DURATION, TagComponent, TediTranslationPipe, TediTranslationService, TextComponent, TextFieldComponent, TextGroupComponent, TextGroupLabelComponent, TextGroupValueComponent, ThemeService, TimelineComponent, TimelineDescriptionComponent, TimelineItemComponent, TimelineTitleComponent, ToastComponent, ToastService, ToggleComponent, TooltipComponent, TooltipContentComponent, TooltipTriggerComponent, VerticalSpacingDirective, VerticalSpacingItemDirective, breakpointInput, generateUUID, provideTedi };
|
|
6882
7807
|
//# sourceMappingURL=tedi-design-system-angular-tedi.mjs.map
|