@tedi-design-system/angular 6.5.0-rc.16 → 6.5.0-rc.18
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/tedi/index.d.ts
CHANGED
|
@@ -1,18 +1,18 @@
|
|
|
1
1
|
import * as _angular_core from '@angular/core';
|
|
2
|
-
import { AfterContentChecked, AfterViewInit, InputSignal, Signal, PipeTransform, ElementRef, TemplateRef, OnDestroy, Injector, InjectionToken, WritableSignal, OnInit,
|
|
2
|
+
import { AfterContentChecked, AfterViewInit, InputSignal, Signal, PipeTransform, ElementRef, TemplateRef, OnDestroy, Injector, InjectionToken, WritableSignal, OnInit, AfterViewChecked, AfterContentInit, QueryList, EnvironmentProviders } from '@angular/core';
|
|
3
3
|
import * as _tedi_design_system_angular_tedi from '@tedi-design-system/angular/tedi';
|
|
4
|
+
import { ControlValueAccessor, NgControl } from '@angular/forms';
|
|
4
5
|
import * as _tanstack_table_core from '@tanstack/table-core';
|
|
5
6
|
import { CdkDragDrop } from '@angular/cdk/drag-drop';
|
|
6
7
|
import { Table, VisibilityState, ColumnOrderState, ColumnSizingState, RowSelectionState, ExpandedState, ColumnFiltersState, SortingState, PaginationState, ColumnDef, CellContext, Row, Column } from '@tanstack/angular-table';
|
|
7
8
|
import * as _angular_cdk_overlay from '@angular/cdk/overlay';
|
|
8
9
|
import { ConnectedOverlayPositionChange, ConnectedPosition, CdkOverlayOrigin, CdkConnectedOverlay } from '@angular/cdk/overlay';
|
|
9
|
-
import {
|
|
10
|
+
import { _IdGenerator } from '@angular/cdk/a11y';
|
|
10
11
|
import { CdkListbox } from '@angular/cdk/listbox';
|
|
11
12
|
import { Observable } from 'rxjs';
|
|
12
13
|
import { DialogRef } from '@angular/cdk/dialog';
|
|
13
14
|
import { ComponentType } from '@angular/cdk/portal';
|
|
14
15
|
import * as i1 from '@angular/cdk/scrolling';
|
|
15
|
-
import { _IdGenerator } from '@angular/cdk/a11y';
|
|
16
16
|
|
|
17
17
|
type IconSize = 8 | 12 | 16 | 18 | 24 | 36 | 48 | "inherit";
|
|
18
18
|
type IconVariant = "filled" | "outlined";
|
|
@@ -1361,6 +1361,13 @@ declare const translationsMap: {
|
|
|
1361
1361
|
en: string;
|
|
1362
1362
|
ru: string;
|
|
1363
1363
|
};
|
|
1364
|
+
"date-picker.today": {
|
|
1365
|
+
description: string;
|
|
1366
|
+
components: string[];
|
|
1367
|
+
et: string;
|
|
1368
|
+
en: string;
|
|
1369
|
+
ru: string;
|
|
1370
|
+
};
|
|
1364
1371
|
"date-picker.go-next-month": {
|
|
1365
1372
|
description: string;
|
|
1366
1373
|
components: string[];
|
|
@@ -1368,6 +1375,41 @@ declare const translationsMap: {
|
|
|
1368
1375
|
en: string;
|
|
1369
1376
|
ru: string;
|
|
1370
1377
|
};
|
|
1378
|
+
"date-picker.calendar-nav": {
|
|
1379
|
+
description: string;
|
|
1380
|
+
components: string[];
|
|
1381
|
+
et: string;
|
|
1382
|
+
en: string;
|
|
1383
|
+
ru: string;
|
|
1384
|
+
};
|
|
1385
|
+
"date-picker.choose-month": {
|
|
1386
|
+
description: string;
|
|
1387
|
+
components: string[];
|
|
1388
|
+
et: string;
|
|
1389
|
+
en: string;
|
|
1390
|
+
ru: string;
|
|
1391
|
+
};
|
|
1392
|
+
"date-picker.choose-year": {
|
|
1393
|
+
description: string;
|
|
1394
|
+
components: string[];
|
|
1395
|
+
et: string;
|
|
1396
|
+
en: string;
|
|
1397
|
+
ru: string;
|
|
1398
|
+
};
|
|
1399
|
+
"date-picker.week-number": {
|
|
1400
|
+
description: string;
|
|
1401
|
+
components: string[];
|
|
1402
|
+
et: (n: number) => string;
|
|
1403
|
+
en: (n: number) => string;
|
|
1404
|
+
ru: (n: number) => string;
|
|
1405
|
+
};
|
|
1406
|
+
"date-picker.week-number-header": {
|
|
1407
|
+
description: string;
|
|
1408
|
+
components: string[];
|
|
1409
|
+
et: string;
|
|
1410
|
+
en: string;
|
|
1411
|
+
ru: string;
|
|
1412
|
+
};
|
|
1371
1413
|
"date-picker.go-prev-month": {
|
|
1372
1414
|
description: string;
|
|
1373
1415
|
components: string[];
|
|
@@ -1417,6 +1459,41 @@ declare const translationsMap: {
|
|
|
1417
1459
|
en: string;
|
|
1418
1460
|
ru: string;
|
|
1419
1461
|
};
|
|
1462
|
+
"date-field.remove-chip": {
|
|
1463
|
+
description: string;
|
|
1464
|
+
components: string[];
|
|
1465
|
+
et: (label: string) => string;
|
|
1466
|
+
en: (label: string) => string;
|
|
1467
|
+
ru: (label: string) => string;
|
|
1468
|
+
};
|
|
1469
|
+
"date-field.calendar-dialog": {
|
|
1470
|
+
description: string;
|
|
1471
|
+
components: string[];
|
|
1472
|
+
et: string;
|
|
1473
|
+
en: string;
|
|
1474
|
+
ru: string;
|
|
1475
|
+
};
|
|
1476
|
+
"date-field.modal-title": {
|
|
1477
|
+
description: string;
|
|
1478
|
+
components: string[];
|
|
1479
|
+
et: string;
|
|
1480
|
+
en: string;
|
|
1481
|
+
ru: string;
|
|
1482
|
+
};
|
|
1483
|
+
"date-field.confirm": {
|
|
1484
|
+
description: string;
|
|
1485
|
+
components: string[];
|
|
1486
|
+
et: string;
|
|
1487
|
+
en: string;
|
|
1488
|
+
ru: string;
|
|
1489
|
+
};
|
|
1490
|
+
"date-field.cancel": {
|
|
1491
|
+
description: string;
|
|
1492
|
+
components: string[];
|
|
1493
|
+
et: string;
|
|
1494
|
+
en: string;
|
|
1495
|
+
ru: string;
|
|
1496
|
+
};
|
|
1420
1497
|
"time-picker.hours": {
|
|
1421
1498
|
description: string;
|
|
1422
1499
|
components: string[];
|
|
@@ -2375,6 +2452,437 @@ declare class CarouselNavigationComponent {
|
|
|
2375
2452
|
static ɵcmp: _angular_core.ɵɵComponentDeclaration<CarouselNavigationComponent, "tedi-carousel-navigation", never, {}, {}, never, never, true, never>;
|
|
2376
2453
|
}
|
|
2377
2454
|
|
|
2455
|
+
/**
|
|
2456
|
+
* A date range with an inclusive start (`from`) and optional inclusive end (`to`).
|
|
2457
|
+
* When `to` is undefined the range degenerates to the single day `from`.
|
|
2458
|
+
*/
|
|
2459
|
+
type DateRange = {
|
|
2460
|
+
from: Date;
|
|
2461
|
+
to?: Date;
|
|
2462
|
+
};
|
|
2463
|
+
/**
|
|
2464
|
+
* Formats a Date object to dd.MM.yyyy string format.
|
|
2465
|
+
*
|
|
2466
|
+
* Thin wrapper around `formatLocaleDate(date, 'et-EE')` kept for back-compat.
|
|
2467
|
+
* New code should call `formatLocaleDate` directly with the desired locale.
|
|
2468
|
+
*/
|
|
2469
|
+
declare function formatDate(date: Date): string;
|
|
2470
|
+
/**
|
|
2471
|
+
* Parses a dd.MM.yyyy string to a Date object.
|
|
2472
|
+
* Returns null if the string is invalid.
|
|
2473
|
+
*
|
|
2474
|
+
* Thin wrapper around `parseLocaleDate(str, 'et-EE')` kept for back-compat.
|
|
2475
|
+
* Note: `parseLocaleDate` returns `Date | undefined`; this wrapper normalizes
|
|
2476
|
+
* undefined to null so existing callers asserting `=== null` still work.
|
|
2477
|
+
*/
|
|
2478
|
+
declare function parseDate(str: string): Date | null;
|
|
2479
|
+
/**
|
|
2480
|
+
* Checks if two dates represent the same calendar day.
|
|
2481
|
+
*/
|
|
2482
|
+
declare function isSameDay(a: Date, b: Date): boolean;
|
|
2483
|
+
/**
|
|
2484
|
+
* Checks if date a is before date b (day-level, time ignored).
|
|
2485
|
+
*/
|
|
2486
|
+
declare function isBeforeDay(a: Date, b: Date): boolean;
|
|
2487
|
+
/**
|
|
2488
|
+
* Checks if date a is after date b (day-level, time ignored).
|
|
2489
|
+
*/
|
|
2490
|
+
declare function isAfterDay(a: Date, b: Date): boolean;
|
|
2491
|
+
/**
|
|
2492
|
+
* Returns the ISO week number for a given date.
|
|
2493
|
+
*/
|
|
2494
|
+
declare function getISOWeek(date: Date): number;
|
|
2495
|
+
/**
|
|
2496
|
+
* Returns a new Date offset by `n` days from `date`. `n` may be negative.
|
|
2497
|
+
*/
|
|
2498
|
+
declare function addDays(date: Date, n: number): Date;
|
|
2499
|
+
/**
|
|
2500
|
+
* Returns a new Date offset by `n` months from `date`. Clamps the day to the
|
|
2501
|
+
* last day of the target month (e.g. Jan 31 + 1 month → Feb 28/29).
|
|
2502
|
+
*/
|
|
2503
|
+
declare function addMonths(date: Date, n: number): Date;
|
|
2504
|
+
/**
|
|
2505
|
+
* Returns a new Date offset by `n` years from `date`. Clamps Feb 29 to Feb 28
|
|
2506
|
+
* in non-leap target years.
|
|
2507
|
+
*/
|
|
2508
|
+
declare function addYears(date: Date, n: number): Date;
|
|
2509
|
+
/**
|
|
2510
|
+
* Returns the first day of the month for `date` at 00:00 local time.
|
|
2511
|
+
*/
|
|
2512
|
+
declare function startOfMonth(date: Date): Date;
|
|
2513
|
+
/**
|
|
2514
|
+
* Returns the last day of the month for `date` at 00:00 local time.
|
|
2515
|
+
*/
|
|
2516
|
+
declare function endOfMonth(date: Date): Date;
|
|
2517
|
+
/**
|
|
2518
|
+
* Returns the first day of the week containing `date`, given a locale's
|
|
2519
|
+
* first day of week (0=Sun..6=Sat).
|
|
2520
|
+
*/
|
|
2521
|
+
declare function startOfWeek(date: Date, firstDayOfWeek: number): Date;
|
|
2522
|
+
/**
|
|
2523
|
+
* Returns the number of days in the given month/year. `monthIndex` is 0-based.
|
|
2524
|
+
*/
|
|
2525
|
+
declare function getDaysInMonth(year: number, monthIndex: number): number;
|
|
2526
|
+
/**
|
|
2527
|
+
* Checks if two dates fall in the same calendar month and year.
|
|
2528
|
+
*/
|
|
2529
|
+
declare function isSameMonth(a: Date, b: Date): boolean;
|
|
2530
|
+
/**
|
|
2531
|
+
* Checks if two dates fall in the same calendar year.
|
|
2532
|
+
*/
|
|
2533
|
+
declare function isSameYear(a: Date, b: Date): boolean;
|
|
2534
|
+
/**
|
|
2535
|
+
* Returns the locale's first day of week as a JS day index (0=Sun..6=Sat).
|
|
2536
|
+
*
|
|
2537
|
+
* Reads `Intl.Locale(localeCode).getWeekInfo()` when available, falling back
|
|
2538
|
+
* to 1 (Monday) when unavailable. Intl returns 1-7 (1=Mon..7=Sun); this
|
|
2539
|
+
* function converts to JS's 0-6 convention.
|
|
2540
|
+
*/
|
|
2541
|
+
declare function getFirstDayOfWeek(localeCode: string): number;
|
|
2542
|
+
/**
|
|
2543
|
+
* Returns 12 month names (January..December) in the requested locale and format.
|
|
2544
|
+
*/
|
|
2545
|
+
declare function getMonthNames(localeCode: string, format: "long" | "short"): string[];
|
|
2546
|
+
/**
|
|
2547
|
+
* Returns 7 weekday names starting at `firstDayOfWeek` (0=Sun..6=Sat) in the
|
|
2548
|
+
* requested locale and format.
|
|
2549
|
+
*/
|
|
2550
|
+
declare function getWeekdayNames(localeCode: string, format: "long" | "short" | "narrow", firstDayOfWeek: number): string[];
|
|
2551
|
+
/**
|
|
2552
|
+
* Formats a Date according to the given locale's short numeric form.
|
|
2553
|
+
* For `et-EE` produces `dd.MM.yyyy`; for `en-US` `MM/dd/yyyy`; for `en-GB`
|
|
2554
|
+
* `dd/MM/yyyy`; etc.
|
|
2555
|
+
*/
|
|
2556
|
+
declare function formatLocaleDate(date: Date, localeCode: string): string;
|
|
2557
|
+
/**
|
|
2558
|
+
* Formats a Date as a long-form, locale-aware string suitable for
|
|
2559
|
+
* `aria-label` use — e.g. for `en-US` produces "Friday, May 16, 2026" and for
|
|
2560
|
+
* `et-EE` "reede, 16. mai 2026". Matches react-day-picker's `labelDay` shape.
|
|
2561
|
+
*/
|
|
2562
|
+
declare function formatLocaleDateLong(date: Date, localeCode: string): string;
|
|
2563
|
+
/**
|
|
2564
|
+
* Formats a Date as a locale-aware "Month Year" string — e.g. "May 2026" for
|
|
2565
|
+
* `en-US` and "mai 2026" for `et-EE`. Used as the aria-label for the day
|
|
2566
|
+
* grid and inside the calendar header's aria-live region so screen readers
|
|
2567
|
+
* announce the visible month/year on navigation.
|
|
2568
|
+
*/
|
|
2569
|
+
declare function formatMonthYear(date: Date, localeCode: string): string;
|
|
2570
|
+
/**
|
|
2571
|
+
* Builds a locale-aware manual-entry hint such as `pp.kk.aaaa` (et-EE),
|
|
2572
|
+
* `dd.mm.yyyy` (en) or `дд.мм.гггг` (ru). Field order and separators are
|
|
2573
|
+
* derived from `Intl.DateTimeFormat` (so they always match what the field
|
|
2574
|
+
* formats and parses), while the letter tokens are localized per language.
|
|
2575
|
+
* Falls back to English tokens for unknown languages.
|
|
2576
|
+
*/
|
|
2577
|
+
declare function formatLocaleDateHint(localeCode: string): string;
|
|
2578
|
+
/**
|
|
2579
|
+
* Parses a locale-formatted date string back into a Date.
|
|
2580
|
+
*
|
|
2581
|
+
* Algorithm (mirrors React's defaultParseDate):
|
|
2582
|
+
* 1. Format a reference date with distinct y/m/d digits via Intl.DateTimeFormat.
|
|
2583
|
+
* 2. Walk `formatToParts` to discover the field order and the literal
|
|
2584
|
+
* separators the locale uses.
|
|
2585
|
+
* 3. Build a regex from that ordering using field-aware digit ranges
|
|
2586
|
+
* (day/month: 1-2 digits, year: 2 or 4 digits) and the actual escaped
|
|
2587
|
+
* separators. 3-digit years are rejected.
|
|
2588
|
+
* 4. Match the (trimmed) input; reject if no match.
|
|
2589
|
+
* 5. Validate ranges and check the constructed Date round-trips (so e.g.
|
|
2590
|
+
* Feb 30 is rejected).
|
|
2591
|
+
*
|
|
2592
|
+
* Returns `undefined` on any failure — silent, caller decides UX.
|
|
2593
|
+
*/
|
|
2594
|
+
declare function parseLocaleDate(value: string, localeCode: string): Date | undefined;
|
|
2595
|
+
/**
|
|
2596
|
+
* Returns true if `date` falls within the inclusive `[from, to]` range
|
|
2597
|
+
* (day-level). When `to` is undefined, only `from` matters (same-day check).
|
|
2598
|
+
*/
|
|
2599
|
+
declare function isDateInRange(date: Date, range: DateRange): boolean;
|
|
2600
|
+
/**
|
|
2601
|
+
* Toggles a date in an array of dates (day-level). If a same-day entry exists
|
|
2602
|
+
* it is removed; otherwise the date is appended. Returns a new array.
|
|
2603
|
+
*/
|
|
2604
|
+
declare function toggleDateInArray(dates: Date[], date: Date): Date[];
|
|
2605
|
+
/**
|
|
2606
|
+
* Builds a 6×7 grid of Date cells for the calendar day view.
|
|
2607
|
+
*
|
|
2608
|
+
* - The first weekday of the month is found, then we walk back to
|
|
2609
|
+
* `firstDayOfWeek` to fill leading cells.
|
|
2610
|
+
* - Cells outside the current month are real Date objects when
|
|
2611
|
+
* `showOutsideDays` is true, otherwise `null`.
|
|
2612
|
+
* - Always returns 6 rows × 7 cells (42 cells total).
|
|
2613
|
+
*/
|
|
2614
|
+
declare function buildMonthGrid(month: Date, firstDayOfWeek: number, showOutsideDays: boolean): (Date | null)[][];
|
|
2615
|
+
|
|
2616
|
+
type DateBefore = {
|
|
2617
|
+
before: Date;
|
|
2618
|
+
};
|
|
2619
|
+
type DateAfter = {
|
|
2620
|
+
after: Date;
|
|
2621
|
+
};
|
|
2622
|
+
type DateInterval = {
|
|
2623
|
+
before: Date;
|
|
2624
|
+
after: Date;
|
|
2625
|
+
};
|
|
2626
|
+
type DayOfWeek = {
|
|
2627
|
+
dayOfWeek: number[];
|
|
2628
|
+
};
|
|
2629
|
+
type Matcher = boolean | Date | Date[] | DateBefore | DateAfter | DateInterval | DateRange | DayOfWeek | ((date: Date) => boolean);
|
|
2630
|
+
/**
|
|
2631
|
+
* Returns whether `date` matches the given matcher.
|
|
2632
|
+
*
|
|
2633
|
+
* Semantics mirror react-day-picker:
|
|
2634
|
+
* - `boolean` — returned as-is.
|
|
2635
|
+
* - `Date` — true if same day.
|
|
2636
|
+
* - `Date[]` — true if any entry is the same day.
|
|
2637
|
+
* - `{ before }` — true if date is strictly before `before` (day-level).
|
|
2638
|
+
* - `{ after }` — true if date is strictly after `after` (day-level).
|
|
2639
|
+
* - `{ before, after }` — true if date is OUTSIDE the interval `(after, before)`
|
|
2640
|
+
* (i.e. `date <= after || date >= before`, day-level).
|
|
2641
|
+
* - `{ from, to? }` — true if date is within `[from, to]` inclusive (day-level).
|
|
2642
|
+
* If `to` is omitted, only `from` matters.
|
|
2643
|
+
* - `{ dayOfWeek }` — true if `date.getDay()` is in the array.
|
|
2644
|
+
* - function — called with the date.
|
|
2645
|
+
*/
|
|
2646
|
+
declare function matchDate(date: Date, matcher: Matcher): boolean;
|
|
2647
|
+
/**
|
|
2648
|
+
* Returns true if any matcher in the list matches the given date.
|
|
2649
|
+
* An empty array returns false.
|
|
2650
|
+
*/
|
|
2651
|
+
declare function matchAny(date: Date, matchers: Matcher[]): boolean;
|
|
2652
|
+
|
|
2653
|
+
type StatusIndicatorType = "success" | "danger" | "warning" | "inactive";
|
|
2654
|
+
type StatusIndicatorSize = "sm" | "lg";
|
|
2655
|
+
type StatusIndicatorPosition = "default" | "top-right";
|
|
2656
|
+
declare class StatusIndicatorComponent {
|
|
2657
|
+
/**
|
|
2658
|
+
* Accessible label for the indicator. When provided, the indicator is
|
|
2659
|
+
* exposed to assistive technology with `role="img"`. When omitted, the
|
|
2660
|
+
* indicator is treated as decorative (`aria-hidden="true"`).
|
|
2661
|
+
*/
|
|
2662
|
+
readonly label: _angular_core.InputSignal<string | undefined>;
|
|
2663
|
+
/**
|
|
2664
|
+
* The status type, which determines the indicator color.
|
|
2665
|
+
* @default success
|
|
2666
|
+
*/
|
|
2667
|
+
readonly type: _angular_core.InputSignal<StatusIndicatorType>;
|
|
2668
|
+
/**
|
|
2669
|
+
* The size of the indicator.
|
|
2670
|
+
* @default sm
|
|
2671
|
+
*/
|
|
2672
|
+
readonly size: _angular_core.InputSignal<StatusIndicatorSize>;
|
|
2673
|
+
/**
|
|
2674
|
+
* Whether the indicator has a white border ring.
|
|
2675
|
+
* @default false
|
|
2676
|
+
*/
|
|
2677
|
+
readonly hasBorder: _angular_core.InputSignal<boolean>;
|
|
2678
|
+
/**
|
|
2679
|
+
* Controls positioning of the indicator.
|
|
2680
|
+
* - `'default'` — inline, no absolute positioning
|
|
2681
|
+
* - `'top-right'` — absolutely positioned at the top-right corner of the parent
|
|
2682
|
+
* @default default
|
|
2683
|
+
*/
|
|
2684
|
+
readonly position: _angular_core.InputSignal<StatusIndicatorPosition>;
|
|
2685
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<StatusIndicatorComponent, never>;
|
|
2686
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<StatusIndicatorComponent, "tedi-status-indicator", never, { "label": { "alias": "label"; "required": false; "isSignal": true; }; "type": { "alias": "type"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; "hasBorder": { "alias": "hasBorder"; "required": false; "isSignal": true; }; "position": { "alias": "position"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
2687
|
+
}
|
|
2688
|
+
|
|
2689
|
+
type CalendarView = "days" | "months" | "years";
|
|
2690
|
+
type DateFieldMode = "single" | "multiple" | "range";
|
|
2691
|
+
|
|
2692
|
+
interface DayStatus {
|
|
2693
|
+
type: StatusIndicatorType;
|
|
2694
|
+
/**
|
|
2695
|
+
* Accessible label for the status. Surfaced on the day button's `aria-label`
|
|
2696
|
+
* so screen readers announce the date together with its status — required to
|
|
2697
|
+
* meet WCAG 1.1.1 / 1.4.1 since the indicator dot alone is decorative.
|
|
2698
|
+
*/
|
|
2699
|
+
label: string;
|
|
2700
|
+
}
|
|
2701
|
+
type DayStatusFn = (date: Date) => DayStatus | null | undefined;
|
|
2702
|
+
|
|
2703
|
+
type CalendarValue = Date | Date[] | DateRange | null;
|
|
2704
|
+
type DayPredicate = (date: Date) => boolean;
|
|
2705
|
+
type DayAvailabilityInput$1 = Date[] | DayPredicate | undefined;
|
|
2706
|
+
type MonthPredicate$1 = (month: Date) => boolean;
|
|
2707
|
+
type YearPredicate$1 = (year: Date) => boolean;
|
|
2708
|
+
declare class CalendarComponent implements ControlValueAccessor {
|
|
2709
|
+
/**
|
|
2710
|
+
* Active view (two-way). `days` shows the day grid, `months` the month grid,
|
|
2711
|
+
* `years` the year grid. Driven by `selectionLevel` and the header navigation,
|
|
2712
|
+
* but can be set directly to open the calendar on a specific level.
|
|
2713
|
+
*/
|
|
2714
|
+
readonly view: _angular_core.ModelSignal<CalendarView>;
|
|
2715
|
+
/**
|
|
2716
|
+
* The first (left-most) month shown (two-way). Drives which month grid is
|
|
2717
|
+
* rendered and is updated by header navigation and keyboard paging. For
|
|
2718
|
+
* multi-month layouts the additional months follow this one.
|
|
2719
|
+
*/
|
|
2720
|
+
readonly currentMonth: _angular_core.ModelSignal<Date>;
|
|
2721
|
+
/**
|
|
2722
|
+
* The selected value (two-way / `ControlValueAccessor`). Shape follows `mode`:
|
|
2723
|
+
* `single` → `Date | null`, `multiple` → `Date[]`, `range` → `{ from, to }`.
|
|
2724
|
+
*/
|
|
2725
|
+
readonly value: _angular_core.ModelSignal<CalendarValue>;
|
|
2726
|
+
/**
|
|
2727
|
+
* Selection mode. `single` selects one date, `multiple` toggles dates in an
|
|
2728
|
+
* array, `range` builds a `{ from, to }` range across two clicks.
|
|
2729
|
+
*/
|
|
2730
|
+
readonly mode: _angular_core.InputSignal<DateFieldMode>;
|
|
2731
|
+
/**
|
|
2732
|
+
* Lowest level the user can commit to. `days` shows the day grid as the final
|
|
2733
|
+
* step; `months` and `years` commit at that level instead.
|
|
2734
|
+
*/
|
|
2735
|
+
readonly selectionLevel: _angular_core.InputSignal<CalendarView>;
|
|
2736
|
+
/**
|
|
2737
|
+
* BCP-47 locale used for weekday/month names and the first day of the week.
|
|
2738
|
+
*/
|
|
2739
|
+
readonly localeCode: _angular_core.InputSignal<string>;
|
|
2740
|
+
/**
|
|
2741
|
+
* Render the trailing/leading days from the adjacent month inside the current
|
|
2742
|
+
* month's grid.
|
|
2743
|
+
*/
|
|
2744
|
+
readonly showOutsideDays: _angular_core.InputSignal<boolean>;
|
|
2745
|
+
/** Render the ISO week-number column at the start of each row. */
|
|
2746
|
+
readonly showWeekNumbers: _angular_core.InputSignal<boolean>;
|
|
2747
|
+
/** Show the previous/next navigation chevrons in the header. */
|
|
2748
|
+
readonly showNavigation: _angular_core.InputSignal<boolean>;
|
|
2749
|
+
/**
|
|
2750
|
+
* Render the calendar with its own outer border and rounded corners. Disable
|
|
2751
|
+
* when embedding inside a surface that already has a border (e.g. the
|
|
2752
|
+
* DateField overlay).
|
|
2753
|
+
*/
|
|
2754
|
+
readonly bordered: _angular_core.InputSignal<boolean>;
|
|
2755
|
+
/**
|
|
2756
|
+
* Matchers that mark dates as disabled. Each matcher can be a `Date`, `Date[]`,
|
|
2757
|
+
* `{ before }`, `{ after }`, `{ before, after }`, `{ from, to? }`,
|
|
2758
|
+
* `{ dayOfWeek: number[] }`, or a `(date) => boolean` predicate.
|
|
2759
|
+
*/
|
|
2760
|
+
readonly disabledMatchers: _angular_core.InputSignal<Matcher[]>;
|
|
2761
|
+
/**
|
|
2762
|
+
* Whitelist of selectable days — an explicit `Date[]` or a predicate
|
|
2763
|
+
* `(date) => boolean`. Days outside the whitelist are disabled.
|
|
2764
|
+
*/
|
|
2765
|
+
readonly availableDays: _angular_core.InputSignal<DayAvailabilityInput$1>;
|
|
2766
|
+
/**
|
|
2767
|
+
* Blacklist of unavailable days — a `Date[]` or a predicate `(date) => boolean`.
|
|
2768
|
+
* Takes precedence over `availableDays`.
|
|
2769
|
+
*/
|
|
2770
|
+
readonly unavailableDays: _angular_core.InputSignal<DayAvailabilityInput$1>;
|
|
2771
|
+
/**
|
|
2772
|
+
* Function `(date) => { type, label } | null | undefined` that overlays a
|
|
2773
|
+
* `tedi-status-indicator` dot on specific days. The `label` is surfaced on the
|
|
2774
|
+
* day button's `aria-label` for screen readers.
|
|
2775
|
+
*/
|
|
2776
|
+
readonly dayStatus: _angular_core.InputSignal<DayStatusFn | undefined>;
|
|
2777
|
+
/**
|
|
2778
|
+
* How the header exposes month/year picking. `dropdown` shows two dropdowns;
|
|
2779
|
+
* `grid` switches the body to a month or year grid when the header label is
|
|
2780
|
+
* clicked; `static` renders just the label — only the prev/next chevrons can
|
|
2781
|
+
* change the month.
|
|
2782
|
+
*/
|
|
2783
|
+
readonly monthYearSelectType: _angular_core.InputSignal<"static" | "dropdown" | "grid">;
|
|
2784
|
+
/**
|
|
2785
|
+
* When `mode='multiple'`, prevents clearing the last selected date — at least
|
|
2786
|
+
* one date must remain selected.
|
|
2787
|
+
*/
|
|
2788
|
+
readonly required: _angular_core.InputSignal<boolean>;
|
|
2789
|
+
/**
|
|
2790
|
+
* How many consecutive months to render side by side. Useful for range
|
|
2791
|
+
* selection. The visible count is capped to what fits the viewport width.
|
|
2792
|
+
*/
|
|
2793
|
+
readonly numberOfMonths: _angular_core.InputSignal<number>;
|
|
2794
|
+
/**
|
|
2795
|
+
* Disables all interactions. Combines with the reactive-forms disabled state.
|
|
2796
|
+
*/
|
|
2797
|
+
readonly inputDisabled: _angular_core.InputSignal<boolean>;
|
|
2798
|
+
/**
|
|
2799
|
+
* Predicate `(month) => boolean` returning `true` to disable a whole month
|
|
2800
|
+
* (header navigation and the month grid). Leave `undefined` to disable nothing.
|
|
2801
|
+
*/
|
|
2802
|
+
readonly shouldDisableMonth: _angular_core.InputSignal<MonthPredicate$1 | undefined>;
|
|
2803
|
+
/**
|
|
2804
|
+
* Predicate `(year) => boolean` returning `true` to disable a whole year
|
|
2805
|
+
* (header navigation and the year grid). Leave `undefined` to disable nothing.
|
|
2806
|
+
*/
|
|
2807
|
+
readonly shouldDisableYear: _angular_core.InputSignal<YearPredicate$1 | undefined>;
|
|
2808
|
+
/**
|
|
2809
|
+
* Earliest year offered in the year grid/dropdown. Defaults to 10 years before
|
|
2810
|
+
* the current year when `null`.
|
|
2811
|
+
*/
|
|
2812
|
+
readonly minYear: _angular_core.InputSignal<number | null>;
|
|
2813
|
+
/**
|
|
2814
|
+
* Latest year offered in the year grid/dropdown. Defaults to 10 years after
|
|
2815
|
+
* the current year when `null`.
|
|
2816
|
+
*/
|
|
2817
|
+
readonly maxYear: _angular_core.InputSignal<number | null>;
|
|
2818
|
+
/**
|
|
2819
|
+
* Emitted whenever a value is committed. `date` is the new full value (shape
|
|
2820
|
+
* follows `mode`); `day` is the specific day/month/year that was clicked.
|
|
2821
|
+
*/
|
|
2822
|
+
readonly select: _angular_core.OutputEmitterRef<{
|
|
2823
|
+
date: CalendarValue;
|
|
2824
|
+
day: Date;
|
|
2825
|
+
}>;
|
|
2826
|
+
private readonly hostEl;
|
|
2827
|
+
private readonly injector;
|
|
2828
|
+
private readonly destroyRef;
|
|
2829
|
+
readonly yearPageSize = 12;
|
|
2830
|
+
private readonly cvaDisabled;
|
|
2831
|
+
private readonly internalYearPageStart;
|
|
2832
|
+
readonly hoveredDay: _angular_core.WritableSignal<Date | null>;
|
|
2833
|
+
private readonly viewportWidth;
|
|
2834
|
+
private onChange;
|
|
2835
|
+
private onTouched;
|
|
2836
|
+
constructor();
|
|
2837
|
+
private static readonly VIEWPORT_MARGIN_PX;
|
|
2838
|
+
private updateFitColumns;
|
|
2839
|
+
readonly effectiveDisabled: _angular_core.Signal<boolean>;
|
|
2840
|
+
readonly firstDayOfWeek: _angular_core.Signal<number>;
|
|
2841
|
+
readonly monthDates: _angular_core.Signal<Date[]>;
|
|
2842
|
+
readonly resolvedMinYear: _angular_core.Signal<number>;
|
|
2843
|
+
readonly resolvedMaxYear: _angular_core.Signal<number>;
|
|
2844
|
+
readonly yearPageStart: _angular_core.Signal<number>;
|
|
2845
|
+
readonly selectedSingle: _angular_core.Signal<Date | null>;
|
|
2846
|
+
readonly computedDisabledMatchers: _angular_core.Signal<Matcher[]>;
|
|
2847
|
+
readonly effectiveIsMonthDisabled: _angular_core.Signal<MonthPredicate$1>;
|
|
2848
|
+
readonly effectiveIsYearDisabled: _angular_core.Signal<YearPredicate$1>;
|
|
2849
|
+
writeValue(value: CalendarValue): void;
|
|
2850
|
+
registerOnChange(fn: (value: CalendarValue) => void): void;
|
|
2851
|
+
registerOnTouched(fn: () => void): void;
|
|
2852
|
+
setDisabledState(disabled: boolean): void;
|
|
2853
|
+
handlePrev(): void;
|
|
2854
|
+
handleNext(): void;
|
|
2855
|
+
handleHeaderMonthChange(monthStartDate: Date, index?: number): void;
|
|
2856
|
+
handleHeaderYearChange(yearStartDate: Date, index?: number): void;
|
|
2857
|
+
handleHeaderViewChange(nextView: CalendarView): void;
|
|
2858
|
+
handleDaySelect(day: Date): void;
|
|
2859
|
+
handleMonthSelect(monthStartDate: Date): void;
|
|
2860
|
+
handleYearSelect(yearStartDate: Date): void;
|
|
2861
|
+
private applyModeSelection;
|
|
2862
|
+
handleKeydown(event: KeyboardEvent): void;
|
|
2863
|
+
private handleDaysKeydown;
|
|
2864
|
+
private computeDayKeyTarget;
|
|
2865
|
+
private skipDisabledDays;
|
|
2866
|
+
private adjustCurrentMonthForFocus;
|
|
2867
|
+
private handleMonthsKeydown;
|
|
2868
|
+
private handleYearsKeydown;
|
|
2869
|
+
private focusGridIndex;
|
|
2870
|
+
private queryGridButtons;
|
|
2871
|
+
/**
|
|
2872
|
+
* Moves focus to the calendar's active cell — the roving-tabindex day in the
|
|
2873
|
+
* day view, or the first enabled control in the month/year views. Used by
|
|
2874
|
+
* popover hosts (e.g. date-field) to pull focus into the calendar when it
|
|
2875
|
+
* opens, since the CDK overlay is detached from the trigger in DOM order.
|
|
2876
|
+
*/
|
|
2877
|
+
focusActiveCell(): void;
|
|
2878
|
+
private focusDayCell;
|
|
2879
|
+
private commit;
|
|
2880
|
+
private partialRange;
|
|
2881
|
+
private deriveAnchor;
|
|
2882
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<CalendarComponent, never>;
|
|
2883
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<CalendarComponent, "tedi-calendar", never, { "view": { "alias": "view"; "required": false; "isSignal": true; }; "currentMonth": { "alias": "currentMonth"; "required": false; "isSignal": true; }; "value": { "alias": "value"; "required": false; "isSignal": true; }; "mode": { "alias": "mode"; "required": false; "isSignal": true; }; "selectionLevel": { "alias": "selectionLevel"; "required": false; "isSignal": true; }; "localeCode": { "alias": "localeCode"; "required": false; "isSignal": true; }; "showOutsideDays": { "alias": "showOutsideDays"; "required": false; "isSignal": true; }; "showWeekNumbers": { "alias": "showWeekNumbers"; "required": false; "isSignal": true; }; "showNavigation": { "alias": "showNavigation"; "required": false; "isSignal": true; }; "bordered": { "alias": "bordered"; "required": false; "isSignal": true; }; "disabledMatchers": { "alias": "disabledMatchers"; "required": false; "isSignal": true; }; "availableDays": { "alias": "availableDays"; "required": false; "isSignal": true; }; "unavailableDays": { "alias": "unavailableDays"; "required": false; "isSignal": true; }; "dayStatus": { "alias": "dayStatus"; "required": false; "isSignal": true; }; "monthYearSelectType": { "alias": "monthYearSelectType"; "required": false; "isSignal": true; }; "required": { "alias": "required"; "required": false; "isSignal": true; }; "numberOfMonths": { "alias": "numberOfMonths"; "required": false; "isSignal": true; }; "inputDisabled": { "alias": "inputDisabled"; "required": false; "isSignal": true; }; "shouldDisableMonth": { "alias": "shouldDisableMonth"; "required": false; "isSignal": true; }; "shouldDisableYear": { "alias": "shouldDisableYear"; "required": false; "isSignal": true; }; "minYear": { "alias": "minYear"; "required": false; "isSignal": true; }; "maxYear": { "alias": "maxYear"; "required": false; "isSignal": true; }; }, { "view": "viewChange"; "currentMonth": "currentMonthChange"; "value": "valueChange"; "select": "select"; }, never, ["[tediCalendarFooter]"], true, never>;
|
|
2884
|
+
}
|
|
2885
|
+
|
|
2378
2886
|
type PaginationBackground = "white" | "transparent";
|
|
2379
2887
|
/**
|
|
2380
2888
|
* Visibility toggle for the results / page-size / pager / arrow slots.
|
|
@@ -4486,19 +4994,414 @@ declare class RadioCardGroupComponent {
|
|
|
4486
4994
|
static ɵcmp: _angular_core.ɵɵComponentDeclaration<RadioCardGroupComponent, "tedi-radio-card-group", never, { "grouped": { "alias": "grouped"; "required": false; "isSignal": true; }; }, {}, never, ["*"], true, never>;
|
|
4487
4995
|
}
|
|
4488
4996
|
|
|
4489
|
-
|
|
4490
|
-
|
|
4491
|
-
/**
|
|
4492
|
-
readonly
|
|
4493
|
-
/**
|
|
4494
|
-
readonly
|
|
4495
|
-
/**
|
|
4496
|
-
readonly
|
|
4497
|
-
|
|
4498
|
-
readonly
|
|
4499
|
-
|
|
4500
|
-
|
|
4501
|
-
|
|
4997
|
+
type EllipsisPosition = "start" | "end";
|
|
4998
|
+
declare class EllipsisComponent {
|
|
4999
|
+
/** Maximum number of lines before truncating. End (multi-line) only. */
|
|
5000
|
+
readonly lineClamp: _angular_core.InputSignal<number>;
|
|
5001
|
+
/** Whether truncated content shows a hover/focus tooltip with full text. */
|
|
5002
|
+
readonly tooltip: _angular_core.InputSignal<boolean>;
|
|
5003
|
+
/** Ellipsis position. 'start' = leading, single-line. 'end' = trailing, multi-line. */
|
|
5004
|
+
readonly position: _angular_core.InputSignal<EllipsisPosition>;
|
|
5005
|
+
readonly content: _angular_core.Signal<ElementRef<HTMLElement> | undefined>;
|
|
5006
|
+
readonly isEllipsed: _angular_core.WritableSignal<boolean>;
|
|
5007
|
+
readonly fullText: _angular_core.WritableSignal<string>;
|
|
5008
|
+
constructor();
|
|
5009
|
+
readonly contentClasses: _angular_core.Signal<string>;
|
|
5010
|
+
readonly clampStyle: _angular_core.Signal<string | null>;
|
|
5011
|
+
private updateEllipsedState;
|
|
5012
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<EllipsisComponent, never>;
|
|
5013
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<EllipsisComponent, "tedi-ellipsis", never, { "lineClamp": { "alias": "lineClamp"; "required": false; "isSignal": true; }; "tooltip": { "alias": "tooltip"; "required": false; "isSignal": true; }; "position": { "alias": "position"; "required": false; "isSignal": true; }; }, {}, never, ["*"], true, never>;
|
|
5014
|
+
}
|
|
5015
|
+
|
|
5016
|
+
type TagType = "primary" | "secondary" | "danger";
|
|
5017
|
+
type TagEllipsis = "start" | "end" | false;
|
|
5018
|
+
declare class TagComponent {
|
|
5019
|
+
readonly idGenerator: _IdGenerator;
|
|
5020
|
+
readonly uniqueId: string;
|
|
5021
|
+
/**
|
|
5022
|
+
* Whether the tag is in loading state.
|
|
5023
|
+
* When true, a spinner will be displayed inside the tag.
|
|
5024
|
+
* @default false
|
|
5025
|
+
*/
|
|
5026
|
+
loading: _angular_core.InputSignal<boolean>;
|
|
5027
|
+
/**
|
|
5028
|
+
* Whether the tag can be closed.
|
|
5029
|
+
* When true, a close button will be displayed that emits the 'closed' event when clicked.
|
|
5030
|
+
* @default false
|
|
5031
|
+
*/
|
|
5032
|
+
closable: _angular_core.InputSignal<boolean>;
|
|
5033
|
+
/**
|
|
5034
|
+
* The visual style of the tag.
|
|
5035
|
+
* Possible values: 'primary', 'secondary', 'danger'
|
|
5036
|
+
* @default "primary"
|
|
5037
|
+
*/
|
|
5038
|
+
type: _angular_core.InputSignal<TagType>;
|
|
5039
|
+
/**
|
|
5040
|
+
* Which end the label truncates from when it doesn't fit. `false` (default)
|
|
5041
|
+
* never truncates — the label wraps and the tag keeps its full width. `end`
|
|
5042
|
+
* shows an ellipsis at the end (`Long label…`); `start` shows it at the start
|
|
5043
|
+
* (`…label`), which keeps the most significant part of values like dates
|
|
5044
|
+
* visible. Truncation only kicks in when the tag is width-constrained, and the
|
|
5045
|
+
* full label is revealed in a tooltip on hover/focus.
|
|
5046
|
+
* @default false
|
|
5047
|
+
*/
|
|
5048
|
+
ellipsis: _angular_core.InputSignal<TagEllipsis>;
|
|
5049
|
+
/**
|
|
5050
|
+
* Event emitted when the close button is clicked.
|
|
5051
|
+
*/
|
|
5052
|
+
closed: _angular_core.OutputEmitterRef<Event>;
|
|
5053
|
+
classes: _angular_core.Signal<string>;
|
|
5054
|
+
ellipsisPosition: _angular_core.Signal<EllipsisPosition>;
|
|
5055
|
+
handleClose(event: Event): void;
|
|
5056
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<TagComponent, never>;
|
|
5057
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<TagComponent, "tedi-tag", never, { "loading": { "alias": "loading"; "required": false; "isSignal": true; }; "closable": { "alias": "closable"; "required": false; "isSignal": true; }; "type": { "alias": "type"; "required": false; "isSignal": true; }; "ellipsis": { "alias": "ellipsis"; "required": false; "isSignal": true; }; }, { "closed": "closed"; }, never, ["*"], true, never>;
|
|
5058
|
+
}
|
|
5059
|
+
|
|
5060
|
+
interface DateInputTag {
|
|
5061
|
+
id: string;
|
|
5062
|
+
label: string;
|
|
5063
|
+
}
|
|
5064
|
+
declare class DateInputComponent implements AfterViewChecked {
|
|
5065
|
+
readonly inputId: _angular_core.InputSignal<string>;
|
|
5066
|
+
readonly value: _angular_core.InputSignal<string>;
|
|
5067
|
+
readonly tags: _angular_core.InputSignal<readonly DateInputTag[]>;
|
|
5068
|
+
readonly mode: _angular_core.InputSignal<DateFieldMode>;
|
|
5069
|
+
/**
|
|
5070
|
+
* Multiple mode: when `true` (default) the tags wrap to multiple rows and the
|
|
5071
|
+
* field grows in height. When `false` the tags stay on a single row and the
|
|
5072
|
+
* overflow collapses into a "+N" counter tag.
|
|
5073
|
+
*/
|
|
5074
|
+
readonly multiRow: _angular_core.InputSignal<boolean>;
|
|
5075
|
+
/** Which end the tag labels truncate from when they don't fit (`false` = no truncation). */
|
|
5076
|
+
readonly ellipsis: _angular_core.InputSignal<TagEllipsis>;
|
|
5077
|
+
/** Whether the tags show a remove (close) button. */
|
|
5078
|
+
readonly removable: _angular_core.InputSignal<boolean>;
|
|
5079
|
+
readonly placeholder: _angular_core.InputSignal<string>;
|
|
5080
|
+
readonly disabled: _angular_core.InputSignal<boolean>;
|
|
5081
|
+
readonly readOnly: _angular_core.InputSignal<boolean>;
|
|
5082
|
+
readonly required: _angular_core.InputSignal<boolean>;
|
|
5083
|
+
readonly iconActive: _angular_core.InputSignal<boolean>;
|
|
5084
|
+
readonly iconDisabled: _angular_core.InputSignal<boolean>;
|
|
5085
|
+
readonly useNativePicker: _angular_core.InputSignal<boolean>;
|
|
5086
|
+
readonly nativeIsoValue: _angular_core.InputSignal<string>;
|
|
5087
|
+
readonly clearable: _angular_core.InputSignal<boolean>;
|
|
5088
|
+
readonly inputChange: _angular_core.OutputEmitterRef<string>;
|
|
5089
|
+
readonly iconClick: _angular_core.OutputEmitterRef<void>;
|
|
5090
|
+
readonly tagRemove: _angular_core.OutputEmitterRef<string>;
|
|
5091
|
+
readonly clear: _angular_core.OutputEmitterRef<void>;
|
|
5092
|
+
private readonly translationService;
|
|
5093
|
+
private readonly ngZone;
|
|
5094
|
+
private readonly inputElement;
|
|
5095
|
+
private readonly fieldElement;
|
|
5096
|
+
private readonly tagElements;
|
|
5097
|
+
/** Number of tags that fit on a single row; `null` until measured. */
|
|
5098
|
+
readonly visibleTagsCount: _angular_core.WritableSignal<number | null>;
|
|
5099
|
+
constructor();
|
|
5100
|
+
ngAfterViewChecked(): void;
|
|
5101
|
+
onResize(): void;
|
|
5102
|
+
readonly hasTags: _angular_core.Signal<boolean>;
|
|
5103
|
+
readonly visibleTags: _angular_core.Signal<readonly DateInputTag[]>;
|
|
5104
|
+
readonly hiddenTagsCount: _angular_core.Signal<number>;
|
|
5105
|
+
readonly inputType: _angular_core.Signal<"date" | "text">;
|
|
5106
|
+
readonly inputValue: _angular_core.Signal<string>;
|
|
5107
|
+
readonly showClear: _angular_core.Signal<boolean>;
|
|
5108
|
+
readonly iconAriaLabel: _angular_core.Signal<string>;
|
|
5109
|
+
readonly clearAriaLabel: _angular_core.Signal<string>;
|
|
5110
|
+
handleInput(event: Event): void;
|
|
5111
|
+
handleIconClick(): void;
|
|
5112
|
+
handleTagRemove(id: string): void;
|
|
5113
|
+
handleClear(): void;
|
|
5114
|
+
private calculateVisibleTags;
|
|
5115
|
+
private getAvailableTagWidth;
|
|
5116
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<DateInputComponent, never>;
|
|
5117
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<DateInputComponent, "tedi-date-input", never, { "inputId": { "alias": "inputId"; "required": true; "isSignal": true; }; "value": { "alias": "value"; "required": false; "isSignal": true; }; "tags": { "alias": "tags"; "required": false; "isSignal": true; }; "mode": { "alias": "mode"; "required": false; "isSignal": true; }; "multiRow": { "alias": "multiRow"; "required": false; "isSignal": true; }; "ellipsis": { "alias": "ellipsis"; "required": false; "isSignal": true; }; "removable": { "alias": "removable"; "required": false; "isSignal": true; }; "placeholder": { "alias": "placeholder"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "readOnly": { "alias": "readOnly"; "required": false; "isSignal": true; }; "required": { "alias": "required"; "required": false; "isSignal": true; }; "iconActive": { "alias": "iconActive"; "required": false; "isSignal": true; }; "iconDisabled": { "alias": "iconDisabled"; "required": false; "isSignal": true; }; "useNativePicker": { "alias": "useNativePicker"; "required": false; "isSignal": true; }; "nativeIsoValue": { "alias": "nativeIsoValue"; "required": false; "isSignal": true; }; "clearable": { "alias": "clearable"; "required": false; "isSignal": true; }; }, { "inputChange": "inputChange"; "iconClick": "iconClick"; "tagRemove": "tagRemove"; "clear": "clear"; }, never, never, true, never>;
|
|
5118
|
+
}
|
|
5119
|
+
|
|
5120
|
+
/**
|
|
5121
|
+
* Interface implemented by controls that can be used inside `tedi-form-field`.
|
|
5122
|
+
* Allows the form field container to interact with the underlying control.
|
|
5123
|
+
*/
|
|
5124
|
+
interface FormFieldControl<T = unknown> {
|
|
5125
|
+
/**
|
|
5126
|
+
* Current value of the control.
|
|
5127
|
+
*/
|
|
5128
|
+
value: Signal<T>;
|
|
5129
|
+
/**
|
|
5130
|
+
* Whether the control is disabled.
|
|
5131
|
+
*/
|
|
5132
|
+
disabled: Signal<boolean>;
|
|
5133
|
+
/** Reactive invalid state (driven by FormField) */
|
|
5134
|
+
invalid: Signal<boolean>;
|
|
5135
|
+
/** Called by FormField to update invalid state */
|
|
5136
|
+
setInvalidState(isInvalid: boolean): void;
|
|
5137
|
+
/**
|
|
5138
|
+
* Optional method used by the form field clear button.
|
|
5139
|
+
* If implemented, the form field can trigger clearing the value.
|
|
5140
|
+
*/
|
|
5141
|
+
clearField?(): void;
|
|
5142
|
+
}
|
|
5143
|
+
/**
|
|
5144
|
+
* Injection token used by `tedi-form-field` to obtain
|
|
5145
|
+
* the associated control instance.
|
|
5146
|
+
*/
|
|
5147
|
+
declare const TEDI_FORM_FIELD_CONTROL: InjectionToken<FormFieldControl<unknown>>;
|
|
5148
|
+
|
|
5149
|
+
type DateFieldValue = Date | Date[] | DateRange | null;
|
|
5150
|
+
type DateFieldFormatter = (value: DateFieldValue) => string;
|
|
5151
|
+
type DateFieldParser = (value: string) => DateFieldValue | undefined;
|
|
5152
|
+
type DayAvailabilityInput = Date[] | ((d: Date) => boolean) | undefined;
|
|
5153
|
+
type MonthPredicate = (month: Date) => boolean;
|
|
5154
|
+
type YearPredicate = (year: Date) => boolean;
|
|
5155
|
+
type DateFieldCalendarTrigger = "input" | "button";
|
|
5156
|
+
type DateFieldModalInput = boolean | "sm" | "md" | "lg" | "xl";
|
|
5157
|
+
type DateFieldUseNativePicker = boolean | "sm" | "md" | "lg" | "xl";
|
|
5158
|
+
type DateFieldSize = "default" | "small";
|
|
5159
|
+
declare class DateFieldComponent implements ControlValueAccessor, FormFieldControl<DateFieldValue> {
|
|
5160
|
+
/**
|
|
5161
|
+
* Unique ID for label association and accessibility. Bind the sibling
|
|
5162
|
+
* `<label tedi-label [for]>` to the same value.
|
|
5163
|
+
*/
|
|
5164
|
+
readonly inputId: _angular_core.InputSignal<string>;
|
|
5165
|
+
/**
|
|
5166
|
+
* The selected value (two-way / `ControlValueAccessor`). Shape follows `mode`:
|
|
5167
|
+
* `single` → `Date | null`, `multiple` → `Date[]`, `range` → `{ from, to }`.
|
|
5168
|
+
*/
|
|
5169
|
+
readonly value: _angular_core.ModelSignal<DateFieldValue>;
|
|
5170
|
+
/**
|
|
5171
|
+
* Selection mode. `single` selects one date, `multiple` toggles dates in an
|
|
5172
|
+
* array (rendered as tags), `range` builds a `{ from, to }` range across two
|
|
5173
|
+
* clicks.
|
|
5174
|
+
*/
|
|
5175
|
+
readonly mode: _angular_core.InputSignal<DateFieldMode>;
|
|
5176
|
+
/**
|
|
5177
|
+
* `multiple` mode tag layout. `true` (default) wraps tags across rows and
|
|
5178
|
+
* grows the field height; `false` keeps a single row and collapses overflow
|
|
5179
|
+
* into a "+N" counter.
|
|
5180
|
+
*/
|
|
5181
|
+
readonly multiRow: _angular_core.InputSignal<boolean>;
|
|
5182
|
+
/**
|
|
5183
|
+
* Which end the `multiple`-mode tags truncate from when a label doesn't fit.
|
|
5184
|
+
* `false` (default) never truncates; `end` → `05.06…`; `start` → `…06.2026`
|
|
5185
|
+
* (keeps the year visible).
|
|
5186
|
+
*/
|
|
5187
|
+
readonly tagEllipsis: _angular_core.InputSignal<TagEllipsis>;
|
|
5188
|
+
/**
|
|
5189
|
+
* Whether `multiple`-mode tags show a remove button. `true` (default) lets
|
|
5190
|
+
* users remove a selected date by closing its tag; `false` renders them as
|
|
5191
|
+
* read-only chips.
|
|
5192
|
+
*/
|
|
5193
|
+
readonly isTagRemovable: _angular_core.InputSignal<boolean>;
|
|
5194
|
+
/** Placeholder rendered in the input when there is no value. */
|
|
5195
|
+
readonly placeholder: _angular_core.InputSignal<string>;
|
|
5196
|
+
/**
|
|
5197
|
+
* Disables specific days via matchers (does not disable the whole field).
|
|
5198
|
+
* Exposed in templates as `[disabled]`; accepts a `Date`, `Date[]`,
|
|
5199
|
+
* `{ before }`, `{ after }`, `{ from, to? }`, `{ dayOfWeek: number[] }`, or a
|
|
5200
|
+
* `(date) => boolean` predicate (single or array).
|
|
5201
|
+
*/
|
|
5202
|
+
readonly disabledInput: _angular_core.InputSignal<Matcher | Matcher[] | undefined>;
|
|
5203
|
+
/** Disables the field entirely — text input, icon button, and calendar. */
|
|
5204
|
+
readonly inputDisabled: _angular_core.InputSignal<boolean>;
|
|
5205
|
+
/**
|
|
5206
|
+
* Blocks typing into the input but leaves the calendar interactive — useful
|
|
5207
|
+
* for guided picking.
|
|
5208
|
+
*/
|
|
5209
|
+
readonly readOnly: _angular_core.InputSignal<boolean>;
|
|
5210
|
+
/**
|
|
5211
|
+
* Marks the input as required (sets the native `required` attribute). In
|
|
5212
|
+
* `multiple` mode it also prevents clearing the last selected date. The
|
|
5213
|
+
* asterisk indicator lives on the sibling `<label tedi-label [required]>` —
|
|
5214
|
+
* bind it there too, since DateField owns no label.
|
|
5215
|
+
*/
|
|
5216
|
+
readonly required: _angular_core.InputSignal<boolean>;
|
|
5217
|
+
/** Field size — matches the surrounding `tedi-form-field`. */
|
|
5218
|
+
readonly size: _angular_core.InputSignal<DateFieldSize>;
|
|
5219
|
+
/** Disables all dates before this date (inclusive boundary stays enabled). */
|
|
5220
|
+
readonly minDate: _angular_core.InputSignal<Date | undefined>;
|
|
5221
|
+
/** Disables all dates after this date (inclusive boundary stays enabled). */
|
|
5222
|
+
readonly maxDate: _angular_core.InputSignal<Date | undefined>;
|
|
5223
|
+
/** Disable all dates before today. */
|
|
5224
|
+
readonly disablePast: _angular_core.InputSignal<boolean>;
|
|
5225
|
+
/** Disable all dates after today. */
|
|
5226
|
+
readonly disableFuture: _angular_core.InputSignal<boolean>;
|
|
5227
|
+
/**
|
|
5228
|
+
* Predicate `(month) => boolean` returning `true` to disable a whole month in
|
|
5229
|
+
* the calendar's month navigation/grid. Leave `undefined` to disable nothing.
|
|
5230
|
+
*/
|
|
5231
|
+
readonly shouldDisableMonth: _angular_core.InputSignal<MonthPredicate | undefined>;
|
|
5232
|
+
/**
|
|
5233
|
+
* Predicate `(year) => boolean` returning `true` to disable a whole year in
|
|
5234
|
+
* the calendar's year navigation/grid. Leave `undefined` to disable nothing.
|
|
5235
|
+
*/
|
|
5236
|
+
readonly shouldDisableYear: _angular_core.InputSignal<YearPredicate | undefined>;
|
|
5237
|
+
/**
|
|
5238
|
+
* Whitelist of selectable days — an explicit `Date[]` or a predicate
|
|
5239
|
+
* `(date) => boolean`. Every other day is disabled.
|
|
5240
|
+
*/
|
|
5241
|
+
readonly availableDays: _angular_core.InputSignal<DayAvailabilityInput>;
|
|
5242
|
+
/**
|
|
5243
|
+
* Blacklist of unavailable days — a `Date[]` or a predicate `(date) => boolean`.
|
|
5244
|
+
* Takes precedence over `availableDays`.
|
|
5245
|
+
*/
|
|
5246
|
+
readonly unavailableDays: _angular_core.InputSignal<DayAvailabilityInput>;
|
|
5247
|
+
/**
|
|
5248
|
+
* Lowest level the user can commit to. `days` shows the day grid as the final
|
|
5249
|
+
* step; `months` and `years` commit at that level instead.
|
|
5250
|
+
*/
|
|
5251
|
+
readonly selectionLevel: _angular_core.InputSignal<CalendarView>;
|
|
5252
|
+
/**
|
|
5253
|
+
* How the calendar header exposes month/year picking. `dropdown` shows two
|
|
5254
|
+
* dropdowns; `grid` drills into a month/year grid when the header label is
|
|
5255
|
+
* clicked.
|
|
5256
|
+
*/
|
|
5257
|
+
readonly monthYearSelectType: _angular_core.InputSignal<"dropdown" | "grid">;
|
|
5258
|
+
/**
|
|
5259
|
+
* Month the calendar opens on when there is no value. Ignored once a value is
|
|
5260
|
+
* set (the calendar anchors to the selected date).
|
|
5261
|
+
*/
|
|
5262
|
+
readonly initialMonth: _angular_core.InputSignal<Date | undefined>;
|
|
5263
|
+
/**
|
|
5264
|
+
* BCP-47 locale for weekday/month names, the first day of the week, and the
|
|
5265
|
+
* default `formatDate`/`parseDate` behaviour.
|
|
5266
|
+
*/
|
|
5267
|
+
readonly localeCode: _angular_core.InputSignal<string>;
|
|
5268
|
+
/**
|
|
5269
|
+
* Whether to close the picker after a selection. Defaults to `true` in
|
|
5270
|
+
* `single` mode and `false` in `multiple`/`range` when left `undefined`.
|
|
5271
|
+
*/
|
|
5272
|
+
readonly closeOnSelect: _angular_core.InputSignal<boolean | undefined>;
|
|
5273
|
+
/**
|
|
5274
|
+
* Render the trailing/leading days from the adjacent month inside the current
|
|
5275
|
+
* month's grid.
|
|
5276
|
+
*/
|
|
5277
|
+
readonly showOutsideDays: _angular_core.InputSignal<boolean>;
|
|
5278
|
+
/** Render an ISO week-number column on the left of the day grid. */
|
|
5279
|
+
readonly showWeekNumbers: _angular_core.InputSignal<boolean>;
|
|
5280
|
+
/**
|
|
5281
|
+
* Number of month grids shown side by side. Accepts a `BreakpointInput<number>`:
|
|
5282
|
+
* a plain number (e.g. `2`) applies at every breakpoint; pass a per-breakpoint
|
|
5283
|
+
* object (e.g. `{ xs: 1, lg: 2 }`) to narrow it on small screens.
|
|
5284
|
+
*/
|
|
5285
|
+
readonly numberOfMonths: _angular_core.InputSignalWithTransform<BreakpointObject<number>, BreakpointInput<number>>;
|
|
5286
|
+
/**
|
|
5287
|
+
* Enables the calendar picker UI. When resolved to `false`, hides the icon
|
|
5288
|
+
* button and disables the popover/modal — the user can only type a date.
|
|
5289
|
+
* Accepts a `BreakpointInput<boolean>` for per-breakpoint behaviour.
|
|
5290
|
+
*/
|
|
5291
|
+
readonly enableCalendar: _angular_core.InputSignalWithTransform<BreakpointObject<boolean>, BreakpointInput<boolean>>;
|
|
5292
|
+
/**
|
|
5293
|
+
* What opens the calendar. `button` opens it from the icon button; `input`
|
|
5294
|
+
* also opens it when the text input is clicked (and blocks typing). Accepts a
|
|
5295
|
+
* `BreakpointInput` for per-breakpoint behaviour.
|
|
5296
|
+
*/
|
|
5297
|
+
readonly calendarTrigger: _angular_core.InputSignalWithTransform<BreakpointObject<DateFieldCalendarTrigger>, BreakpointInput<DateFieldCalendarTrigger>>;
|
|
5298
|
+
/**
|
|
5299
|
+
* Use the OS native date picker instead of the custom popover (single mode only).
|
|
5300
|
+
* `true` always, `false` never, breakpoint name → native below that breakpoint
|
|
5301
|
+
* (custom popover from that breakpoint up).
|
|
5302
|
+
*/
|
|
5303
|
+
readonly useNativePicker: _angular_core.InputSignal<DateFieldUseNativePicker>;
|
|
5304
|
+
/** Open the calendar in a modal: `true` always, `false` never, breakpoint name → modal below that breakpoint. */
|
|
5305
|
+
readonly modal: _angular_core.InputSignal<DateFieldModalInput>;
|
|
5306
|
+
/** Make the modal fullscreen: `true` always, `false` never, breakpoint name → fullscreen below that breakpoint. Only applies when the calendar actually opens as a modal. */
|
|
5307
|
+
readonly fullscreen: _angular_core.InputSignal<_tedi_design_system_angular_tedi.BreakpointFlag>;
|
|
5308
|
+
/**
|
|
5309
|
+
* Custom formatter for the input's display string. Overrides the locale-aware
|
|
5310
|
+
* default. Receives the `DateFieldValue` and returns a string.
|
|
5311
|
+
*/
|
|
5312
|
+
readonly formatDate: _angular_core.InputSignal<DateFieldFormatter | undefined>;
|
|
5313
|
+
/**
|
|
5314
|
+
* Custom parser for turning typed input into a value. Overrides the
|
|
5315
|
+
* locale-aware default. Receives the raw string and returns a `DateFieldValue`,
|
|
5316
|
+
* or `undefined` when the input can't be parsed.
|
|
5317
|
+
*/
|
|
5318
|
+
readonly parseDate: _angular_core.InputSignal<DateFieldParser | undefined>;
|
|
5319
|
+
/** Emitted whenever the picker (popover/modal) open state changes. */
|
|
5320
|
+
readonly openChange: _angular_core.OutputEmitterRef<boolean>;
|
|
5321
|
+
private readonly breakpointService;
|
|
5322
|
+
private readonly modalService;
|
|
5323
|
+
private readonly hostEl;
|
|
5324
|
+
readonly calendar: _angular_core.Signal<CalendarComponent | undefined>;
|
|
5325
|
+
readonly dateInput: _angular_core.Signal<DateInputComponent>;
|
|
5326
|
+
readonly currentMonth: _angular_core.WritableSignal<Date>;
|
|
5327
|
+
readonly overlayOpen: _angular_core.WritableSignal<boolean>;
|
|
5328
|
+
private readonly openedBy;
|
|
5329
|
+
readonly overlayPositions: _angular_core.Signal<ConnectedPosition[]>;
|
|
5330
|
+
private readonly cvaDisabled;
|
|
5331
|
+
private readonly formInvalid;
|
|
5332
|
+
private modalRef;
|
|
5333
|
+
private onChange;
|
|
5334
|
+
private onTouched;
|
|
5335
|
+
readonly fieldDisabled: _angular_core.Signal<boolean>;
|
|
5336
|
+
readonly disabled: _angular_core.Signal<boolean>;
|
|
5337
|
+
readonly invalid: _angular_core.Signal<boolean>;
|
|
5338
|
+
readonly disabledMatchers: _angular_core.Signal<Matcher[]>;
|
|
5339
|
+
readonly useNativePickerResolved: _angular_core.Signal<boolean>;
|
|
5340
|
+
readonly useNativePickerEffective: _angular_core.Signal<boolean>;
|
|
5341
|
+
readonly numberOfMonthsResolved: _angular_core.Signal<number>;
|
|
5342
|
+
readonly enableCalendarResolved: _angular_core.Signal<boolean>;
|
|
5343
|
+
readonly calendarTriggerResolved: _angular_core.Signal<DateFieldCalendarTrigger>;
|
|
5344
|
+
readonly modalEnabled: _angular_core.Signal<boolean>;
|
|
5345
|
+
readonly closeOnSelectEffective: _angular_core.Signal<boolean>;
|
|
5346
|
+
readonly showCalendar: _angular_core.Signal<boolean>;
|
|
5347
|
+
readonly useModal: _angular_core.Signal<boolean>;
|
|
5348
|
+
readonly usePopover: _angular_core.Signal<boolean>;
|
|
5349
|
+
readonly nativeIsoValue: _angular_core.Signal<string>;
|
|
5350
|
+
readonly effectivePlaceholder: _angular_core.Signal<string>;
|
|
5351
|
+
readonly displayValue: _angular_core.Signal<string>;
|
|
5352
|
+
readonly tagsForMultipleMode: _angular_core.Signal<DateInputTag[]>;
|
|
5353
|
+
readonly canClear: _angular_core.Signal<boolean>;
|
|
5354
|
+
readonly inputIsTrigger: _angular_core.Signal<boolean>;
|
|
5355
|
+
private initialOpenEmit;
|
|
5356
|
+
constructor();
|
|
5357
|
+
writeValue(value: DateFieldValue): void;
|
|
5358
|
+
registerOnChange(fn: (value: DateFieldValue) => void): void;
|
|
5359
|
+
registerOnTouched(fn: () => void): void;
|
|
5360
|
+
setDisabledState(isDisabled: boolean): void;
|
|
5361
|
+
setInvalidState(isInvalid: boolean): void;
|
|
5362
|
+
clearField(): void;
|
|
5363
|
+
handleClear(): void;
|
|
5364
|
+
handleIconClick(): void;
|
|
5365
|
+
private togglePicker;
|
|
5366
|
+
handleInputChange(value: string): void;
|
|
5367
|
+
handleTagRemove(id: string): void;
|
|
5368
|
+
handleInputClick(event: Event): void;
|
|
5369
|
+
handleCalendarSelect(): void;
|
|
5370
|
+
handleCurrentMonthChange(month: Date): void;
|
|
5371
|
+
closeOverlay(): void;
|
|
5372
|
+
handleOverlayOutsideClick(event: MouseEvent): void;
|
|
5373
|
+
handleOverlayAttached(): void;
|
|
5374
|
+
handleOverlayKeydown(event: KeyboardEvent): void;
|
|
5375
|
+
private focusIconButton;
|
|
5376
|
+
private openNativePicker;
|
|
5377
|
+
private openModal;
|
|
5378
|
+
private handleNativeInputChange;
|
|
5379
|
+
private handleSingleParseInput;
|
|
5380
|
+
private parsedValueIsDisabled;
|
|
5381
|
+
private commitValue;
|
|
5382
|
+
private defaultFormat;
|
|
5383
|
+
private deriveAnchor;
|
|
5384
|
+
private resolveBreakpointInput;
|
|
5385
|
+
private startOfToday;
|
|
5386
|
+
private toIsoDate;
|
|
5387
|
+
private queryNativeInput;
|
|
5388
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<DateFieldComponent, never>;
|
|
5389
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<DateFieldComponent, "tedi-date-field", never, { "inputId": { "alias": "inputId"; "required": true; "isSignal": true; }; "value": { "alias": "value"; "required": false; "isSignal": true; }; "mode": { "alias": "mode"; "required": false; "isSignal": true; }; "multiRow": { "alias": "multiRow"; "required": false; "isSignal": true; }; "tagEllipsis": { "alias": "tagEllipsis"; "required": false; "isSignal": true; }; "isTagRemovable": { "alias": "isTagRemovable"; "required": false; "isSignal": true; }; "placeholder": { "alias": "placeholder"; "required": false; "isSignal": true; }; "disabledInput": { "alias": "disabled"; "required": false; "isSignal": true; }; "inputDisabled": { "alias": "inputDisabled"; "required": false; "isSignal": true; }; "readOnly": { "alias": "readOnly"; "required": false; "isSignal": true; }; "required": { "alias": "required"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; "minDate": { "alias": "minDate"; "required": false; "isSignal": true; }; "maxDate": { "alias": "maxDate"; "required": false; "isSignal": true; }; "disablePast": { "alias": "disablePast"; "required": false; "isSignal": true; }; "disableFuture": { "alias": "disableFuture"; "required": false; "isSignal": true; }; "shouldDisableMonth": { "alias": "shouldDisableMonth"; "required": false; "isSignal": true; }; "shouldDisableYear": { "alias": "shouldDisableYear"; "required": false; "isSignal": true; }; "availableDays": { "alias": "availableDays"; "required": false; "isSignal": true; }; "unavailableDays": { "alias": "unavailableDays"; "required": false; "isSignal": true; }; "selectionLevel": { "alias": "selectionLevel"; "required": false; "isSignal": true; }; "monthYearSelectType": { "alias": "monthYearSelectType"; "required": false; "isSignal": true; }; "initialMonth": { "alias": "initialMonth"; "required": false; "isSignal": true; }; "localeCode": { "alias": "localeCode"; "required": false; "isSignal": true; }; "closeOnSelect": { "alias": "closeOnSelect"; "required": false; "isSignal": true; }; "showOutsideDays": { "alias": "showOutsideDays"; "required": false; "isSignal": true; }; "showWeekNumbers": { "alias": "showWeekNumbers"; "required": false; "isSignal": true; }; "numberOfMonths": { "alias": "numberOfMonths"; "required": false; "isSignal": true; }; "enableCalendar": { "alias": "enableCalendar"; "required": false; "isSignal": true; }; "calendarTrigger": { "alias": "calendarTrigger"; "required": false; "isSignal": true; }; "useNativePicker": { "alias": "useNativePicker"; "required": false; "isSignal": true; }; "modal": { "alias": "modal"; "required": false; "isSignal": true; }; "fullscreen": { "alias": "fullscreen"; "required": false; "isSignal": true; }; "formatDate": { "alias": "formatDate"; "required": false; "isSignal": true; }; "parseDate": { "alias": "parseDate"; "required": false; "isSignal": true; }; }, { "value": "valueChange"; "openChange": "openChange"; }, never, ["[tediCalendarFooter]"], true, never>;
|
|
5390
|
+
}
|
|
5391
|
+
|
|
5392
|
+
declare class DatePickerCalendarGridComponent {
|
|
5393
|
+
private readonly gridElement;
|
|
5394
|
+
/** Grid element unique ID for ARIA */
|
|
5395
|
+
readonly gridId: _angular_core.InputSignal<string>;
|
|
5396
|
+
/** Week rows containing day data */
|
|
5397
|
+
readonly weekRows: _angular_core.InputSignal<DatePickerDay[][]>;
|
|
5398
|
+
/** Week numbers for each row */
|
|
5399
|
+
readonly weekNumbers: _angular_core.InputSignal<number[]>;
|
|
5400
|
+
/** Whether to show week numbers */
|
|
5401
|
+
readonly showWeekNumbers: _angular_core.InputSignal<boolean>;
|
|
5402
|
+
/** Currently active date for keyboard navigation */
|
|
5403
|
+
readonly activeDate: _angular_core.InputSignal<Date | null>;
|
|
5404
|
+
/** Currently selected date */
|
|
4502
5405
|
readonly selected: _angular_core.InputSignal<Date | null>;
|
|
4503
5406
|
/** Today's date */
|
|
4504
5407
|
readonly today: _angular_core.InputSignal<Date>;
|
|
@@ -4853,35 +5756,6 @@ declare class SelectValueTemplateDirective<T = unknown> {
|
|
|
4853
5756
|
static ɵdir: _angular_core.ɵɵDirectiveDeclaration<SelectValueTemplateDirective<any>, "[tediSelectValue]", never, {}, {}, never, never, true, never>;
|
|
4854
5757
|
}
|
|
4855
5758
|
|
|
4856
|
-
/**
|
|
4857
|
-
* Interface implemented by controls that can be used inside `tedi-form-field`.
|
|
4858
|
-
* Allows the form field container to interact with the underlying control.
|
|
4859
|
-
*/
|
|
4860
|
-
interface FormFieldControl<T = unknown> {
|
|
4861
|
-
/**
|
|
4862
|
-
* Current value of the control.
|
|
4863
|
-
*/
|
|
4864
|
-
value: Signal<T>;
|
|
4865
|
-
/**
|
|
4866
|
-
* Whether the control is disabled.
|
|
4867
|
-
*/
|
|
4868
|
-
disabled: Signal<boolean>;
|
|
4869
|
-
/** Reactive invalid state (driven by FormField) */
|
|
4870
|
-
invalid: Signal<boolean>;
|
|
4871
|
-
/** Called by FormField to update invalid state */
|
|
4872
|
-
setInvalidState(isInvalid: boolean): void;
|
|
4873
|
-
/**
|
|
4874
|
-
* Optional method used by the form field clear button.
|
|
4875
|
-
* If implemented, the form field can trigger clearing the value.
|
|
4876
|
-
*/
|
|
4877
|
-
clearField?(): void;
|
|
4878
|
-
}
|
|
4879
|
-
/**
|
|
4880
|
-
* Injection token used by `tedi-form-field` to obtain
|
|
4881
|
-
* the associated control instance.
|
|
4882
|
-
*/
|
|
4883
|
-
declare const TEDI_FORM_FIELD_CONTROL: InjectionToken<FormFieldControl<unknown>>;
|
|
4884
|
-
|
|
4885
5759
|
type InputSize = "small" | "large" | "default";
|
|
4886
5760
|
type InputState = "valid" | "error" | "default";
|
|
4887
5761
|
type ValidationState = "invalid" | "valid" | "neutral";
|
|
@@ -4935,7 +5809,7 @@ declare class FormFieldComponent implements AfterContentInit {
|
|
|
4935
5809
|
}>;
|
|
4936
5810
|
clear(): void;
|
|
4937
5811
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<FormFieldComponent, never>;
|
|
4938
|
-
static ɵcmp: _angular_core.ɵɵComponentDeclaration<FormFieldComponent, "tedi-form-field", never, { "size": { "alias": "size"; "required": false; "isSignal": true; }; "icon": { "alias": "icon"; "required": false; "isSignal": true; }; "clearable": { "alias": "clearable"; "required": false; "isSignal": true; }; "inputClass": { "alias": "inputClass"; "required": false; "isSignal": true; }; }, {}, ["control", "ngControl", "feedback"], ["label[tedi-label]", "input[tedi-text-field], tedi-time-field", "tedi-feedback-text"], true, never>;
|
|
5812
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<FormFieldComponent, "tedi-form-field", never, { "size": { "alias": "size"; "required": false; "isSignal": true; }; "icon": { "alias": "icon"; "required": false; "isSignal": true; }; "clearable": { "alias": "clearable"; "required": false; "isSignal": true; }; "inputClass": { "alias": "inputClass"; "required": false; "isSignal": true; }; }, {}, ["control", "ngControl", "feedback"], ["label[tedi-label]", "input[tedi-text-field], tedi-time-field, tedi-date-field", "tedi-feedback-text", "*"], true, never>;
|
|
4939
5813
|
}
|
|
4940
5814
|
|
|
4941
5815
|
type SelectInputSize = Exclude<InputSize, "large">;
|
|
@@ -5056,6 +5930,12 @@ declare class SelectComponent<T = unknown> implements AfterContentChecked, After
|
|
|
5056
5930
|
* @default false
|
|
5057
5931
|
*/
|
|
5058
5932
|
multiRow: _angular_core.InputSignal<boolean>;
|
|
5933
|
+
/**
|
|
5934
|
+
* Which end a selected tag's label truncates from when it doesn't fit.
|
|
5935
|
+
* `false` (default) never truncates; `end` → `label…`; `start` → `…label`.
|
|
5936
|
+
* @default false
|
|
5937
|
+
*/
|
|
5938
|
+
tagEllipsis: _angular_core.InputSignal<TagEllipsis>;
|
|
5059
5939
|
/**
|
|
5060
5940
|
* Function used to compare option values for equality.
|
|
5061
5941
|
* Used to determine which options are selected.
|
|
@@ -5212,7 +6092,7 @@ declare class SelectComponent<T = unknown> implements AfterContentChecked, After
|
|
|
5212
6092
|
registerOnTouched(fn: () => void): void;
|
|
5213
6093
|
setDisabledState(isDisabled: boolean): void;
|
|
5214
6094
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<SelectComponent<any>, never>;
|
|
5215
|
-
static ɵcmp: _angular_core.ɵɵComponentDeclaration<SelectComponent<any>, "tedi-select", never, { "inputId": { "alias": "inputId"; "required": true; "isSignal": true; }; "label": { "alias": "label"; "required": false; "isSignal": true; }; "required": { "alias": "required"; "required": false; "isSignal": true; }; "placeholder": { "alias": "placeholder"; "required": false; "isSignal": true; }; "state": { "alias": "state"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; "clearable": { "alias": "clearable"; "required": false; "isSignal": true; }; "dropdownWidthRef": { "alias": "dropdownWidthRef"; "required": false; "isSignal": true; }; "dropdownAlign": { "alias": "dropdownAlign"; "required": false; "isSignal": true; }; "feedbackText": { "alias": "feedbackText"; "required": false; "isSignal": true; }; "options": { "alias": "options"; "required": false; "isSignal": true; }; "bindLabel": { "alias": "bindLabel"; "required": false; "isSignal": true; }; "bindValue": { "alias": "bindValue"; "required": false; "isSignal": true; }; "allowMultiple": { "alias": "allowMultiple"; "required": false; "isSignal": true; }; "groupBy": { "alias": "groupBy"; "required": false; "isSignal": true; }; "showSelectAll": { "alias": "showSelectAll"; "required": false; "isSignal": true; }; "selectableGroups": { "alias": "selectableGroups"; "required": false; "isSignal": true; }; "isTagRemovable": { "alias": "isTagRemovable"; "required": false; "isSignal": true; }; "multiRow": { "alias": "multiRow"; "required": false; "isSignal": true; }; "compareWith": { "alias": "compareWith"; "required": false; "isSignal": true; }; "disabledKey": { "alias": "disabledKey"; "required": false; "isSignal": true; }; "noOptionsMessage": { "alias": "noOptionsMessage"; "required": false; "isSignal": true; }; "maxDropdownHeight": { "alias": "maxDropdownHeight"; "required": false; "isSignal": true; }; "dropdownType": { "alias": "dropdownType"; "required": false; "isSignal": true; }; "searchable": { "alias": "searchable"; "required": false; "isSignal": true; }; "searchFn": { "alias": "searchFn"; "required": false; "isSignal": true; }; "clearSearchOnSelect": { "alias": "clearSearchOnSelect"; "required": false; "isSignal": true; }; }, { "selectionChange": "selectionChange"; "searchChange": "searchChange"; "opened": "opened"; "closed": "closed"; "cleared": "cleared"; }, ["optionTemplate", "valueTemplate"], never, true, never>;
|
|
6095
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<SelectComponent<any>, "tedi-select", never, { "inputId": { "alias": "inputId"; "required": true; "isSignal": true; }; "label": { "alias": "label"; "required": false; "isSignal": true; }; "required": { "alias": "required"; "required": false; "isSignal": true; }; "placeholder": { "alias": "placeholder"; "required": false; "isSignal": true; }; "state": { "alias": "state"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; "clearable": { "alias": "clearable"; "required": false; "isSignal": true; }; "dropdownWidthRef": { "alias": "dropdownWidthRef"; "required": false; "isSignal": true; }; "dropdownAlign": { "alias": "dropdownAlign"; "required": false; "isSignal": true; }; "feedbackText": { "alias": "feedbackText"; "required": false; "isSignal": true; }; "options": { "alias": "options"; "required": false; "isSignal": true; }; "bindLabel": { "alias": "bindLabel"; "required": false; "isSignal": true; }; "bindValue": { "alias": "bindValue"; "required": false; "isSignal": true; }; "allowMultiple": { "alias": "allowMultiple"; "required": false; "isSignal": true; }; "groupBy": { "alias": "groupBy"; "required": false; "isSignal": true; }; "showSelectAll": { "alias": "showSelectAll"; "required": false; "isSignal": true; }; "selectableGroups": { "alias": "selectableGroups"; "required": false; "isSignal": true; }; "isTagRemovable": { "alias": "isTagRemovable"; "required": false; "isSignal": true; }; "multiRow": { "alias": "multiRow"; "required": false; "isSignal": true; }; "tagEllipsis": { "alias": "tagEllipsis"; "required": false; "isSignal": true; }; "compareWith": { "alias": "compareWith"; "required": false; "isSignal": true; }; "disabledKey": { "alias": "disabledKey"; "required": false; "isSignal": true; }; "noOptionsMessage": { "alias": "noOptionsMessage"; "required": false; "isSignal": true; }; "maxDropdownHeight": { "alias": "maxDropdownHeight"; "required": false; "isSignal": true; }; "dropdownType": { "alias": "dropdownType"; "required": false; "isSignal": true; }; "searchable": { "alias": "searchable"; "required": false; "isSignal": true; }; "searchFn": { "alias": "searchFn"; "required": false; "isSignal": true; }; "clearSearchOnSelect": { "alias": "clearSearchOnSelect"; "required": false; "isSignal": true; }; }, { "selectionChange": "selectionChange"; "searchChange": "searchChange"; "opened": "opened"; "closed": "closed"; "cleared": "cleared"; }, ["optionTemplate", "valueTemplate"], never, true, never>;
|
|
5216
6096
|
}
|
|
5217
6097
|
|
|
5218
6098
|
type ToggleVariant = "primary" | "colored";
|
|
@@ -5509,7 +6389,7 @@ declare class TimeFieldComponent implements ControlValueAccessor, FormFieldContr
|
|
|
5509
6389
|
readonly hasPicker: _angular_core.Signal<boolean>;
|
|
5510
6390
|
readonly hasNativePicker: _angular_core.Signal<boolean>;
|
|
5511
6391
|
readonly customPickerVariant: _angular_core.Signal<TimePickerVariant>;
|
|
5512
|
-
readonly inputType: _angular_core.Signal<"
|
|
6392
|
+
readonly inputType: _angular_core.Signal<"text" | "time">;
|
|
5513
6393
|
readonly inputIsTrigger: _angular_core.Signal<boolean>;
|
|
5514
6394
|
readonly useMobileModal: _angular_core.Signal<boolean>;
|
|
5515
6395
|
readonly usePopover: _angular_core.Signal<boolean>;
|
|
@@ -5760,25 +6640,6 @@ declare class EmptyStateComponent {
|
|
|
5760
6640
|
static ɵcmp: _angular_core.ɵɵComponentDeclaration<EmptyStateComponent, "tedi-empty-state", never, { "type": { "alias": "type"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; "icon": { "alias": "icon"; "required": false; "isSignal": true; }; "iconColor": { "alias": "iconColor"; "required": false; "isSignal": true; }; "iconSize": { "alias": "iconSize"; "required": false; "isSignal": true; }; "heading": { "alias": "heading"; "required": false; "isSignal": true; }; }, {}, never, ["*", "[tedi-empty-state-actions]"], true, never>;
|
|
5761
6641
|
}
|
|
5762
6642
|
|
|
5763
|
-
type EllipsisPosition = "start" | "end";
|
|
5764
|
-
declare class EllipsisComponent {
|
|
5765
|
-
/** Maximum number of lines before truncating. End (multi-line) only. */
|
|
5766
|
-
readonly lineClamp: _angular_core.InputSignal<number>;
|
|
5767
|
-
/** Whether truncated content shows a hover/focus tooltip with full text. */
|
|
5768
|
-
readonly tooltip: _angular_core.InputSignal<boolean>;
|
|
5769
|
-
/** Ellipsis position. 'start' = leading, single-line. 'end' = trailing, multi-line. */
|
|
5770
|
-
readonly position: _angular_core.InputSignal<EllipsisPosition>;
|
|
5771
|
-
readonly content: _angular_core.Signal<ElementRef<HTMLElement> | undefined>;
|
|
5772
|
-
readonly isEllipsed: _angular_core.WritableSignal<boolean>;
|
|
5773
|
-
readonly fullText: _angular_core.WritableSignal<string>;
|
|
5774
|
-
constructor();
|
|
5775
|
-
readonly contentClasses: _angular_core.Signal<string>;
|
|
5776
|
-
readonly clampStyle: _angular_core.Signal<string | null>;
|
|
5777
|
-
private updateEllipsedState;
|
|
5778
|
-
static ɵfac: _angular_core.ɵɵFactoryDeclaration<EllipsisComponent, never>;
|
|
5779
|
-
static ɵcmp: _angular_core.ɵɵComponentDeclaration<EllipsisComponent, "tedi-ellipsis", never, { "lineClamp": { "alias": "lineClamp"; "required": false; "isSignal": true; }; "tooltip": { "alias": "tooltip"; "required": false; "isSignal": true; }; "position": { "alias": "position"; "required": false; "isSignal": true; }; }, {}, never, ["*"], true, never>;
|
|
5780
|
-
}
|
|
5781
|
-
|
|
5782
6643
|
type ColWidth = 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12;
|
|
5783
6644
|
type JustifySelf = "start" | "end" | "center" | "stretch";
|
|
5784
6645
|
type AlignSelf = "start" | "end" | "center" | "stretch";
|
|
@@ -7206,50 +8067,6 @@ declare class PopoverContentComponent {
|
|
|
7206
8067
|
static ɵcmp: _angular_core.ɵɵComponentDeclaration<PopoverContentComponent, "tedi-popover-content", never, { "maxWidth": { "alias": "maxWidth"; "required": false; "isSignal": true; }; "title": { "alias": "title"; "required": false; "isSignal": true; }; "showClose": { "alias": "showClose"; "required": false; "isSignal": true; }; }, {}, never, ["*"], true, never>;
|
|
7207
8068
|
}
|
|
7208
8069
|
|
|
7209
|
-
type TagType = "primary" | "secondary" | "danger";
|
|
7210
|
-
type TagEllipsis = "start" | "end" | false;
|
|
7211
|
-
declare class TagComponent {
|
|
7212
|
-
readonly idGenerator: _IdGenerator;
|
|
7213
|
-
readonly uniqueId: string;
|
|
7214
|
-
/**
|
|
7215
|
-
* Whether the tag is in loading state.
|
|
7216
|
-
* When true, a spinner will be displayed inside the tag.
|
|
7217
|
-
* @default false
|
|
7218
|
-
*/
|
|
7219
|
-
loading: _angular_core.InputSignal<boolean>;
|
|
7220
|
-
/**
|
|
7221
|
-
* Whether the tag can be closed.
|
|
7222
|
-
* When true, a close button will be displayed that emits the 'closed' event when clicked.
|
|
7223
|
-
* @default false
|
|
7224
|
-
*/
|
|
7225
|
-
closable: _angular_core.InputSignal<boolean>;
|
|
7226
|
-
/**
|
|
7227
|
-
* The visual style of the tag.
|
|
7228
|
-
* Possible values: 'primary', 'secondary', 'danger'
|
|
7229
|
-
* @default "primary"
|
|
7230
|
-
*/
|
|
7231
|
-
type: _angular_core.InputSignal<TagType>;
|
|
7232
|
-
/**
|
|
7233
|
-
* Which end the label truncates from when it doesn't fit. `false` (default)
|
|
7234
|
-
* never truncates — the label wraps and the tag keeps its full width. `end`
|
|
7235
|
-
* shows an ellipsis at the end (`Long label…`); `start` shows it at the start
|
|
7236
|
-
* (`…label`), which keeps the most significant part of values like dates
|
|
7237
|
-
* visible. Truncation only kicks in when the tag is width-constrained, and the
|
|
7238
|
-
* full label is revealed in a tooltip on hover/focus.
|
|
7239
|
-
* @default false
|
|
7240
|
-
*/
|
|
7241
|
-
ellipsis: _angular_core.InputSignal<TagEllipsis>;
|
|
7242
|
-
/**
|
|
7243
|
-
* Event emitted when the close button is clicked.
|
|
7244
|
-
*/
|
|
7245
|
-
closed: _angular_core.OutputEmitterRef<Event>;
|
|
7246
|
-
classes: _angular_core.Signal<string>;
|
|
7247
|
-
ellipsisPosition: _angular_core.Signal<EllipsisPosition>;
|
|
7248
|
-
handleClose(event: Event): void;
|
|
7249
|
-
static ɵfac: _angular_core.ɵɵFactoryDeclaration<TagComponent, never>;
|
|
7250
|
-
static ɵcmp: _angular_core.ɵɵComponentDeclaration<TagComponent, "tedi-tag", never, { "loading": { "alias": "loading"; "required": false; "isSignal": true; }; "closable": { "alias": "closable"; "required": false; "isSignal": true; }; "type": { "alias": "type"; "required": false; "isSignal": true; }; "ellipsis": { "alias": "ellipsis"; "required": false; "isSignal": true; }; }, { "closed": "closed"; }, never, ["*"], true, never>;
|
|
7251
|
-
}
|
|
7252
|
-
|
|
7253
8070
|
type StatusBadgeColor = "neutral" | "brand" | "accent" | "success" | "danger" | "warning" | "transparent";
|
|
7254
8071
|
type StatusBadgeVariant = "filled" | "filled-bordered" | "bordered";
|
|
7255
8072
|
type StatusBadgeSize = "default" | "large";
|
|
@@ -7303,42 +8120,6 @@ declare class StatusBadgeComponent {
|
|
|
7303
8120
|
static ɵcmp: _angular_core.ɵɵComponentDeclaration<StatusBadgeComponent, "tedi-status-badge", never, { "text": { "alias": "text"; "required": false; "isSignal": true; }; "class": { "alias": "class"; "required": false; "isSignal": true; }; "title": { "alias": "title"; "required": false; "isSignal": true; }; "role": { "alias": "role"; "required": false; "isSignal": true; }; "color": { "alias": "color"; "required": false; "isSignal": true; }; "variant": { "alias": "variant"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; "status": { "alias": "status"; "required": false; "isSignal": true; }; "icon": { "alias": "icon"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
7304
8121
|
}
|
|
7305
8122
|
|
|
7306
|
-
type StatusIndicatorType = "success" | "danger" | "warning" | "inactive";
|
|
7307
|
-
type StatusIndicatorSize = "sm" | "lg";
|
|
7308
|
-
type StatusIndicatorPosition = "default" | "top-right";
|
|
7309
|
-
declare class StatusIndicatorComponent {
|
|
7310
|
-
/**
|
|
7311
|
-
* Accessible label for the indicator. When provided, the indicator is
|
|
7312
|
-
* exposed to assistive technology with `role="img"`. When omitted, the
|
|
7313
|
-
* indicator is treated as decorative (`aria-hidden="true"`).
|
|
7314
|
-
*/
|
|
7315
|
-
readonly label: _angular_core.InputSignal<string | undefined>;
|
|
7316
|
-
/**
|
|
7317
|
-
* The status type, which determines the indicator color.
|
|
7318
|
-
* @default success
|
|
7319
|
-
*/
|
|
7320
|
-
readonly type: _angular_core.InputSignal<StatusIndicatorType>;
|
|
7321
|
-
/**
|
|
7322
|
-
* The size of the indicator.
|
|
7323
|
-
* @default sm
|
|
7324
|
-
*/
|
|
7325
|
-
readonly size: _angular_core.InputSignal<StatusIndicatorSize>;
|
|
7326
|
-
/**
|
|
7327
|
-
* Whether the indicator has a white border ring.
|
|
7328
|
-
* @default false
|
|
7329
|
-
*/
|
|
7330
|
-
readonly hasBorder: _angular_core.InputSignal<boolean>;
|
|
7331
|
-
/**
|
|
7332
|
-
* Controls positioning of the indicator.
|
|
7333
|
-
* - `'default'` — inline, no absolute positioning
|
|
7334
|
-
* - `'top-right'` — absolutely positioned at the top-right corner of the parent
|
|
7335
|
-
* @default default
|
|
7336
|
-
*/
|
|
7337
|
-
readonly position: _angular_core.InputSignal<StatusIndicatorPosition>;
|
|
7338
|
-
static ɵfac: _angular_core.ɵɵFactoryDeclaration<StatusIndicatorComponent, never>;
|
|
7339
|
-
static ɵcmp: _angular_core.ɵɵComponentDeclaration<StatusIndicatorComponent, "tedi-status-indicator", never, { "label": { "alias": "label"; "required": false; "isSignal": true; }; "type": { "alias": "type"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; "hasBorder": { "alias": "hasBorder"; "required": false; "isSignal": true; }; "position": { "alias": "position"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
7340
|
-
}
|
|
7341
|
-
|
|
7342
8123
|
/**
|
|
7343
8124
|
* A single item inside a `tedi-accordion`. Owns the item's state (expanded)
|
|
7344
8125
|
* and the inputs shared by header and content (selected, showIconCard,
|
|
@@ -7530,6 +8311,52 @@ declare const TEDI_THEME_DEFAULT_TOKEN: InjectionToken<string>;
|
|
|
7530
8311
|
|
|
7531
8312
|
declare const TEDI_TRANSLATION_DEFAULT_TOKEN: InjectionToken<Language>;
|
|
7532
8313
|
|
|
7533
|
-
|
|
7534
|
-
|
|
8314
|
+
declare function cookieSignal<T>(key: string, initialValue: T): _angular_core.WritableSignal<T>;
|
|
8315
|
+
|
|
8316
|
+
declare function getFocusableElements(container: HTMLElement): HTMLElement[];
|
|
8317
|
+
|
|
8318
|
+
/** Horizontal gap (px) between tags in a single row. */
|
|
8319
|
+
declare const TAG_GAP = 8;
|
|
8320
|
+
/** Reserved width (px) for the "+N" counter tag. */
|
|
8321
|
+
declare const COUNTER_TAG_WIDTH = 40;
|
|
8322
|
+
interface TagOverflowOptions {
|
|
8323
|
+
/** Gap between adjacent tags. Defaults to {@link TAG_GAP}. */
|
|
8324
|
+
gap?: number;
|
|
8325
|
+
/** Width reserved for the "+N" counter tag. Defaults to {@link COUNTER_TAG_WIDTH}. */
|
|
8326
|
+
counterWidth?: number;
|
|
8327
|
+
}
|
|
8328
|
+
/**
|
|
8329
|
+
* Given the measured widths of single-row tags and the available width, returns
|
|
8330
|
+
* how many tags fit before the overflow collapses into a "+N" counter.
|
|
8331
|
+
*
|
|
8332
|
+
* Space for the counter is reserved while more tags remain, so the counter
|
|
8333
|
+
* stays visible. At least one tag is always shown when any exist, even if it
|
|
8334
|
+
* overflows on its own.
|
|
8335
|
+
*/
|
|
8336
|
+
declare function calculateVisibleTagCount(tagWidths: readonly number[], availableWidth: number, { gap, counterWidth }?: TagOverflowOptions): number;
|
|
8337
|
+
|
|
8338
|
+
/**
|
|
8339
|
+
* Checks if a string is a valid `HH:mm` time (00:00 – 23:59).
|
|
8340
|
+
*/
|
|
8341
|
+
declare function isValidTime(time: string | null | undefined): boolean;
|
|
8342
|
+
/**
|
|
8343
|
+
* Normalizes common typing patterns into `HH:mm`.
|
|
8344
|
+
*
|
|
8345
|
+
* Returns:
|
|
8346
|
+
* - the canonical `HH:mm` string when the input can be normalized
|
|
8347
|
+
* - `""` when the input is empty
|
|
8348
|
+
* - `null` when the input is non-empty but cannot be normalized
|
|
8349
|
+
*
|
|
8350
|
+
* Examples:
|
|
8351
|
+
* `"9:5"` → `"09:05"`
|
|
8352
|
+
* `"14:5"` → `"14:05"`
|
|
8353
|
+
* `"2359"` → `"23:59"`
|
|
8354
|
+
* `"930"` → `"09:30"`
|
|
8355
|
+
* `"11.55"` / `"11-55"` → `"11:55"` (any non-digit treated as separator)
|
|
8356
|
+
* `"4:89"` / `"24:00"` → `null`
|
|
8357
|
+
*/
|
|
8358
|
+
declare function normalizeTime(input: string): string | null;
|
|
8359
|
+
|
|
8360
|
+
export { AVAILABLE_LANGUAGES, AccordionComponent, AccordionItemComponent, AccordionItemContentComponent, AccordionItemHeaderComponent, AlertComponent, AttachmentActionsComponent, AttachmentComponent, BREAKPOINTS, BaseButtonDirective, BreakpointService, ButtonComponent, ButtonGroupButtonDirective, ButtonGroupComponent, COUNTER_TAG_WIDTH, CalendarComponent, CardButtonComponent, CardComponent, CardContentComponent, CardHeaderComponent, CardIconComponent, CardRowComponent, CarouselComponent, CarouselContentComponent, CarouselFooterComponent, CarouselHeaderComponent, CarouselIndicatorsComponent, CarouselNavigationComponent, CarouselSlideDirective, CheckboxCardComponent, CheckboxCardGroupComponent, CheckboxComponent, CheckboxGroupComponent, ClosingButtonComponent, ColComponent, CollapseButtonComponent, CollapseComponent, DROPDOWN_API, DROPDOWN_CONTENT_API, DateFieldComponent, DatePickerComponent, DropdownComponent, DropdownContentComponent, DropdownItemComponent, DropdownItemValueComponent, DropdownItemValueLabelComponent, DropdownItemValueMetaComponent, DropdownTriggerDirective, EllipsisComponent, EmptyStateComponent, FeedbackTextComponent, FilterComponent, FilterContentDirective, FilterGroupComponent, FilterPrependDirective, FooterBodyComponent, FooterBottomComponent, FooterComponent, FooterSectionComponent, FooterSideComponent, FormFieldComponent, HeaderActionsComponent, HeaderBottomComponent, HeaderComponent, HeaderContentComponent, HeaderLanguageComponent, HeaderLoginComponent, HeaderLogoComponent, HeaderLogoDarkDirective, HeaderLogoutComponent, HeaderMobileButtonComponent, HeaderProfileComponent, HeaderRoleComponent, HeaderRoleContentDirective, HeaderRoleNoResultsDirective, HeaderRoleTitleDirective, HeaderSearchComponent, HideAtDirective, HorizontalPushHandler, HorizontalStepperComponent, HorizontalStepperItemComponent, IconComponent, InfoButtonComponent, LANGUAGE_COOKIE_NAME, LANGUAGE_FALLBACK_VALUE, LabelComponent, LinkComponent, ListComponent, MODAL_DATA, MODAL_SIZE, ModalComponent, ModalContentComponent, ModalFooterComponent, ModalHeaderComponent, ModalRef, ModalService, NumberFieldComponent, PaginationComponent, PopoverComponent, PopoverContentComponent, PopoverTriggerDirective, ProgressBarComponent, RadioCardComponent, RadioCardGroupComponent, RadioComponent, RadioGroupComponent, RowComponent, ScrollFadeComponent, SelectComponent, SelectOptionTemplateDirective, SelectValueTemplateDirective, SeparatorComponent, ShowAtDirective, SideNavComponent, SideNavDropdownComponent, SideNavDropdownGroupComponent, SideNavDropdownItemComponent, SideNavGroupTitleComponent, SideNavItemComponent, SideNavOverlayComponent, SideNavToggleComponent, SpecialOptionControls, SpinnerComponent, StatusBadgeComponent, StatusIndicatorComponent, TAG_GAP, TEDI_FORM_FIELD_CONTROL, TEDI_TABLE_CONTEXT, TEDI_THEME_DEFAULT_TOKEN, TEDI_TRANSLATION_DEFAULT_TOKEN, THEME_CLASS_PREFIX, THEME_COOKIE_NAME, THEME_FALLBACK_VALUE, TOAST_DEFAULT_DURATION, TagComponent, TediPaginationResultsDirective, TediTableColumnsMenuComponent, TediTableComponent, TediTableHeaderButtonComponent, TediTableToolbarComponent, TediTranslationPipe, TediTranslationService, TextComponent, TextFieldComponent, TextGroupComponent, TextGroupLabelComponent, TextGroupValueComponent, ThemeService, TimeFieldComponent, TimePickerComponent, TimelineComponent, TimelineDescriptionComponent, TimelineItemComponent, TimelineTimingsBottomDirective, TimelineTitleComponent, ToastComponent, ToastService, ToggleComponent, TooltipComponent, TooltipContentComponent, TooltipTriggerComponent, VerticalSpacingDirective, VerticalSpacingItemDirective, addDays, addMonths, addYears, breakpointInput, buildMonthGrid, calculateArrowOffset, calculateVisibleTagCount, computeGroupSpans, cookieSignal, createTablePersistence, endOfMonth, formatDate, formatLocaleDate, formatLocaleDateHint, formatLocaleDateLong, formatMonthYear, generateUUID, getCardBorderPlacementColor, getDaysInMonth, getFirstDayOfWeek, getFocusableElements, getISOWeek, getMonthNames, getPaddingCssVariables, getPlacementFromPositionChange, getWeekdayNames, groupRowSpan, injectTediTableContext, isAfterDay, isBeforeDay, isDateInRange, isSameDay, isSameMonth, isSameYear, isValidTime, matchAny, matchDate, normalizeTime, parseDate, parseLocaleDate, provideTedi, resolveCardBorderRadius, startOfMonth, startOfWeek, toConnectedPositions, toggleDateInArray, usePagination };
|
|
8361
|
+
export type { AlertRole, AlertTitleType, AlertType, AlertVariant, AlignItems, AlignSelf, ArrowOffset, ArrowType, AttachmentDirection, Breakpoint, BreakpointFlag, BreakpointInput, BreakpointInputs, BreakpointInputsWithoutSignals, BreakpointObject, BulletColor, ButtonGroupDropdownLabelMode, ButtonSize, ButtonVariant, CalendarView, CardBackground, CardBorderPlacement, CardBorderRadius, CardBorderType, CardContentInputs, CardIconSize, CardIconType, CardInputs, CardPadding, CardPaddingNumber, CardResolvedCorners, CarouselIndicatorsVariant, CheckboxCardVariant, CheckboxGroupDirection, CheckboxSize, ClosingButtonIconSize, ClosingButtonSize, ColInputs, ColWidth, CollapseButtonArrowType, CollapseButtonSize, CollapseSize, Cols, ColumnReorderPhase, CompareWithFn, ComponentInputs, DateAfter, DateBefore, DateFieldMode, DateInterval, DatePickerDay, DatePickerInputSize, DatePickerInputState, DatePickerMatcher, DatePickerSelectorMode, DatePickerView, DateRange, DayOfWeek, DropdownApi, DropdownContentApi, DropdownItemValueLayout, DropdownItemValueType, DropdownPosition, DropdownRole, DropdownTriggerAriaHasPopup, EllipsisPosition, EmptyStateSize, EmptyStateType, FeedbackTextPosition, FeedbackTextType, FilterOption, FilterSize, FilterVariant, FooterSidePlacement, FooterSidePosition, FormFieldControl, FormFieldIcon, Gap, GroupByFn, HeaderContentAlignment, HeaderLanguage, HeaderLoginInputs, HeaderLoginSize, HeaderLogoutInputs, HeaderLogoutSize, HeaderProfileInputs, HeaderProfileSize, HeaderSearchMobileLabels, HeaderSearchMobileVariant, HorizontalStepperBackground, IconBackgroundColor, IconColor, IconSize, IconType, IconVariant, InputSize, InputState, JustifyItems, JustifySelf, LabelColor, LabelSize, Language, LinkInputs, LinkSize, LinkVariant, Matcher, ModalConfig, ModalFullscreen, ModalPosition, ModalScrollBehavior, ModalSize, ModalWidth, ModalWidthPreset, NumberFieldSize, OverlayPosition, OverlaySide, PaginationBackground, PaginationDividerPosition, PaginationItem, PaginationItemType, PaginationLabels, PaginationVisibility, PopoverPosition, PopoverWidth, ProgressBarInputs, ProgressBarLabelPosition, ProgressBarSize, ProgressBarValuePosition, RadioCardVariant, RadioGroupDirection, RadioSize, Representative, RepresentativeIcon, RowInputs, ScrollFadePosition, ScrollFadeScrollbar, ScrollFadeSize, SelectInputSize, SelectOption, SelectOptionContext, SelectOptionGroup, SelectValueContext, SeparatorAxis, SeparatorColor, SeparatorDotSize, SeparatorSpacing, SeparatorSpacingValue, SeparatorThickness, SeparatorVariant, SideNavItemSize, SpinnerColor, SpinnerSize, StatusBadgeColor, StatusBadgeSize, StatusBadgeStatus, StatusBadgeVariant, StatusIndicatorPosition, StatusIndicatorSize, StatusIndicatorType, TEDITheme, TableColumnMeta, TableControlColumn, TableExpandTrigger, TableFilterOptions, TablePaginationOptions, TablePersistOptions, TablePersistenceController, TableSelectionMode, TableSize, TableState, TableStatePatch, TagEllipsis, TagOverflowOptions, TagType, TediColumnDef, TediConfig, TediTableContextValue, TediTableFilterContext, TextColor, TextGroupInputs, TextGroupType, TextModifiers, Theme, TimeFieldFullscreen, TimeFieldModal, TimeFieldPickerTrigger, TimeFieldPickerVariant, TimeFieldUseNativePicker, TimePickerVariant, TimelineCardPadding, TimelineVariant, ToastConfig, ToastPosition, ToastRole, ToastType, ToggleSize, ToggleType, ToggleVariant, TooltipOpenWith, TooltipPosition, TooltipWidth, UsePaginationArgs, VerticalSpacingSize };
|
|
7535
8362
|
//# sourceMappingURL=index.d.ts.map
|