@weeehaoooz/talos-ui 0.1.0 → 0.1.2
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 +2 -0
- package/fesm2022/{weeehaoooz-talos-ui-button-button-group.mjs → weeehaoooz-talos-ui-button.mjs} +115 -18
- package/fesm2022/weeehaoooz-talos-ui-button.mjs.map +1 -0
- package/fesm2022/weeehaoooz-talos-ui-data-display.mjs +3110 -0
- package/fesm2022/weeehaoooz-talos-ui-data-display.mjs.map +1 -0
- package/fesm2022/weeehaoooz-talos-ui-data-viz.mjs +2414 -0
- package/fesm2022/weeehaoooz-talos-ui-data-viz.mjs.map +1 -0
- package/fesm2022/weeehaoooz-talos-ui-dropdown.mjs +1039 -0
- package/fesm2022/weeehaoooz-talos-ui-dropdown.mjs.map +1 -0
- package/fesm2022/weeehaoooz-talos-ui-feedback.mjs +2885 -0
- package/fesm2022/weeehaoooz-talos-ui-feedback.mjs.map +1 -0
- package/fesm2022/weeehaoooz-talos-ui-form.mjs +10799 -0
- package/fesm2022/weeehaoooz-talos-ui-form.mjs.map +1 -0
- package/fesm2022/weeehaoooz-talos-ui-layout.mjs +1320 -11
- package/fesm2022/weeehaoooz-talos-ui-layout.mjs.map +1 -1
- package/fesm2022/weeehaoooz-talos-ui-nav.mjs +119 -72
- package/fesm2022/weeehaoooz-talos-ui-nav.mjs.map +1 -1
- package/fesm2022/weeehaoooz-talos-ui.mjs +22190 -15213
- package/fesm2022/weeehaoooz-talos-ui.mjs.map +1 -1
- package/package.json +20 -135
- package/styles/_breadcrumb.scss +16 -0
- package/styles/_button-group.scss +156 -7
- package/styles/_buttons.scss +156 -8
- package/styles/_dropdown.scss +438 -0
- package/styles/_form-controls.scss +13 -0
- package/styles/_progress-bar.scss +43 -0
- package/styles/_skeleton.scss +176 -0
- package/styles/_spinner.scss +58 -0
- package/styles/_variables.scss +37 -0
- package/styles/index.scss +6 -1
- package/types/weeehaoooz-talos-ui-button.d.ts +92 -0
- package/types/weeehaoooz-talos-ui-button.d.ts.map +1 -0
- package/types/weeehaoooz-talos-ui-data-display.d.ts +1018 -0
- package/types/weeehaoooz-talos-ui-data-display.d.ts.map +1 -0
- package/types/weeehaoooz-talos-ui-data-viz.d.ts +839 -0
- package/types/weeehaoooz-talos-ui-data-viz.d.ts.map +1 -0
- package/types/weeehaoooz-talos-ui-dropdown.d.ts +187 -0
- package/types/weeehaoooz-talos-ui-dropdown.d.ts.map +1 -0
- package/types/weeehaoooz-talos-ui-feedback.d.ts +1495 -0
- package/types/weeehaoooz-talos-ui-feedback.d.ts.map +1 -0
- package/types/weeehaoooz-talos-ui-form.d.ts +2639 -0
- package/types/weeehaoooz-talos-ui-form.d.ts.map +1 -0
- package/types/weeehaoooz-talos-ui-layout.d.ts +851 -3
- package/types/weeehaoooz-talos-ui-layout.d.ts.map +1 -1
- package/types/weeehaoooz-talos-ui-nav.d.ts +36 -10
- package/types/weeehaoooz-talos-ui-nav.d.ts.map +1 -1
- package/types/weeehaoooz-talos-ui.d.ts +6949 -4137
- package/types/weeehaoooz-talos-ui.d.ts.map +1 -1
- package/fesm2022/weeehaoooz-talos-ui-button-button-group.mjs.map +0 -1
- package/fesm2022/weeehaoooz-talos-ui-button-button.mjs +0 -93
- package/fesm2022/weeehaoooz-talos-ui-button-button.mjs.map +0 -1
- package/fesm2022/weeehaoooz-talos-ui-data-display-badge.mjs +0 -233
- package/fesm2022/weeehaoooz-talos-ui-data-display-badge.mjs.map +0 -1
- package/fesm2022/weeehaoooz-talos-ui-data-display-status-tag.mjs +0 -361
- package/fesm2022/weeehaoooz-talos-ui-data-display-status-tag.mjs.map +0 -1
- package/fesm2022/weeehaoooz-talos-ui-data-display-timeline.mjs +0 -312
- package/fesm2022/weeehaoooz-talos-ui-data-display-timeline.mjs.map +0 -1
- package/fesm2022/weeehaoooz-talos-ui-data-display-trend-indicator.mjs +0 -235
- package/fesm2022/weeehaoooz-talos-ui-data-display-trend-indicator.mjs.map +0 -1
- package/fesm2022/weeehaoooz-talos-ui-data-viz-category-bar.mjs +0 -462
- package/fesm2022/weeehaoooz-talos-ui-data-viz-category-bar.mjs.map +0 -1
- package/fesm2022/weeehaoooz-talos-ui-data-viz-heatmap.mjs +0 -805
- package/fesm2022/weeehaoooz-talos-ui-data-viz-heatmap.mjs.map +0 -1
- package/fesm2022/weeehaoooz-talos-ui-data-viz-mini-donut.mjs +0 -267
- package/fesm2022/weeehaoooz-talos-ui-data-viz-mini-donut.mjs.map +0 -1
- package/fesm2022/weeehaoooz-talos-ui-data-viz-mini-gauge.mjs +0 -351
- package/fesm2022/weeehaoooz-talos-ui-data-viz-mini-gauge.mjs.map +0 -1
- package/fesm2022/weeehaoooz-talos-ui-data-viz-sparkline.mjs +0 -566
- package/fesm2022/weeehaoooz-talos-ui-data-viz-sparkline.mjs.map +0 -1
- package/fesm2022/weeehaoooz-talos-ui-feedback-alert.mjs +0 -534
- package/fesm2022/weeehaoooz-talos-ui-feedback-alert.mjs.map +0 -1
- package/fesm2022/weeehaoooz-talos-ui-feedback-dialog.mjs +0 -446
- package/fesm2022/weeehaoooz-talos-ui-feedback-dialog.mjs.map +0 -1
- package/fesm2022/weeehaoooz-talos-ui-feedback-snackbar.mjs +0 -376
- package/fesm2022/weeehaoooz-talos-ui-feedback-snackbar.mjs.map +0 -1
- package/fesm2022/weeehaoooz-talos-ui-feedback-tooltip.mjs +0 -147
- package/fesm2022/weeehaoooz-talos-ui-feedback-tooltip.mjs.map +0 -1
- package/fesm2022/weeehaoooz-talos-ui-form-affix.mjs +0 -242
- package/fesm2022/weeehaoooz-talos-ui-form-affix.mjs.map +0 -1
- package/fesm2022/weeehaoooz-talos-ui-form-autocomplete.mjs +0 -514
- package/fesm2022/weeehaoooz-talos-ui-form-autocomplete.mjs.map +0 -1
- package/fesm2022/weeehaoooz-talos-ui-form-checkbox.mjs +0 -548
- package/fesm2022/weeehaoooz-talos-ui-form-checkbox.mjs.map +0 -1
- package/fesm2022/weeehaoooz-talos-ui-form-chips.mjs +0 -692
- package/fesm2022/weeehaoooz-talos-ui-form-chips.mjs.map +0 -1
- package/fesm2022/weeehaoooz-talos-ui-form-color-picker.mjs +0 -761
- package/fesm2022/weeehaoooz-talos-ui-form-color-picker.mjs.map +0 -1
- package/fesm2022/weeehaoooz-talos-ui-form-date-picker.mjs +0 -896
- package/fesm2022/weeehaoooz-talos-ui-form-date-picker.mjs.map +0 -1
- package/fesm2022/weeehaoooz-talos-ui-form-date-range-picker.mjs +0 -872
- package/fesm2022/weeehaoooz-talos-ui-form-date-range-picker.mjs.map +0 -1
- package/fesm2022/weeehaoooz-talos-ui-form-date-time-picker.mjs +0 -119
- package/fesm2022/weeehaoooz-talos-ui-form-date-time-picker.mjs.map +0 -1
- package/fesm2022/weeehaoooz-talos-ui-form-date-time-range-picker.mjs +0 -135
- package/fesm2022/weeehaoooz-talos-ui-form-date-time-range-picker.mjs.map +0 -1
- package/fesm2022/weeehaoooz-talos-ui-form-drop-zone.mjs +0 -666
- package/fesm2022/weeehaoooz-talos-ui-form-drop-zone.mjs.map +0 -1
- package/fesm2022/weeehaoooz-talos-ui-form-form-field.mjs +0 -147
- package/fesm2022/weeehaoooz-talos-ui-form-form-field.mjs.map +0 -1
- package/fesm2022/weeehaoooz-talos-ui-form-input.mjs +0 -33
- package/fesm2022/weeehaoooz-talos-ui-form-input.mjs.map +0 -1
- package/fesm2022/weeehaoooz-talos-ui-form-otp.mjs +0 -455
- package/fesm2022/weeehaoooz-talos-ui-form-otp.mjs.map +0 -1
- package/fesm2022/weeehaoooz-talos-ui-form-password-input.mjs +0 -379
- package/fesm2022/weeehaoooz-talos-ui-form-password-input.mjs.map +0 -1
- package/fesm2022/weeehaoooz-talos-ui-form-radio.mjs +0 -297
- package/fesm2022/weeehaoooz-talos-ui-form-radio.mjs.map +0 -1
- package/fesm2022/weeehaoooz-talos-ui-form-range-input.mjs +0 -661
- package/fesm2022/weeehaoooz-talos-ui-form-range-input.mjs.map +0 -1
- package/fesm2022/weeehaoooz-talos-ui-form-rating.mjs +0 -346
- package/fesm2022/weeehaoooz-talos-ui-form-rating.mjs.map +0 -1
- package/fesm2022/weeehaoooz-talos-ui-form-select-input.mjs +0 -896
- package/fesm2022/weeehaoooz-talos-ui-form-select-input.mjs.map +0 -1
- package/fesm2022/weeehaoooz-talos-ui-form-slide-toggle.mjs +0 -252
- package/fesm2022/weeehaoooz-talos-ui-form-slide-toggle.mjs.map +0 -1
- package/fesm2022/weeehaoooz-talos-ui-form-transfer-list.mjs +0 -916
- package/fesm2022/weeehaoooz-talos-ui-form-transfer-list.mjs.map +0 -1
- package/types/weeehaoooz-talos-ui-button-button-group.d.ts +0 -59
- package/types/weeehaoooz-talos-ui-button-button-group.d.ts.map +0 -1
- package/types/weeehaoooz-talos-ui-button-button.d.ts +0 -38
- package/types/weeehaoooz-talos-ui-button-button.d.ts.map +0 -1
- package/types/weeehaoooz-talos-ui-data-display-badge.d.ts +0 -119
- package/types/weeehaoooz-talos-ui-data-display-badge.d.ts.map +0 -1
- package/types/weeehaoooz-talos-ui-data-display-status-tag.d.ts +0 -135
- package/types/weeehaoooz-talos-ui-data-display-status-tag.d.ts.map +0 -1
- package/types/weeehaoooz-talos-ui-data-display-timeline.d.ts +0 -144
- package/types/weeehaoooz-talos-ui-data-display-timeline.d.ts.map +0 -1
- package/types/weeehaoooz-talos-ui-data-display-trend-indicator.d.ts +0 -83
- package/types/weeehaoooz-talos-ui-data-display-trend-indicator.d.ts.map +0 -1
- package/types/weeehaoooz-talos-ui-data-viz-category-bar.d.ts +0 -255
- package/types/weeehaoooz-talos-ui-data-viz-category-bar.d.ts.map +0 -1
- package/types/weeehaoooz-talos-ui-data-viz-heatmap.d.ts +0 -204
- package/types/weeehaoooz-talos-ui-data-viz-heatmap.d.ts.map +0 -1
- package/types/weeehaoooz-talos-ui-data-viz-mini-donut.d.ts +0 -101
- package/types/weeehaoooz-talos-ui-data-viz-mini-donut.d.ts.map +0 -1
- package/types/weeehaoooz-talos-ui-data-viz-mini-gauge.d.ts +0 -138
- package/types/weeehaoooz-talos-ui-data-viz-mini-gauge.d.ts.map +0 -1
- package/types/weeehaoooz-talos-ui-data-viz-sparkline.d.ts +0 -161
- package/types/weeehaoooz-talos-ui-data-viz-sparkline.d.ts.map +0 -1
- package/types/weeehaoooz-talos-ui-feedback-alert.d.ts +0 -212
- package/types/weeehaoooz-talos-ui-feedback-alert.d.ts.map +0 -1
- package/types/weeehaoooz-talos-ui-feedback-dialog.d.ts +0 -259
- package/types/weeehaoooz-talos-ui-feedback-dialog.d.ts.map +0 -1
- package/types/weeehaoooz-talos-ui-feedback-snackbar.d.ts +0 -147
- package/types/weeehaoooz-talos-ui-feedback-snackbar.d.ts.map +0 -1
- package/types/weeehaoooz-talos-ui-feedback-tooltip.d.ts +0 -32
- package/types/weeehaoooz-talos-ui-feedback-tooltip.d.ts.map +0 -1
- package/types/weeehaoooz-talos-ui-form-affix.d.ts +0 -88
- package/types/weeehaoooz-talos-ui-form-affix.d.ts.map +0 -1
- package/types/weeehaoooz-talos-ui-form-autocomplete.d.ts +0 -113
- package/types/weeehaoooz-talos-ui-form-autocomplete.d.ts.map +0 -1
- package/types/weeehaoooz-talos-ui-form-checkbox.d.ts +0 -165
- package/types/weeehaoooz-talos-ui-form-checkbox.d.ts.map +0 -1
- package/types/weeehaoooz-talos-ui-form-chips.d.ts +0 -152
- package/types/weeehaoooz-talos-ui-form-chips.d.ts.map +0 -1
- package/types/weeehaoooz-talos-ui-form-color-picker.d.ts +0 -144
- package/types/weeehaoooz-talos-ui-form-color-picker.d.ts.map +0 -1
- package/types/weeehaoooz-talos-ui-form-date-picker.d.ts +0 -138
- package/types/weeehaoooz-talos-ui-form-date-picker.d.ts.map +0 -1
- package/types/weeehaoooz-talos-ui-form-date-range-picker.d.ts +0 -148
- package/types/weeehaoooz-talos-ui-form-date-range-picker.d.ts.map +0 -1
- package/types/weeehaoooz-talos-ui-form-date-time-picker.d.ts +0 -44
- package/types/weeehaoooz-talos-ui-form-date-time-picker.d.ts.map +0 -1
- package/types/weeehaoooz-talos-ui-form-date-time-range-picker.d.ts +0 -48
- package/types/weeehaoooz-talos-ui-form-date-time-range-picker.d.ts.map +0 -1
- package/types/weeehaoooz-talos-ui-form-drop-zone.d.ts +0 -227
- package/types/weeehaoooz-talos-ui-form-drop-zone.d.ts.map +0 -1
- package/types/weeehaoooz-talos-ui-form-form-field.d.ts +0 -42
- package/types/weeehaoooz-talos-ui-form-form-field.d.ts.map +0 -1
- package/types/weeehaoooz-talos-ui-form-input.d.ts +0 -15
- package/types/weeehaoooz-talos-ui-form-input.d.ts.map +0 -1
- package/types/weeehaoooz-talos-ui-form-otp.d.ts +0 -111
- package/types/weeehaoooz-talos-ui-form-otp.d.ts.map +0 -1
- package/types/weeehaoooz-talos-ui-form-password-input.d.ts +0 -145
- package/types/weeehaoooz-talos-ui-form-password-input.d.ts.map +0 -1
- package/types/weeehaoooz-talos-ui-form-radio.d.ts +0 -84
- package/types/weeehaoooz-talos-ui-form-radio.d.ts.map +0 -1
- package/types/weeehaoooz-talos-ui-form-range-input.d.ts +0 -181
- package/types/weeehaoooz-talos-ui-form-range-input.d.ts.map +0 -1
- package/types/weeehaoooz-talos-ui-form-rating.d.ts +0 -110
- package/types/weeehaoooz-talos-ui-form-rating.d.ts.map +0 -1
- package/types/weeehaoooz-talos-ui-form-select-input.d.ts +0 -195
- package/types/weeehaoooz-talos-ui-form-select-input.d.ts.map +0 -1
- package/types/weeehaoooz-talos-ui-form-slide-toggle.d.ts +0 -79
- package/types/weeehaoooz-talos-ui-form-slide-toggle.d.ts.map +0 -1
- package/types/weeehaoooz-talos-ui-form-transfer-list.d.ts +0 -192
- package/types/weeehaoooz-talos-ui-form-transfer-list.d.ts.map +0 -1
|
@@ -0,0 +1,2639 @@
|
|
|
1
|
+
import * as _angular_core from '@angular/core';
|
|
2
|
+
import { TemplateRef, ElementRef, InjectionToken, AfterContentChecked, OnDestroy, AfterViewInit, QueryList } from '@angular/core';
|
|
3
|
+
import { ControlValueAccessor } from '@angular/forms';
|
|
4
|
+
import * as _weeehaoooz_talos_ui_core from '@weeehaoooz/talos-ui/core';
|
|
5
|
+
import { RgbaColor, HslaColor, HsvaColor, ColorFormat } from '@weeehaoooz/talos-ui/core';
|
|
6
|
+
import { ConnectedPosition } from '@angular/cdk/overlay';
|
|
7
|
+
import { Observable } from 'rxjs';
|
|
8
|
+
import { CdkDragDrop } from '@angular/cdk/drag-drop';
|
|
9
|
+
|
|
10
|
+
type AffixPosition = 'prefix' | 'suffix';
|
|
11
|
+
type AffixAnimation = 'spin' | 'spin-once' | 'pop' | 'shake' | 'pulse' | 'bounce' | 'none';
|
|
12
|
+
type AffixFeedbackState = 'success' | 'error' | null;
|
|
13
|
+
/**
|
|
14
|
+
* Directive applied to leading prefix elements inside form fields, inputs, or select fields.
|
|
15
|
+
* Supports icons, symbols, dropdowns, and custom buttons.
|
|
16
|
+
*/
|
|
17
|
+
declare class TalosPrefixDirective {
|
|
18
|
+
private readonly elementRef;
|
|
19
|
+
/** Whether the prefix is interactive (e.g. clickable button, dropdown) */
|
|
20
|
+
readonly interactive: _angular_core.InputSignal<boolean>;
|
|
21
|
+
/** Micro-interaction animation preset */
|
|
22
|
+
readonly animation: _angular_core.InputSignal<AffixAnimation>;
|
|
23
|
+
/** Convenience boolean signal for spinning icon / continuous refresh state */
|
|
24
|
+
readonly spinning: _angular_core.InputSignal<boolean>;
|
|
25
|
+
/** Convenience boolean signal for pop / scale bounce feedback */
|
|
26
|
+
readonly popping: _angular_core.InputSignal<boolean>;
|
|
27
|
+
/** Contextual temporary feedback state */
|
|
28
|
+
readonly feedback: _angular_core.InputSignal<AffixFeedbackState>;
|
|
29
|
+
protected isButton(): boolean;
|
|
30
|
+
protected isInteractive(): boolean;
|
|
31
|
+
get nativeElement(): HTMLElement;
|
|
32
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<TalosPrefixDirective, never>;
|
|
33
|
+
static ɵdir: _angular_core.ɵɵDirectiveDeclaration<TalosPrefixDirective, "[talosPrefix], [talos-prefix], [talosLead], [talosStart]", never, { "interactive": { "alias": "interactive"; "required": false; "isSignal": true; }; "animation": { "alias": "animation"; "required": false; "isSignal": true; }; "spinning": { "alias": "spinning"; "required": false; "isSignal": true; }; "popping": { "alias": "popping"; "required": false; "isSignal": true; }; "feedback": { "alias": "feedback"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
36
|
+
* Directive applied to trailing suffix / postfix elements inside form fields, inputs, or select fields.
|
|
37
|
+
* Supports units (USD, kg, px, %), clear buttons, copy actions, and dropdown indicators.
|
|
38
|
+
*/
|
|
39
|
+
declare class TalosSuffixDirective {
|
|
40
|
+
private readonly elementRef;
|
|
41
|
+
/** Whether the suffix is interactive (e.g. clickable button, copy icon) */
|
|
42
|
+
readonly interactive: _angular_core.InputSignal<boolean>;
|
|
43
|
+
/** Micro-interaction animation preset */
|
|
44
|
+
readonly animation: _angular_core.InputSignal<AffixAnimation>;
|
|
45
|
+
/** Convenience boolean signal for spinning icon / continuous refresh state */
|
|
46
|
+
readonly spinning: _angular_core.InputSignal<boolean>;
|
|
47
|
+
/** Convenience boolean signal for pop / scale bounce feedback */
|
|
48
|
+
readonly popping: _angular_core.InputSignal<boolean>;
|
|
49
|
+
/** Contextual temporary feedback state */
|
|
50
|
+
readonly feedback: _angular_core.InputSignal<AffixFeedbackState>;
|
|
51
|
+
protected isButton(): boolean;
|
|
52
|
+
protected isInteractive(): boolean;
|
|
53
|
+
get nativeElement(): HTMLElement;
|
|
54
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<TalosSuffixDirective, never>;
|
|
55
|
+
static ɵdir: _angular_core.ɵɵDirectiveDeclaration<TalosSuffixDirective, "[talosSuffix], [talosPostfix], [talos-suffix], [talos-postfix], [talosTrail], [talosEnd]", never, { "interactive": { "alias": "interactive"; "required": false; "isSignal": true; }; "animation": { "alias": "animation"; "required": false; "isSignal": true; }; "spinning": { "alias": "spinning"; "required": false; "isSignal": true; }; "popping": { "alias": "popping"; "required": false; "isSignal": true; }; "feedback": { "alias": "feedback"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
56
|
+
}
|
|
57
|
+
/**
|
|
58
|
+
* Convenience directive for styled text prefix elements (e.g. $, €, https://, @).
|
|
59
|
+
*/
|
|
60
|
+
declare class TalosTextPrefixDirective {
|
|
61
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<TalosTextPrefixDirective, never>;
|
|
62
|
+
static ɵdir: _angular_core.ɵɵDirectiveDeclaration<TalosTextPrefixDirective, "[talosTextPrefix], [talos-text-prefix]", never, {}, {}, never, never, true, never>;
|
|
63
|
+
}
|
|
64
|
+
/**
|
|
65
|
+
* Convenience directive for styled text suffix / postfix elements (e.g. .00, USD, kg, px, %).
|
|
66
|
+
*/
|
|
67
|
+
declare class TalosTextSuffixDirective {
|
|
68
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<TalosTextSuffixDirective, never>;
|
|
69
|
+
static ɵdir: _angular_core.ɵɵDirectiveDeclaration<TalosTextSuffixDirective, "[talosTextSuffix], [talosTextPostfix], [talos-text-suffix], [talos-text-postfix]", never, {}, {}, never, never, true, never>;
|
|
70
|
+
}
|
|
71
|
+
/**
|
|
72
|
+
* Directive explicitly applied to affix action buttons inside form fields, inputs, or select fields.
|
|
73
|
+
*/
|
|
74
|
+
declare class TalosAffixButtonDirective {
|
|
75
|
+
/** Micro-interaction animation preset */
|
|
76
|
+
readonly animation: _angular_core.InputSignal<AffixAnimation>;
|
|
77
|
+
/** Convenience boolean signal for spinning icon / continuous refresh state */
|
|
78
|
+
readonly spinning: _angular_core.InputSignal<boolean>;
|
|
79
|
+
/** Convenience boolean signal for pop / scale bounce feedback */
|
|
80
|
+
readonly popping: _angular_core.InputSignal<boolean>;
|
|
81
|
+
/** Contextual temporary feedback state */
|
|
82
|
+
readonly feedback: _angular_core.InputSignal<AffixFeedbackState>;
|
|
83
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<TalosAffixButtonDirective, never>;
|
|
84
|
+
static ɵdir: _angular_core.ɵɵDirectiveDeclaration<TalosAffixButtonDirective, "[talosAffixButton], [talos-affix-button]", never, { "animation": { "alias": "animation"; "required": false; "isSignal": true; }; "spinning": { "alias": "spinning"; "required": false; "isSignal": true; }; "popping": { "alias": "popping"; "required": false; "isSignal": true; }; "feedback": { "alias": "feedback"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
85
|
+
}
|
|
86
|
+
|
|
87
|
+
declare class TalosAffixModule {
|
|
88
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<TalosAffixModule, never>;
|
|
89
|
+
static ɵmod: _angular_core.ɵɵNgModuleDeclaration<TalosAffixModule, never, [typeof TalosPrefixDirective, typeof TalosSuffixDirective, typeof TalosTextPrefixDirective, typeof TalosTextSuffixDirective, typeof TalosAffixButtonDirective], [typeof TalosPrefixDirective, typeof TalosSuffixDirective, typeof TalosTextPrefixDirective, typeof TalosTextSuffixDirective, typeof TalosAffixButtonDirective]>;
|
|
90
|
+
static ɵinj: _angular_core.ɵɵInjectorDeclaration<TalosAffixModule>;
|
|
91
|
+
}
|
|
92
|
+
|
|
93
|
+
type AutocompleteSize = 'sm' | 'md' | 'lg';
|
|
94
|
+
type AutocompleteDisplayFn<T> = (item: T) => string;
|
|
95
|
+
type AutocompleteValueFn<T> = (item: T) => unknown;
|
|
96
|
+
type AutocompleteFilterFn<T> = (item: T, query: string) => boolean;
|
|
97
|
+
interface AutocompleteHighlightPart {
|
|
98
|
+
text: string;
|
|
99
|
+
isMatch: boolean;
|
|
100
|
+
}
|
|
101
|
+
interface FormattedAutocompleteOption<T = unknown> {
|
|
102
|
+
id: string;
|
|
103
|
+
label: string;
|
|
104
|
+
value: unknown;
|
|
105
|
+
raw: T;
|
|
106
|
+
highlightParts: AutocompleteHighlightPart[];
|
|
107
|
+
}
|
|
108
|
+
interface AutocompleteItemContext<T = unknown> {
|
|
109
|
+
$implicit: T;
|
|
110
|
+
index: number;
|
|
111
|
+
selected: boolean;
|
|
112
|
+
active: boolean;
|
|
113
|
+
highlightParts: AutocompleteHighlightPart[];
|
|
114
|
+
}
|
|
115
|
+
|
|
116
|
+
declare class TalosAutocompleteComponent<T = unknown> implements ControlValueAccessor {
|
|
117
|
+
private readonly elementRef;
|
|
118
|
+
readonly options: _angular_core.InputSignal<readonly T[] | T[]>;
|
|
119
|
+
readonly label: _angular_core.InputSignal<string>;
|
|
120
|
+
readonly floatingLabel: _angular_core.InputSignal<boolean>;
|
|
121
|
+
readonly floating: _angular_core.InputSignal<boolean>;
|
|
122
|
+
readonly required: _angular_core.InputSignal<boolean>;
|
|
123
|
+
readonly searching: _angular_core.InputSignal<boolean>;
|
|
124
|
+
readonly loading: _angular_core.InputSignal<boolean>;
|
|
125
|
+
readonly placeholder: _angular_core.InputSignal<string>;
|
|
126
|
+
readonly disabled: _angular_core.InputSignal<boolean>;
|
|
127
|
+
readonly clearable: _angular_core.InputSignal<boolean>;
|
|
128
|
+
readonly size: _angular_core.InputSignal<AutocompleteSize>;
|
|
129
|
+
readonly minChars: _angular_core.InputSignal<number>;
|
|
130
|
+
readonly displayWith: _angular_core.InputSignal<AutocompleteDisplayFn<T> | keyof T | null>;
|
|
131
|
+
readonly valueWith: _angular_core.InputSignal<keyof T | AutocompleteValueFn<T> | null>;
|
|
132
|
+
readonly filterFn: _angular_core.InputSignal<AutocompleteFilterFn<T> | null | undefined>;
|
|
133
|
+
readonly highlightMatch: _angular_core.InputSignal<boolean>;
|
|
134
|
+
readonly noResultsText: _angular_core.InputSignal<string>;
|
|
135
|
+
readonly searchingText: _angular_core.InputSignal<string>;
|
|
136
|
+
readonly itemTemplate: _angular_core.InputSignal<TemplateRef<AutocompleteItemContext<T>> | null>;
|
|
137
|
+
readonly openOnFocus: _angular_core.InputSignal<boolean>;
|
|
138
|
+
readonly id: _angular_core.InputSignal<string>;
|
|
139
|
+
readonly searchChange: _angular_core.OutputEmitterRef<string>;
|
|
140
|
+
readonly selectionChange: _angular_core.OutputEmitterRef<T | null>;
|
|
141
|
+
readonly opened: _angular_core.OutputEmitterRef<void>;
|
|
142
|
+
readonly closed: _angular_core.OutputEmitterRef<void>;
|
|
143
|
+
readonly cleared: _angular_core.OutputEmitterRef<void>;
|
|
144
|
+
inputEl?: ElementRef<HTMLInputElement>;
|
|
145
|
+
dropdownEl?: ElementRef<HTMLDivElement>;
|
|
146
|
+
private readonly autoId;
|
|
147
|
+
readonly componentId: _angular_core.Signal<string>;
|
|
148
|
+
readonly inputId: _angular_core.Signal<string>;
|
|
149
|
+
readonly listboxId: _angular_core.Signal<string>;
|
|
150
|
+
readonly inputValue: _angular_core.WritableSignal<string>;
|
|
151
|
+
readonly selectedItem: _angular_core.WritableSignal<T | null>;
|
|
152
|
+
readonly isOpen: _angular_core.WritableSignal<boolean>;
|
|
153
|
+
readonly isFocused: _angular_core.WritableSignal<boolean>;
|
|
154
|
+
readonly focusedIndex: _angular_core.WritableSignal<number>;
|
|
155
|
+
readonly isCvaDisabled: _angular_core.WritableSignal<boolean>;
|
|
156
|
+
readonly isTouched: _angular_core.WritableSignal<boolean>;
|
|
157
|
+
readonly isFloatingMode: _angular_core.Signal<boolean>;
|
|
158
|
+
readonly isFloated: _angular_core.Signal<boolean>;
|
|
159
|
+
readonly effectiveDisabled: _angular_core.Signal<boolean>;
|
|
160
|
+
readonly effectiveSearching: _angular_core.Signal<boolean>;
|
|
161
|
+
readonly formattedOptions: _angular_core.Signal<FormattedAutocompleteOption<T>[]>;
|
|
162
|
+
readonly activeOptionId: _angular_core.Signal<string | undefined>;
|
|
163
|
+
private onChange;
|
|
164
|
+
private onTouched;
|
|
165
|
+
constructor();
|
|
166
|
+
getDisplayLabel(item: T | null): string;
|
|
167
|
+
extractValue(item: T | null): unknown;
|
|
168
|
+
private computeHighlightParts;
|
|
169
|
+
onInput(event: Event): void;
|
|
170
|
+
onFocus(): void;
|
|
171
|
+
onBlur(): void;
|
|
172
|
+
onInputClick(): void;
|
|
173
|
+
onTriggerClick(): void;
|
|
174
|
+
onClear(event: MouseEvent): void;
|
|
175
|
+
selectOption(opt: FormattedAutocompleteOption<T>, event?: Event): void;
|
|
176
|
+
onKeyDown(event: KeyboardEvent): void;
|
|
177
|
+
private scrollToFocusedOption;
|
|
178
|
+
openDropdown(): void;
|
|
179
|
+
closeDropdown(): void;
|
|
180
|
+
onDocumentClick(event: MouseEvent): void;
|
|
181
|
+
private markAsTouched;
|
|
182
|
+
writeValue(value: unknown): void;
|
|
183
|
+
registerOnChange(fn: (val: unknown) => void): void;
|
|
184
|
+
registerOnTouched(fn: () => void): void;
|
|
185
|
+
setDisabledState(isDisabled: boolean): void;
|
|
186
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<TalosAutocompleteComponent<any>, never>;
|
|
187
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<TalosAutocompleteComponent<any>, "talos-autocomplete", never, { "options": { "alias": "options"; "required": false; "isSignal": true; }; "label": { "alias": "label"; "required": false; "isSignal": true; }; "floatingLabel": { "alias": "floatingLabel"; "required": false; "isSignal": true; }; "floating": { "alias": "floating"; "required": false; "isSignal": true; }; "required": { "alias": "required"; "required": false; "isSignal": true; }; "searching": { "alias": "searching"; "required": false; "isSignal": true; }; "loading": { "alias": "loading"; "required": false; "isSignal": true; }; "placeholder": { "alias": "placeholder"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "clearable": { "alias": "clearable"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; "minChars": { "alias": "minChars"; "required": false; "isSignal": true; }; "displayWith": { "alias": "displayWith"; "required": false; "isSignal": true; }; "valueWith": { "alias": "valueWith"; "required": false; "isSignal": true; }; "filterFn": { "alias": "filterFn"; "required": false; "isSignal": true; }; "highlightMatch": { "alias": "highlightMatch"; "required": false; "isSignal": true; }; "noResultsText": { "alias": "noResultsText"; "required": false; "isSignal": true; }; "searchingText": { "alias": "searchingText"; "required": false; "isSignal": true; }; "itemTemplate": { "alias": "itemTemplate"; "required": false; "isSignal": true; }; "openOnFocus": { "alias": "openOnFocus"; "required": false; "isSignal": true; }; "id": { "alias": "id"; "required": false; "isSignal": true; }; }, { "searchChange": "searchChange"; "selectionChange": "selectionChange"; "opened": "opened"; "closed": "closed"; "cleared": "cleared"; }, never, never, true, never>;
|
|
188
|
+
}
|
|
189
|
+
|
|
190
|
+
/**
|
|
191
|
+
* Convenience NgModule wrapping the standalone TalosAutocompleteComponent.
|
|
192
|
+
*/
|
|
193
|
+
declare class TalosAutocompleteModule {
|
|
194
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<TalosAutocompleteModule, never>;
|
|
195
|
+
static ɵmod: _angular_core.ɵɵNgModuleDeclaration<TalosAutocompleteModule, never, [typeof TalosAutocompleteComponent], [typeof TalosAutocompleteComponent]>;
|
|
196
|
+
static ɵinj: _angular_core.ɵɵInjectorDeclaration<TalosAutocompleteModule>;
|
|
197
|
+
}
|
|
198
|
+
|
|
199
|
+
type CheckboxDirection = 'vertical' | 'horizontal';
|
|
200
|
+
declare class TalosCheckboxGroupDirective implements ControlValueAccessor {
|
|
201
|
+
readonly elementRef: ElementRef<any>;
|
|
202
|
+
/** Name attribute for the checkbox group */
|
|
203
|
+
readonly name: _angular_core.InputSignal<string>;
|
|
204
|
+
/** Size applied to all child checkboxes unless overridden */
|
|
205
|
+
readonly size: _angular_core.InputSignal<CheckboxSize>;
|
|
206
|
+
/** Visual color variant applied to all child checkboxes */
|
|
207
|
+
readonly variant: _angular_core.InputSignal<CheckboxVariant>;
|
|
208
|
+
/** Layout direction of checkboxes within group */
|
|
209
|
+
readonly direction: _angular_core.InputSignal<CheckboxDirection>;
|
|
210
|
+
/** Whether the entire checkbox group is disabled */
|
|
211
|
+
readonly disabled: _angular_core.InputSignal<boolean>;
|
|
212
|
+
/** Whether the group is in an invalid error state */
|
|
213
|
+
readonly invalid: _angular_core.InputSignal<boolean>;
|
|
214
|
+
/** Emits when group selection array changes */
|
|
215
|
+
readonly valueChange: _angular_core.OutputEmitterRef<any[]>;
|
|
216
|
+
readonly value: _angular_core.WritableSignal<any[]>;
|
|
217
|
+
readonly isDisabled: _angular_core.WritableSignal<boolean>;
|
|
218
|
+
readonly isTouched: _angular_core.WritableSignal<boolean>;
|
|
219
|
+
/** Effective disabled state taking into account CVA and input */
|
|
220
|
+
readonly effectiveDisabled: _angular_core.Signal<boolean>;
|
|
221
|
+
private onChange;
|
|
222
|
+
private onTouched;
|
|
223
|
+
writeValue(val: any[]): void;
|
|
224
|
+
registerOnChange(fn: (val: any[]) => void): void;
|
|
225
|
+
registerOnTouched(fn: () => void): void;
|
|
226
|
+
setDisabledState(isDisabled: boolean): void;
|
|
227
|
+
/** Helper to check if a specific item value is currently selected in group */
|
|
228
|
+
isValueSelected(val: any): boolean;
|
|
229
|
+
/** Toggles the selection status of a value in the group array */
|
|
230
|
+
toggleValue(val: any): void;
|
|
231
|
+
/** Selects all passed values */
|
|
232
|
+
selectAll(values: any[]): void;
|
|
233
|
+
/** Deselects all values */
|
|
234
|
+
deselectAll(): void;
|
|
235
|
+
markAsTouched(): void;
|
|
236
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<TalosCheckboxGroupDirective, never>;
|
|
237
|
+
static ɵdir: _angular_core.ɵɵDirectiveDeclaration<TalosCheckboxGroupDirective, "[talosCheckboxGroup], [talos-checkbox-group]", ["talosCheckboxGroup"], { "name": { "alias": "name"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; "variant": { "alias": "variant"; "required": false; "isSignal": true; }; "direction": { "alias": "direction"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "invalid": { "alias": "invalid"; "required": false; "isSignal": true; }; }, { "valueChange": "valueChange"; }, never, never, true, never>;
|
|
238
|
+
}
|
|
239
|
+
|
|
240
|
+
type CheckboxSize = 'sm' | 'md' | 'lg';
|
|
241
|
+
type CheckboxVariant = 'primary' | 'secondary' | 'success' | 'danger';
|
|
242
|
+
declare class TalosCheckboxDirective {
|
|
243
|
+
private readonly elementRef;
|
|
244
|
+
readonly groupDir: TalosCheckboxGroupDirective | null;
|
|
245
|
+
/** Value associated with this checkbox when part of a group */
|
|
246
|
+
readonly value: _angular_core.InputSignal<any>;
|
|
247
|
+
/** Standalone checked state */
|
|
248
|
+
readonly checked: _angular_core.InputSignal<boolean>;
|
|
249
|
+
/** Sizing variation for the checkbox */
|
|
250
|
+
readonly size: _angular_core.InputSignal<CheckboxSize>;
|
|
251
|
+
/** Visual color variant for the checkbox */
|
|
252
|
+
readonly variant: _angular_core.InputSignal<CheckboxVariant>;
|
|
253
|
+
/** Whether the checkbox is disabled */
|
|
254
|
+
readonly disabled: _angular_core.InputSignal<boolean>;
|
|
255
|
+
/** Whether the checkbox is in an invalid error state */
|
|
256
|
+
readonly invalid: _angular_core.InputSignal<boolean>;
|
|
257
|
+
/** Whether the checkbox is in an indeterminate visual & property state */
|
|
258
|
+
readonly indeterminate: _angular_core.InputSignal<boolean>;
|
|
259
|
+
/** Output event emitted when checked state changes */
|
|
260
|
+
readonly checkedChange: _angular_core.OutputEmitterRef<boolean>;
|
|
261
|
+
readonly effectiveSize: _angular_core.Signal<CheckboxSize>;
|
|
262
|
+
readonly effectiveVariant: _angular_core.Signal<CheckboxVariant>;
|
|
263
|
+
readonly effectiveDisabled: _angular_core.Signal<boolean>;
|
|
264
|
+
readonly effectiveInvalid: _angular_core.Signal<boolean>;
|
|
265
|
+
readonly isChecked: _angular_core.Signal<boolean>;
|
|
266
|
+
constructor();
|
|
267
|
+
onNativeChange(event: Event): void;
|
|
268
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<TalosCheckboxDirective, never>;
|
|
269
|
+
static ɵdir: _angular_core.ɵɵDirectiveDeclaration<TalosCheckboxDirective, "input[type=\"checkbox\"][talosCheckbox], input[type=\"checkbox\"][talos-checkbox]", ["talosCheckbox"], { "value": { "alias": "value"; "required": false; "isSignal": true; }; "checked": { "alias": "checked"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; "variant": { "alias": "variant"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "invalid": { "alias": "invalid"; "required": false; "isSignal": true; }; "indeterminate": { "alias": "indeterminate"; "required": false; "isSignal": true; }; }, { "checkedChange": "checkedChange"; }, never, never, true, never>;
|
|
270
|
+
}
|
|
271
|
+
|
|
272
|
+
declare class TalosCheckboxGroupComponent {
|
|
273
|
+
readonly groupDir: TalosCheckboxGroupDirective;
|
|
274
|
+
readonly name: _angular_core.InputSignal<string>;
|
|
275
|
+
readonly size: _angular_core.InputSignal<CheckboxSize>;
|
|
276
|
+
readonly variant: _angular_core.InputSignal<CheckboxVariant>;
|
|
277
|
+
readonly direction: _angular_core.InputSignal<CheckboxDirection>;
|
|
278
|
+
readonly disabled: _angular_core.InputSignal<boolean>;
|
|
279
|
+
readonly invalid: _angular_core.InputSignal<boolean>;
|
|
280
|
+
readonly valueChange: _angular_core.OutputEmitterRef<any[]>;
|
|
281
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<TalosCheckboxGroupComponent, never>;
|
|
282
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<TalosCheckboxGroupComponent, "talos-checkbox-group", never, { "name": { "alias": "name"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; "variant": { "alias": "variant"; "required": false; "isSignal": true; }; "direction": { "alias": "direction"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "invalid": { "alias": "invalid"; "required": false; "isSignal": true; }; }, { "valueChange": "valueChange"; }, never, ["*"], true, [{ directive: typeof TalosCheckboxGroupDirective; inputs: { "name": "name"; "size": "size"; "variant": "variant"; "direction": "direction"; "disabled": "disabled"; "invalid": "invalid"; }; outputs: { "valueChange": "valueChange"; }; }]>;
|
|
283
|
+
}
|
|
284
|
+
|
|
285
|
+
declare class TalosCheckboxParentDirective {
|
|
286
|
+
private readonly elementRef;
|
|
287
|
+
private readonly checkboxDir;
|
|
288
|
+
private readonly ancestorGroup;
|
|
289
|
+
/** Optional explicit reference to a TalosCheckboxGroupDirective instance */
|
|
290
|
+
readonly group: _angular_core.InputSignal<TalosCheckboxGroupDirective | undefined>;
|
|
291
|
+
/** List of all selectable values for the parent checkbox to manage */
|
|
292
|
+
readonly values: _angular_core.InputSignal<any[]>;
|
|
293
|
+
/** Effective active checkbox group */
|
|
294
|
+
readonly targetGroup: _angular_core.Signal<TalosCheckboxGroupDirective | null>;
|
|
295
|
+
/** Whether all target values are selected */
|
|
296
|
+
readonly isAllSelected: _angular_core.Signal<boolean>;
|
|
297
|
+
/** Whether some (but not all) target values are selected */
|
|
298
|
+
readonly isIndeterminate: _angular_core.Signal<boolean>;
|
|
299
|
+
constructor();
|
|
300
|
+
onParentToggle(event: Event): void;
|
|
301
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<TalosCheckboxParentDirective, never>;
|
|
302
|
+
static ɵdir: _angular_core.ɵɵDirectiveDeclaration<TalosCheckboxParentDirective, "input[type=\"checkbox\"][talosCheckboxParent], input[type=\"checkbox\"][talos-checkbox-parent], input[type=\"checkbox\"][talosSelectAll], input[type=\"checkbox\"][talos-select-all]", ["talosCheckboxParent"], { "group": { "alias": "group"; "required": false; "isSignal": true; }; "values": { "alias": "values"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
303
|
+
}
|
|
304
|
+
|
|
305
|
+
declare class TalosCheckboxComponent implements ControlValueAccessor {
|
|
306
|
+
private readonly inputRef;
|
|
307
|
+
readonly groupDir: TalosCheckboxGroupDirective | null;
|
|
308
|
+
/** Value associated with this checkbox when part of a group */
|
|
309
|
+
readonly value: _angular_core.InputSignal<any>;
|
|
310
|
+
/** Standalone checked state */
|
|
311
|
+
readonly checked: _angular_core.InputSignal<boolean>;
|
|
312
|
+
/** Sizing variation for the checkbox */
|
|
313
|
+
readonly size: _angular_core.InputSignal<CheckboxSize>;
|
|
314
|
+
/** Visual color variant for the checkbox */
|
|
315
|
+
readonly variant: _angular_core.InputSignal<CheckboxVariant>;
|
|
316
|
+
/** Whether the checkbox is disabled */
|
|
317
|
+
readonly disabled: _angular_core.InputSignal<boolean>;
|
|
318
|
+
/** Whether the checkbox is in an invalid error state */
|
|
319
|
+
readonly invalid: _angular_core.InputSignal<boolean>;
|
|
320
|
+
/** Whether the checkbox is in an indeterminate visual & property state */
|
|
321
|
+
readonly indeterminate: _angular_core.InputSignal<boolean>;
|
|
322
|
+
/** Emitted when checked state changes */
|
|
323
|
+
readonly checkedChange: _angular_core.OutputEmitterRef<boolean>;
|
|
324
|
+
readonly internalValue: _angular_core.WritableSignal<boolean>;
|
|
325
|
+
readonly isDisabled: _angular_core.WritableSignal<boolean>;
|
|
326
|
+
readonly isTouched: _angular_core.WritableSignal<boolean>;
|
|
327
|
+
readonly effectiveSize: _angular_core.Signal<CheckboxSize>;
|
|
328
|
+
readonly effectiveVariant: _angular_core.Signal<CheckboxVariant>;
|
|
329
|
+
readonly effectiveDisabled: _angular_core.Signal<boolean>;
|
|
330
|
+
readonly effectiveInvalid: _angular_core.Signal<boolean>;
|
|
331
|
+
readonly isChecked: _angular_core.Signal<boolean>;
|
|
332
|
+
private onChange;
|
|
333
|
+
private onTouched;
|
|
334
|
+
writeValue(val: boolean): void;
|
|
335
|
+
registerOnChange(fn: (val: boolean) => void): void;
|
|
336
|
+
registerOnTouched(fn: () => void): void;
|
|
337
|
+
setDisabledState(isDisabled: boolean): void;
|
|
338
|
+
onDirectiveCheckedChange(isChecked: boolean): void;
|
|
339
|
+
markAsTouched(): void;
|
|
340
|
+
/** Focuses the native HTML input element */
|
|
341
|
+
focusInput(): void;
|
|
342
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<TalosCheckboxComponent, never>;
|
|
343
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<TalosCheckboxComponent, "talos-checkbox", never, { "value": { "alias": "value"; "required": false; "isSignal": true; }; "checked": { "alias": "checked"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; "variant": { "alias": "variant"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "invalid": { "alias": "invalid"; "required": false; "isSignal": true; }; "indeterminate": { "alias": "indeterminate"; "required": false; "isSignal": true; }; }, { "checkedChange": "checkedChange"; }, never, ["*"], true, never>;
|
|
344
|
+
}
|
|
345
|
+
|
|
346
|
+
/**
|
|
347
|
+
* Convenience NgModule wrapping standalone checkbox directives and components.
|
|
348
|
+
*
|
|
349
|
+
* Allows developers who prefer `TalosCheckboxModule` to import all checkbox utilities in one go.
|
|
350
|
+
*/
|
|
351
|
+
declare class TalosCheckboxModule {
|
|
352
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<TalosCheckboxModule, never>;
|
|
353
|
+
static ɵmod: _angular_core.ɵɵNgModuleDeclaration<TalosCheckboxModule, never, [typeof TalosCheckboxDirective, typeof TalosCheckboxGroupDirective, typeof TalosCheckboxGroupComponent, typeof TalosCheckboxParentDirective, typeof TalosCheckboxComponent], [typeof TalosCheckboxDirective, typeof TalosCheckboxGroupDirective, typeof TalosCheckboxGroupComponent, typeof TalosCheckboxParentDirective, typeof TalosCheckboxComponent]>;
|
|
354
|
+
static ɵinj: _angular_core.ɵɵInjectorDeclaration<TalosCheckboxModule>;
|
|
355
|
+
}
|
|
356
|
+
|
|
357
|
+
type ChipSize = 'sm' | 'md' | 'lg';
|
|
358
|
+
type ChipVariant = 'filled' | 'outline' | 'subtle';
|
|
359
|
+
type ChipColor = 'primary' | 'neutral' | 'success' | 'warning' | 'error' | 'indigo' | 'purple' | 'cyan';
|
|
360
|
+
type ChipDisplayFn<T> = (item: T) => string;
|
|
361
|
+
type ChipValueFn<T> = (item: T) => unknown;
|
|
362
|
+
type ChipFilterFn<T> = (item: T, search: string) => boolean;
|
|
363
|
+
interface ChipHighlightPart {
|
|
364
|
+
text: string;
|
|
365
|
+
matched: boolean;
|
|
366
|
+
}
|
|
367
|
+
interface FormattedChipOption<T = unknown> {
|
|
368
|
+
item: T;
|
|
369
|
+
display: string;
|
|
370
|
+
value: unknown;
|
|
371
|
+
disabled: boolean;
|
|
372
|
+
selected: boolean;
|
|
373
|
+
parts: ChipHighlightPart[];
|
|
374
|
+
}
|
|
375
|
+
interface ChipItemContext<T = unknown> {
|
|
376
|
+
$implicit: T;
|
|
377
|
+
display: string;
|
|
378
|
+
selected: boolean;
|
|
379
|
+
disabled: boolean;
|
|
380
|
+
}
|
|
381
|
+
|
|
382
|
+
declare class TalosChipComponent {
|
|
383
|
+
readonly label: _angular_core.InputSignal<string>;
|
|
384
|
+
readonly value: _angular_core.InputSignal<unknown>;
|
|
385
|
+
readonly size: _angular_core.InputSignal<ChipSize>;
|
|
386
|
+
readonly variant: _angular_core.InputSignal<ChipVariant>;
|
|
387
|
+
readonly color: _angular_core.InputSignal<ChipColor>;
|
|
388
|
+
readonly removable: _angular_core.InputSignal<boolean>;
|
|
389
|
+
readonly disabled: _angular_core.InputSignal<boolean>;
|
|
390
|
+
readonly avatarUrl: _angular_core.InputSignal<string>;
|
|
391
|
+
readonly removeAriaLabel: _angular_core.InputSignal<string>;
|
|
392
|
+
readonly removed: _angular_core.OutputEmitterRef<unknown>;
|
|
393
|
+
readonly chipClick: _angular_core.OutputEmitterRef<unknown>;
|
|
394
|
+
readonly hasAvatar: _angular_core.Signal<boolean>;
|
|
395
|
+
onChipClick(event: MouseEvent): void;
|
|
396
|
+
onRemove(event: MouseEvent): void;
|
|
397
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<TalosChipComponent, never>;
|
|
398
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<TalosChipComponent, "talos-chip", never, { "label": { "alias": "label"; "required": false; "isSignal": true; }; "value": { "alias": "value"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; "variant": { "alias": "variant"; "required": false; "isSignal": true; }; "color": { "alias": "color"; "required": false; "isSignal": true; }; "removable": { "alias": "removable"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "avatarUrl": { "alias": "avatarUrl"; "required": false; "isSignal": true; }; "removeAriaLabel": { "alias": "removeAriaLabel"; "required": false; "isSignal": true; }; }, { "removed": "removed"; "chipClick": "chipClick"; }, never, ["*"], true, never>;
|
|
399
|
+
}
|
|
400
|
+
|
|
401
|
+
interface SelectedChipData {
|
|
402
|
+
display: string;
|
|
403
|
+
value: unknown;
|
|
404
|
+
originalItem: unknown;
|
|
405
|
+
}
|
|
406
|
+
declare class TalosChipsComponent<T = unknown> implements ControlValueAccessor {
|
|
407
|
+
private readonly elementRef;
|
|
408
|
+
readonly options: _angular_core.InputSignal<readonly T[] | T[]>;
|
|
409
|
+
readonly label: _angular_core.InputSignal<string>;
|
|
410
|
+
readonly floatingLabel: _angular_core.InputSignal<boolean>;
|
|
411
|
+
readonly floating: _angular_core.InputSignal<boolean>;
|
|
412
|
+
readonly required: _angular_core.InputSignal<boolean>;
|
|
413
|
+
readonly searching: _angular_core.InputSignal<boolean>;
|
|
414
|
+
readonly loading: _angular_core.InputSignal<boolean>;
|
|
415
|
+
readonly placeholder: _angular_core.InputSignal<string>;
|
|
416
|
+
readonly disabled: _angular_core.InputSignal<boolean>;
|
|
417
|
+
readonly clearable: _angular_core.InputSignal<boolean>;
|
|
418
|
+
readonly removable: _angular_core.InputSignal<boolean>;
|
|
419
|
+
readonly size: _angular_core.InputSignal<ChipSize>;
|
|
420
|
+
readonly maxChips: _angular_core.InputSignal<number | null>;
|
|
421
|
+
readonly allowCustom: _angular_core.InputSignal<boolean>;
|
|
422
|
+
readonly separatorKeys: _angular_core.InputSignal<string[]>;
|
|
423
|
+
readonly displayWith: _angular_core.InputSignal<ChipDisplayFn<T> | keyof T | null>;
|
|
424
|
+
readonly valueWith: _angular_core.InputSignal<keyof T | ChipValueFn<T> | null>;
|
|
425
|
+
readonly filterFn: _angular_core.InputSignal<ChipFilterFn<T> | null | undefined>;
|
|
426
|
+
readonly highlightMatch: _angular_core.InputSignal<boolean>;
|
|
427
|
+
readonly noResultsText: _angular_core.InputSignal<string>;
|
|
428
|
+
readonly searchingText: _angular_core.InputSignal<string>;
|
|
429
|
+
readonly chipVariant: _angular_core.InputSignal<ChipVariant>;
|
|
430
|
+
readonly chipColor: _angular_core.InputSignal<ChipColor>;
|
|
431
|
+
readonly itemTemplate: _angular_core.InputSignal<TemplateRef<ChipItemContext<T>> | null>;
|
|
432
|
+
readonly openOnFocus: _angular_core.InputSignal<boolean>;
|
|
433
|
+
readonly id: _angular_core.InputSignal<string>;
|
|
434
|
+
readonly search: _angular_core.OutputEmitterRef<string>;
|
|
435
|
+
readonly searchChange: _angular_core.OutputEmitterRef<string>;
|
|
436
|
+
readonly selectionChange: _angular_core.OutputEmitterRef<unknown[]>;
|
|
437
|
+
readonly chipAdd: _angular_core.OutputEmitterRef<unknown>;
|
|
438
|
+
readonly chipRemove: _angular_core.OutputEmitterRef<unknown>;
|
|
439
|
+
readonly opened: _angular_core.OutputEmitterRef<void>;
|
|
440
|
+
readonly closed: _angular_core.OutputEmitterRef<void>;
|
|
441
|
+
readonly cleared: _angular_core.OutputEmitterRef<void>;
|
|
442
|
+
inputEl?: ElementRef<HTMLInputElement>;
|
|
443
|
+
dropdownEl?: ElementRef<HTMLDivElement>;
|
|
444
|
+
private readonly autoId;
|
|
445
|
+
readonly componentId: _angular_core.Signal<string>;
|
|
446
|
+
readonly inputId: _angular_core.Signal<string>;
|
|
447
|
+
readonly listboxId: _angular_core.Signal<string>;
|
|
448
|
+
readonly inputValue: _angular_core.WritableSignal<string>;
|
|
449
|
+
readonly selectedValues: _angular_core.WritableSignal<unknown[]>;
|
|
450
|
+
readonly isOpen: _angular_core.WritableSignal<boolean>;
|
|
451
|
+
readonly activeIndex: _angular_core.WritableSignal<number>;
|
|
452
|
+
readonly isDisabled: _angular_core.WritableSignal<boolean>;
|
|
453
|
+
readonly isTouched: _angular_core.WritableSignal<boolean>;
|
|
454
|
+
readonly isInputFocused: _angular_core.WritableSignal<boolean>;
|
|
455
|
+
private onChange;
|
|
456
|
+
private onTouched;
|
|
457
|
+
readonly effectiveDisabled: _angular_core.Signal<boolean>;
|
|
458
|
+
readonly effectiveSearching: _angular_core.Signal<boolean>;
|
|
459
|
+
readonly isFloatingMode: _angular_core.Signal<boolean>;
|
|
460
|
+
readonly isFloated: _angular_core.Signal<boolean>;
|
|
461
|
+
readonly isMaxReached: _angular_core.Signal<boolean>;
|
|
462
|
+
readonly effectivePlaceholder: _angular_core.Signal<string>;
|
|
463
|
+
readonly activeOptionId: _angular_core.Signal<string | null>;
|
|
464
|
+
readonly selectedChips: _angular_core.Signal<SelectedChipData[]>;
|
|
465
|
+
readonly filteredOptions: _angular_core.Signal<FormattedChipOption<T>[]>;
|
|
466
|
+
constructor();
|
|
467
|
+
writeValue(value: unknown[] | unknown | null): void;
|
|
468
|
+
registerOnChange(fn: (val: unknown[]) => void): void;
|
|
469
|
+
registerOnTouched(fn: () => void): void;
|
|
470
|
+
setDisabledState(isDisabled: boolean): void;
|
|
471
|
+
getItemDisplay(item: T): string;
|
|
472
|
+
getItemValue(item: T): unknown;
|
|
473
|
+
private computeHighlightParts;
|
|
474
|
+
private escapeRegex;
|
|
475
|
+
onContainerClick(event: MouseEvent): void;
|
|
476
|
+
onInput(event: Event): void;
|
|
477
|
+
onFocus(): void;
|
|
478
|
+
onBlur(): void;
|
|
479
|
+
onKeyDown(event: KeyboardEvent): void;
|
|
480
|
+
toggleOption(option: FormattedChipOption<T>): void;
|
|
481
|
+
addCustomChip(text: string): void;
|
|
482
|
+
removeChip(chipData: SelectedChipData): void;
|
|
483
|
+
clearAll(event?: MouseEvent): void;
|
|
484
|
+
toggleDropdown(event?: MouseEvent): void;
|
|
485
|
+
openDropdown(): void;
|
|
486
|
+
closeDropdown(): void;
|
|
487
|
+
onDocumentClick(event: MouseEvent): void;
|
|
488
|
+
private emitSearch;
|
|
489
|
+
private emitSelection;
|
|
490
|
+
private markAsTouched;
|
|
491
|
+
private scrollActiveOptionIntoView;
|
|
492
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<TalosChipsComponent<any>, never>;
|
|
493
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<TalosChipsComponent<any>, "talos-chips", never, { "options": { "alias": "options"; "required": false; "isSignal": true; }; "label": { "alias": "label"; "required": false; "isSignal": true; }; "floatingLabel": { "alias": "floatingLabel"; "required": false; "isSignal": true; }; "floating": { "alias": "floating"; "required": false; "isSignal": true; }; "required": { "alias": "required"; "required": false; "isSignal": true; }; "searching": { "alias": "searching"; "required": false; "isSignal": true; }; "loading": { "alias": "loading"; "required": false; "isSignal": true; }; "placeholder": { "alias": "placeholder"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "clearable": { "alias": "clearable"; "required": false; "isSignal": true; }; "removable": { "alias": "removable"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; "maxChips": { "alias": "maxChips"; "required": false; "isSignal": true; }; "allowCustom": { "alias": "allowCustom"; "required": false; "isSignal": true; }; "separatorKeys": { "alias": "separatorKeys"; "required": false; "isSignal": true; }; "displayWith": { "alias": "displayWith"; "required": false; "isSignal": true; }; "valueWith": { "alias": "valueWith"; "required": false; "isSignal": true; }; "filterFn": { "alias": "filterFn"; "required": false; "isSignal": true; }; "highlightMatch": { "alias": "highlightMatch"; "required": false; "isSignal": true; }; "noResultsText": { "alias": "noResultsText"; "required": false; "isSignal": true; }; "searchingText": { "alias": "searchingText"; "required": false; "isSignal": true; }; "chipVariant": { "alias": "chipVariant"; "required": false; "isSignal": true; }; "chipColor": { "alias": "chipColor"; "required": false; "isSignal": true; }; "itemTemplate": { "alias": "itemTemplate"; "required": false; "isSignal": true; }; "openOnFocus": { "alias": "openOnFocus"; "required": false; "isSignal": true; }; "id": { "alias": "id"; "required": false; "isSignal": true; }; }, { "search": "search"; "searchChange": "searchChange"; "selectionChange": "selectionChange"; "chipAdd": "chipAdd"; "chipRemove": "chipRemove"; "opened": "opened"; "closed": "closed"; "cleared": "cleared"; }, never, never, true, never>;
|
|
494
|
+
}
|
|
495
|
+
|
|
496
|
+
declare class TalosChipsModule {
|
|
497
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<TalosChipsModule, never>;
|
|
498
|
+
static ɵmod: _angular_core.ɵɵNgModuleDeclaration<TalosChipsModule, never, [typeof TalosChipsComponent, typeof TalosChipComponent], [typeof TalosChipsComponent, typeof TalosChipComponent]>;
|
|
499
|
+
static ɵinj: _angular_core.ɵɵInjectorDeclaration<TalosChipsModule>;
|
|
500
|
+
}
|
|
501
|
+
|
|
502
|
+
type ColorPickerSize = 'sm' | 'md' | 'lg';
|
|
503
|
+
interface ColorPresetGroup {
|
|
504
|
+
label: string;
|
|
505
|
+
colors: string[];
|
|
506
|
+
}
|
|
507
|
+
type ColorPresetItem = string | ColorPresetGroup;
|
|
508
|
+
interface ColorChangeEvent {
|
|
509
|
+
/** The formatted string representation according to the current format */
|
|
510
|
+
value: string;
|
|
511
|
+
/** Normalized HEX string (with alpha if applicable) */
|
|
512
|
+
hex: string;
|
|
513
|
+
/** RGBA representation */
|
|
514
|
+
rgba: RgbaColor;
|
|
515
|
+
/** HSLA representation */
|
|
516
|
+
hsla: HslaColor;
|
|
517
|
+
/** HSVA representation */
|
|
518
|
+
hsva: HsvaColor;
|
|
519
|
+
}
|
|
520
|
+
declare const DEFAULT_COLOR_PRESETS: ColorPresetGroup[];
|
|
521
|
+
|
|
522
|
+
declare class TalosColorPickerComponent implements ControlValueAccessor {
|
|
523
|
+
private readonly elementRef;
|
|
524
|
+
readonly value: _angular_core.InputSignal<string>;
|
|
525
|
+
readonly format: _angular_core.InputSignal<ColorFormat>;
|
|
526
|
+
readonly showAlpha: _angular_core.InputSignal<boolean>;
|
|
527
|
+
readonly presets: _angular_core.InputSignal<ColorPresetItem[]>;
|
|
528
|
+
readonly showPresets: _angular_core.InputSignal<boolean>;
|
|
529
|
+
readonly showRecent: _angular_core.InputSignal<boolean>;
|
|
530
|
+
readonly showEyeDropper: _angular_core.InputSignal<boolean>;
|
|
531
|
+
readonly showInputs: _angular_core.InputSignal<boolean>;
|
|
532
|
+
readonly showFormatSwitcher: _angular_core.InputSignal<boolean>;
|
|
533
|
+
readonly inline: _angular_core.InputSignal<boolean>;
|
|
534
|
+
readonly disabled: _angular_core.InputSignal<boolean>;
|
|
535
|
+
readonly readonly: _angular_core.InputSignal<boolean>;
|
|
536
|
+
readonly label: _angular_core.InputSignal<string>;
|
|
537
|
+
readonly placeholder: _angular_core.InputSignal<string>;
|
|
538
|
+
readonly size: _angular_core.InputSignal<ColorPickerSize>;
|
|
539
|
+
readonly clearable: _angular_core.InputSignal<boolean>;
|
|
540
|
+
readonly floatingLabel: _angular_core.InputSignal<boolean>;
|
|
541
|
+
readonly id: _angular_core.InputSignal<string>;
|
|
542
|
+
readonly colorChange: _angular_core.OutputEmitterRef<string>;
|
|
543
|
+
readonly colorDetailsChange: _angular_core.OutputEmitterRef<ColorChangeEvent>;
|
|
544
|
+
readonly formatChange: _angular_core.OutputEmitterRef<ColorFormat>;
|
|
545
|
+
readonly opened: _angular_core.OutputEmitterRef<void>;
|
|
546
|
+
readonly closed: _angular_core.OutputEmitterRef<void>;
|
|
547
|
+
readonly cleared: _angular_core.OutputEmitterRef<void>;
|
|
548
|
+
satValCanvas?: ElementRef<HTMLDivElement>;
|
|
549
|
+
hueTrack?: ElementRef<HTMLDivElement>;
|
|
550
|
+
alphaTrack?: ElementRef<HTMLDivElement>;
|
|
551
|
+
triggerBtn?: ElementRef<HTMLButtonElement>;
|
|
552
|
+
triggerInput?: ElementRef<HTMLInputElement>;
|
|
553
|
+
private readonly autoId;
|
|
554
|
+
readonly componentId: _angular_core.Signal<string>;
|
|
555
|
+
readonly inputId: _angular_core.Signal<string>;
|
|
556
|
+
readonly formControlDisabled: _angular_core.WritableSignal<boolean>;
|
|
557
|
+
readonly effectiveDisabled: _angular_core.Signal<boolean>;
|
|
558
|
+
readonly isOpen: _angular_core.WritableSignal<boolean>;
|
|
559
|
+
readonly isInputFocused: _angular_core.WritableSignal<boolean>;
|
|
560
|
+
readonly manualInputValue: _angular_core.WritableSignal<string>;
|
|
561
|
+
readonly currentHsva: _angular_core.WritableSignal<HsvaColor>;
|
|
562
|
+
readonly currentFormat: _angular_core.WritableSignal<ColorFormat>;
|
|
563
|
+
readonly recentColors: _angular_core.WritableSignal<string[]>;
|
|
564
|
+
readonly copied: _angular_core.WritableSignal<boolean>;
|
|
565
|
+
readonly inputHex: _angular_core.WritableSignal<string>;
|
|
566
|
+
readonly inputR: _angular_core.WritableSignal<number>;
|
|
567
|
+
readonly inputG: _angular_core.WritableSignal<number>;
|
|
568
|
+
readonly inputB: _angular_core.WritableSignal<number>;
|
|
569
|
+
readonly inputA: _angular_core.WritableSignal<number>;
|
|
570
|
+
readonly inputH: _angular_core.WritableSignal<number>;
|
|
571
|
+
readonly inputS: _angular_core.WritableSignal<number>;
|
|
572
|
+
readonly inputL: _angular_core.WritableSignal<number>;
|
|
573
|
+
private isDraggingSatVal;
|
|
574
|
+
private isDraggingHue;
|
|
575
|
+
private isDraggingAlpha;
|
|
576
|
+
readonly overlayPositions: ConnectedPosition[];
|
|
577
|
+
readonly currentRgba: _angular_core.Signal<RgbaColor>;
|
|
578
|
+
readonly currentHsla: _angular_core.Signal<_weeehaoooz_talos_ui_core.HslaColor>;
|
|
579
|
+
readonly currentHex: _angular_core.Signal<string>;
|
|
580
|
+
readonly pureHueHex: _angular_core.Signal<string>;
|
|
581
|
+
readonly isLight: _angular_core.Signal<boolean>;
|
|
582
|
+
readonly isFloated: _angular_core.Signal<boolean>;
|
|
583
|
+
readonly formattedColor: _angular_core.Signal<string>;
|
|
584
|
+
readonly rgbaString: _angular_core.Signal<string>;
|
|
585
|
+
readonly hasEyeDropper: _angular_core.Signal<boolean>;
|
|
586
|
+
readonly normalizedPresets: _angular_core.Signal<ColorPresetGroup[]>;
|
|
587
|
+
private onChange;
|
|
588
|
+
private onTouched;
|
|
589
|
+
constructor();
|
|
590
|
+
writeValue(value: string | null): void;
|
|
591
|
+
registerOnChange(fn: (value: string) => void): void;
|
|
592
|
+
registerOnTouched(fn: () => void): void;
|
|
593
|
+
setDisabledState(isDisabled: boolean): void;
|
|
594
|
+
private setColorFromExternal;
|
|
595
|
+
private updateHsva;
|
|
596
|
+
private notifyColorChange;
|
|
597
|
+
toggleDropdown(event?: Event): void;
|
|
598
|
+
open(): void;
|
|
599
|
+
close(): void;
|
|
600
|
+
onDocumentClick(event: MouseEvent): void;
|
|
601
|
+
clear(event?: MouseEvent): void;
|
|
602
|
+
onTriggerFocus(): void;
|
|
603
|
+
onTriggerBlur(event: FocusEvent): void;
|
|
604
|
+
onTriggerInput(event: Event): void;
|
|
605
|
+
onTriggerEnter(event: Event): void;
|
|
606
|
+
onSatValMouseDown(event: MouseEvent): void;
|
|
607
|
+
onSatValTouchStart(event: TouchEvent): void;
|
|
608
|
+
private updateSatValFromCoord;
|
|
609
|
+
onSatValKeyDown(event: KeyboardEvent): void;
|
|
610
|
+
onHueMouseDown(event: MouseEvent): void;
|
|
611
|
+
onHueTouchStart(event: TouchEvent): void;
|
|
612
|
+
private updateHueFromCoord;
|
|
613
|
+
onHueKeyDown(event: KeyboardEvent): void;
|
|
614
|
+
onAlphaMouseDown(event: MouseEvent): void;
|
|
615
|
+
onAlphaTouchStart(event: TouchEvent): void;
|
|
616
|
+
private updateAlphaFromCoord;
|
|
617
|
+
onAlphaKeyDown(event: KeyboardEvent): void;
|
|
618
|
+
pickWithEyeDropper(): Promise<void>;
|
|
619
|
+
copyColor(): Promise<void>;
|
|
620
|
+
switchFormat(format: ColorFormat): void;
|
|
621
|
+
onHexInputChange(val: string): void;
|
|
622
|
+
onRgbaInputChange(): void;
|
|
623
|
+
onHslaInputChange(): void;
|
|
624
|
+
selectPreset(color: string): void;
|
|
625
|
+
private recordRecentColor;
|
|
626
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<TalosColorPickerComponent, never>;
|
|
627
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<TalosColorPickerComponent, "talos-color-picker", never, { "value": { "alias": "value"; "required": false; "isSignal": true; }; "format": { "alias": "format"; "required": false; "isSignal": true; }; "showAlpha": { "alias": "showAlpha"; "required": false; "isSignal": true; }; "presets": { "alias": "presets"; "required": false; "isSignal": true; }; "showPresets": { "alias": "showPresets"; "required": false; "isSignal": true; }; "showRecent": { "alias": "showRecent"; "required": false; "isSignal": true; }; "showEyeDropper": { "alias": "showEyeDropper"; "required": false; "isSignal": true; }; "showInputs": { "alias": "showInputs"; "required": false; "isSignal": true; }; "showFormatSwitcher": { "alias": "showFormatSwitcher"; "required": false; "isSignal": true; }; "inline": { "alias": "inline"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "readonly": { "alias": "readonly"; "required": false; "isSignal": true; }; "label": { "alias": "label"; "required": false; "isSignal": true; }; "placeholder": { "alias": "placeholder"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; "clearable": { "alias": "clearable"; "required": false; "isSignal": true; }; "floatingLabel": { "alias": "floatingLabel"; "required": false; "isSignal": true; }; "id": { "alias": "id"; "required": false; "isSignal": true; }; }, { "colorChange": "colorChange"; "colorDetailsChange": "colorDetailsChange"; "formatChange": "formatChange"; "opened": "opened"; "closed": "closed"; "cleared": "cleared"; }, never, never, true, never>;
|
|
628
|
+
}
|
|
629
|
+
|
|
630
|
+
declare class TalosColorPickerModule {
|
|
631
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<TalosColorPickerModule, never>;
|
|
632
|
+
static ɵmod: _angular_core.ɵɵNgModuleDeclaration<TalosColorPickerModule, never, [typeof TalosColorPickerComponent], [typeof TalosColorPickerComponent]>;
|
|
633
|
+
static ɵinj: _angular_core.ɵɵInjectorDeclaration<TalosColorPickerModule>;
|
|
634
|
+
}
|
|
635
|
+
|
|
636
|
+
interface CalendarDay {
|
|
637
|
+
date: Date;
|
|
638
|
+
dayNumber: number;
|
|
639
|
+
isCurrentMonth: boolean;
|
|
640
|
+
isToday: boolean;
|
|
641
|
+
isSelected: boolean;
|
|
642
|
+
isDisabled: boolean;
|
|
643
|
+
isFocused: boolean;
|
|
644
|
+
}
|
|
645
|
+
interface CalendarMonth {
|
|
646
|
+
name: string;
|
|
647
|
+
monthIndex: number;
|
|
648
|
+
isSelected: boolean;
|
|
649
|
+
isCurrentMonth: boolean;
|
|
650
|
+
isDisabled: boolean;
|
|
651
|
+
}
|
|
652
|
+
interface CalendarYear {
|
|
653
|
+
year: number;
|
|
654
|
+
isSelected: boolean;
|
|
655
|
+
isCurrentYear: boolean;
|
|
656
|
+
isDisabled: boolean;
|
|
657
|
+
}
|
|
658
|
+
declare class DatePickerComponent implements ControlValueAccessor {
|
|
659
|
+
private readonly elementRef;
|
|
660
|
+
readonly placeholder: _angular_core.InputSignal<string>;
|
|
661
|
+
readonly label: _angular_core.InputSignal<string>;
|
|
662
|
+
readonly floatingLabel: _angular_core.InputSignal<boolean>;
|
|
663
|
+
readonly floating: _angular_core.InputSignal<boolean>;
|
|
664
|
+
readonly required: _angular_core.InputSignal<boolean>;
|
|
665
|
+
readonly disabled: _angular_core.InputSignal<boolean>;
|
|
666
|
+
readonly clearable: _angular_core.InputSignal<boolean>;
|
|
667
|
+
readonly size: _angular_core.InputSignal<"sm" | "md" | "lg">;
|
|
668
|
+
readonly displayFormat: _angular_core.InputSignal<string>;
|
|
669
|
+
readonly valueFormat: _angular_core.InputSignal<string>;
|
|
670
|
+
readonly showTime: _angular_core.InputSignal<boolean>;
|
|
671
|
+
readonly use24Hour: _angular_core.InputSignal<boolean>;
|
|
672
|
+
readonly showSeconds: _angular_core.InputSignal<boolean>;
|
|
673
|
+
readonly minuteStep: _angular_core.InputSignal<number>;
|
|
674
|
+
readonly minDate: _angular_core.InputSignal<string | number | Date | null>;
|
|
675
|
+
readonly maxDate: _angular_core.InputSignal<string | number | Date | null>;
|
|
676
|
+
readonly firstDayOfWeek: _angular_core.InputSignal<number>;
|
|
677
|
+
readonly filterDate: _angular_core.InputSignal<((date: Date) => boolean) | null>;
|
|
678
|
+
readonly dateChange: _angular_core.OutputEmitterRef<unknown>;
|
|
679
|
+
readonly opened: _angular_core.OutputEmitterRef<void>;
|
|
680
|
+
readonly closed: _angular_core.OutputEmitterRef<void>;
|
|
681
|
+
triggerEl?: ElementRef<HTMLDivElement>;
|
|
682
|
+
inputEl?: ElementRef<HTMLInputElement>;
|
|
683
|
+
readonly positions: ConnectedPosition[];
|
|
684
|
+
readonly componentId: string;
|
|
685
|
+
readonly dialogId: string;
|
|
686
|
+
readonly selectedDate: _angular_core.WritableSignal<Date | null>;
|
|
687
|
+
readonly viewDate: _angular_core.WritableSignal<Date>;
|
|
688
|
+
readonly viewMode: _angular_core.WritableSignal<"day" | "month" | "year">;
|
|
689
|
+
readonly isOpen: _angular_core.WritableSignal<boolean>;
|
|
690
|
+
readonly isFocused: _angular_core.WritableSignal<boolean>;
|
|
691
|
+
readonly isDisabledSignal: _angular_core.WritableSignal<boolean>;
|
|
692
|
+
readonly isTouched: _angular_core.WritableSignal<boolean>;
|
|
693
|
+
readonly focusedDate: _angular_core.WritableSignal<Date | null>;
|
|
694
|
+
readonly inputText: _angular_core.WritableSignal<string>;
|
|
695
|
+
readonly draftHour: _angular_core.WritableSignal<number>;
|
|
696
|
+
readonly draftMinute: _angular_core.WritableSignal<number>;
|
|
697
|
+
readonly draftSecond: _angular_core.WritableSignal<number>;
|
|
698
|
+
readonly isFloatingMode: _angular_core.Signal<boolean>;
|
|
699
|
+
readonly isFloated: _angular_core.Signal<boolean>;
|
|
700
|
+
readonly effectiveDisabled: _angular_core.Signal<boolean>;
|
|
701
|
+
readonly effectiveDisplayFormat: _angular_core.Signal<string>;
|
|
702
|
+
readonly effectiveValueFormat: _angular_core.Signal<string>;
|
|
703
|
+
readonly formattedValue: _angular_core.Signal<string>;
|
|
704
|
+
readonly displayHour: _angular_core.Signal<string>;
|
|
705
|
+
readonly displayMinute: _angular_core.Signal<string>;
|
|
706
|
+
readonly displaySecond: _angular_core.Signal<string>;
|
|
707
|
+
readonly meridiem: _angular_core.Signal<"AM" | "PM">;
|
|
708
|
+
readonly parsedMinDate: _angular_core.Signal<Date | null>;
|
|
709
|
+
readonly parsedMaxDate: _angular_core.Signal<Date | null>;
|
|
710
|
+
readonly weekDayNames: _angular_core.Signal<string[]>;
|
|
711
|
+
readonly calendarDays: _angular_core.Signal<CalendarDay[]>;
|
|
712
|
+
readonly monthList: _angular_core.Signal<CalendarMonth[]>;
|
|
713
|
+
readonly yearList: _angular_core.Signal<CalendarYear[]>;
|
|
714
|
+
readonly isPrevDisabled: _angular_core.Signal<boolean>;
|
|
715
|
+
readonly isNextDisabled: _angular_core.Signal<boolean>;
|
|
716
|
+
readonly isTodayDisabled: _angular_core.Signal<boolean>;
|
|
717
|
+
readonly isNowDisabled: _angular_core.Signal<boolean>;
|
|
718
|
+
readonly currentHeaderLabel: _angular_core.Signal<string>;
|
|
719
|
+
private onChange;
|
|
720
|
+
private onTouched;
|
|
721
|
+
constructor();
|
|
722
|
+
writeValue(val: unknown): void;
|
|
723
|
+
registerOnChange(fn: (val: unknown) => void): void;
|
|
724
|
+
registerOnTouched(fn: () => void): void;
|
|
725
|
+
setDisabledState(isDisabled: boolean): void;
|
|
726
|
+
toggleOpen(): void;
|
|
727
|
+
open(): void;
|
|
728
|
+
close(): void;
|
|
729
|
+
prevPeriod(): void;
|
|
730
|
+
nextPeriod(): void;
|
|
731
|
+
toggleViewMode(): void;
|
|
732
|
+
selectMonth(monthIdx: number): void;
|
|
733
|
+
selectYear(year: number): void;
|
|
734
|
+
selectDay(day: CalendarDay): void;
|
|
735
|
+
selectToday(): void;
|
|
736
|
+
selectNow(): void;
|
|
737
|
+
applySelection(): void;
|
|
738
|
+
adjustHour(delta: number): void;
|
|
739
|
+
adjustMinute(delta: number): void;
|
|
740
|
+
adjustSecond(delta: number): void;
|
|
741
|
+
onHourInput(event: Event): void;
|
|
742
|
+
onHourBlur(event: FocusEvent): void;
|
|
743
|
+
onMinuteInput(event: Event): void;
|
|
744
|
+
onMinuteBlur(event: FocusEvent): void;
|
|
745
|
+
onSecondInput(event: Event): void;
|
|
746
|
+
onSecondBlur(event: FocusEvent): void;
|
|
747
|
+
onTimeInputKeydown(event: KeyboardEvent, type: 'hour' | 'minute' | 'second'): void;
|
|
748
|
+
toggleMeridiem(): void;
|
|
749
|
+
private updateSelectedTime;
|
|
750
|
+
onClear(event: MouseEvent): void;
|
|
751
|
+
onInputChange(event: Event): void;
|
|
752
|
+
onInputFocus(): void;
|
|
753
|
+
onInputBlur(event: FocusEvent): void;
|
|
754
|
+
onInputKeyDown(event: KeyboardEvent): void;
|
|
755
|
+
private commitSelection;
|
|
756
|
+
private formatOutputValue;
|
|
757
|
+
private isDateDisabled;
|
|
758
|
+
markAsTouched(): void;
|
|
759
|
+
onKeyDown(event: KeyboardEvent): void;
|
|
760
|
+
private navigateKeyboardDay;
|
|
761
|
+
onDocumentClick(event: MouseEvent): void;
|
|
762
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<DatePickerComponent, never>;
|
|
763
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<DatePickerComponent, "talos-date-picker", never, { "placeholder": { "alias": "placeholder"; "required": false; "isSignal": true; }; "label": { "alias": "label"; "required": false; "isSignal": true; }; "floatingLabel": { "alias": "floatingLabel"; "required": false; "isSignal": true; }; "floating": { "alias": "floating"; "required": false; "isSignal": true; }; "required": { "alias": "required"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "clearable": { "alias": "clearable"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; "displayFormat": { "alias": "displayFormat"; "required": false; "isSignal": true; }; "valueFormat": { "alias": "valueFormat"; "required": false; "isSignal": true; }; "showTime": { "alias": "showTime"; "required": false; "isSignal": true; }; "use24Hour": { "alias": "use24Hour"; "required": false; "isSignal": true; }; "showSeconds": { "alias": "showSeconds"; "required": false; "isSignal": true; }; "minuteStep": { "alias": "minuteStep"; "required": false; "isSignal": true; }; "minDate": { "alias": "minDate"; "required": false; "isSignal": true; }; "maxDate": { "alias": "maxDate"; "required": false; "isSignal": true; }; "firstDayOfWeek": { "alias": "firstDayOfWeek"; "required": false; "isSignal": true; }; "filterDate": { "alias": "filterDate"; "required": false; "isSignal": true; }; }, { "dateChange": "dateChange"; "opened": "opened"; "closed": "closed"; }, never, never, true, never>;
|
|
764
|
+
}
|
|
765
|
+
|
|
766
|
+
interface DateRangeValue {
|
|
767
|
+
startDate: string | Date | number | null;
|
|
768
|
+
endDate: string | Date | number | null;
|
|
769
|
+
}
|
|
770
|
+
interface InternalDateRange {
|
|
771
|
+
startDate: Date | null;
|
|
772
|
+
endDate: Date | null;
|
|
773
|
+
}
|
|
774
|
+
interface DateRangePreset {
|
|
775
|
+
label: string;
|
|
776
|
+
key?: string;
|
|
777
|
+
isDuration?: boolean;
|
|
778
|
+
getValue?: (referenceDate?: Date | null) => InternalDateRange;
|
|
779
|
+
duration?: {
|
|
780
|
+
days?: number;
|
|
781
|
+
weeks?: number;
|
|
782
|
+
months?: number;
|
|
783
|
+
years?: number;
|
|
784
|
+
};
|
|
785
|
+
}
|
|
786
|
+
interface RangeCalendarDay {
|
|
787
|
+
date: Date;
|
|
788
|
+
dayNumber: number;
|
|
789
|
+
isCurrentMonth: boolean;
|
|
790
|
+
isToday: boolean;
|
|
791
|
+
isSelectedStart: boolean;
|
|
792
|
+
isSelectedEnd: boolean;
|
|
793
|
+
isInRange: boolean;
|
|
794
|
+
isHoveredRange: boolean;
|
|
795
|
+
isDisabled: boolean;
|
|
796
|
+
isFocused: boolean;
|
|
797
|
+
}
|
|
798
|
+
|
|
799
|
+
declare class DateRangePickerComponent implements ControlValueAccessor {
|
|
800
|
+
private readonly elementRef;
|
|
801
|
+
readonly placeholder: _angular_core.InputSignal<string>;
|
|
802
|
+
readonly label: _angular_core.InputSignal<string>;
|
|
803
|
+
readonly floatingLabel: _angular_core.InputSignal<boolean>;
|
|
804
|
+
readonly floating: _angular_core.InputSignal<boolean>;
|
|
805
|
+
readonly required: _angular_core.InputSignal<boolean>;
|
|
806
|
+
readonly disabled: _angular_core.InputSignal<boolean>;
|
|
807
|
+
readonly clearable: _angular_core.InputSignal<boolean>;
|
|
808
|
+
readonly size: _angular_core.InputSignal<"sm" | "md" | "lg">;
|
|
809
|
+
readonly displayFormat: _angular_core.InputSignal<string>;
|
|
810
|
+
readonly valueFormat: _angular_core.InputSignal<string>;
|
|
811
|
+
readonly showTime: _angular_core.InputSignal<boolean>;
|
|
812
|
+
readonly use24Hour: _angular_core.InputSignal<boolean>;
|
|
813
|
+
readonly showSeconds: _angular_core.InputSignal<boolean>;
|
|
814
|
+
readonly minuteStep: _angular_core.InputSignal<number>;
|
|
815
|
+
readonly minDate: _angular_core.InputSignal<string | number | Date | null>;
|
|
816
|
+
readonly maxDate: _angular_core.InputSignal<string | number | Date | null>;
|
|
817
|
+
readonly minSpan: _angular_core.InputSignal<number | null>;
|
|
818
|
+
readonly maxSpan: _angular_core.InputSignal<number | null>;
|
|
819
|
+
readonly firstDayOfWeek: _angular_core.InputSignal<number>;
|
|
820
|
+
readonly presets: _angular_core.InputSignal<DateRangePreset[] | null>;
|
|
821
|
+
readonly presetType: _angular_core.InputSignal<"all" | "calendar" | "duration">;
|
|
822
|
+
readonly filterDate: _angular_core.InputSignal<((date: Date) => boolean) | null>;
|
|
823
|
+
readonly rangeChange: _angular_core.OutputEmitterRef<DateRangeValue | null>;
|
|
824
|
+
readonly opened: _angular_core.OutputEmitterRef<void>;
|
|
825
|
+
readonly closed: _angular_core.OutputEmitterRef<void>;
|
|
826
|
+
triggerEl?: ElementRef<HTMLDivElement>;
|
|
827
|
+
startInputEl?: ElementRef<HTMLInputElement>;
|
|
828
|
+
endInputEl?: ElementRef<HTMLInputElement>;
|
|
829
|
+
readonly positions: ConnectedPosition[];
|
|
830
|
+
readonly componentId: string;
|
|
831
|
+
readonly dialogId: string;
|
|
832
|
+
readonly selectedStartDate: _angular_core.WritableSignal<Date | null>;
|
|
833
|
+
readonly selectedEndDate: _angular_core.WritableSignal<Date | null>;
|
|
834
|
+
readonly draftStartDate: _angular_core.WritableSignal<Date | null>;
|
|
835
|
+
readonly draftEndDate: _angular_core.WritableSignal<Date | null>;
|
|
836
|
+
readonly hoverDate: _angular_core.WritableSignal<Date | null>;
|
|
837
|
+
readonly draftStartHour: _angular_core.WritableSignal<number>;
|
|
838
|
+
readonly draftStartMinute: _angular_core.WritableSignal<number>;
|
|
839
|
+
readonly draftStartSecond: _angular_core.WritableSignal<number>;
|
|
840
|
+
readonly draftEndHour: _angular_core.WritableSignal<number>;
|
|
841
|
+
readonly draftEndMinute: _angular_core.WritableSignal<number>;
|
|
842
|
+
readonly draftEndSecond: _angular_core.WritableSignal<number>;
|
|
843
|
+
readonly viewDate: _angular_core.WritableSignal<Date>;
|
|
844
|
+
readonly isOpen: _angular_core.WritableSignal<boolean>;
|
|
845
|
+
readonly isDisabledSignal: _angular_core.WritableSignal<boolean>;
|
|
846
|
+
readonly isTouched: _angular_core.WritableSignal<boolean>;
|
|
847
|
+
readonly activePresetLabel: _angular_core.WritableSignal<string | null>;
|
|
848
|
+
readonly startInputText: _angular_core.WritableSignal<string>;
|
|
849
|
+
readonly endInputText: _angular_core.WritableSignal<string>;
|
|
850
|
+
readonly isFloatingMode: _angular_core.Signal<boolean>;
|
|
851
|
+
readonly isFloated: _angular_core.Signal<boolean>;
|
|
852
|
+
readonly effectiveDisabled: _angular_core.Signal<boolean>;
|
|
853
|
+
readonly effectiveDisplayFormat: _angular_core.Signal<string>;
|
|
854
|
+
readonly effectiveValueFormat: _angular_core.Signal<string>;
|
|
855
|
+
readonly viewDateRight: _angular_core.Signal<Date>;
|
|
856
|
+
readonly parsedMinDate: _angular_core.Signal<Date | null>;
|
|
857
|
+
readonly parsedMaxDate: _angular_core.Signal<Date | null>;
|
|
858
|
+
readonly formattedTriggerValue: _angular_core.Signal<string>;
|
|
859
|
+
readonly weekDayNames: _angular_core.Signal<string[]>;
|
|
860
|
+
readonly effectivePresets: _angular_core.Signal<DateRangePreset[]>;
|
|
861
|
+
readonly leftCalendarDays: _angular_core.Signal<RangeCalendarDay[]>;
|
|
862
|
+
readonly rightCalendarDays: _angular_core.Signal<RangeCalendarDay[]>;
|
|
863
|
+
readonly isPrevDisabled: _angular_core.Signal<boolean>;
|
|
864
|
+
readonly isNextDisabled: _angular_core.Signal<boolean>;
|
|
865
|
+
readonly leftHeaderLabel: _angular_core.Signal<string>;
|
|
866
|
+
readonly rightHeaderLabel: _angular_core.Signal<string>;
|
|
867
|
+
private onChange;
|
|
868
|
+
private onTouched;
|
|
869
|
+
constructor();
|
|
870
|
+
writeValue(val: unknown): void;
|
|
871
|
+
registerOnChange(fn: (val: unknown) => void): void;
|
|
872
|
+
registerOnTouched(fn: () => void): void;
|
|
873
|
+
setDisabledState(isDisabled: boolean): void;
|
|
874
|
+
toggleOpen(): void;
|
|
875
|
+
open(): void;
|
|
876
|
+
close(): void;
|
|
877
|
+
prevMonth(): void;
|
|
878
|
+
nextMonth(): void;
|
|
879
|
+
selectDay(day: RangeCalendarDay): void;
|
|
880
|
+
onDayHover(day: RangeCalendarDay): void;
|
|
881
|
+
applyPreset(preset: DateRangePreset): void;
|
|
882
|
+
applySelection(): void;
|
|
883
|
+
cancelSelection(): void;
|
|
884
|
+
onClear(event: MouseEvent): void;
|
|
885
|
+
adjustStartHour(delta: number): void;
|
|
886
|
+
adjustStartMinute(delta: number): void;
|
|
887
|
+
adjustEndHour(delta: number): void;
|
|
888
|
+
adjustEndMinute(delta: number): void;
|
|
889
|
+
toggleStartMeridiem(): void;
|
|
890
|
+
toggleEndMeridiem(): void;
|
|
891
|
+
onStartInputChange(event: Event): void;
|
|
892
|
+
onStartInputBlur(event: FocusEvent): void;
|
|
893
|
+
onEndInputChange(event: Event): void;
|
|
894
|
+
onEndInputBlur(event: FocusEvent): void;
|
|
895
|
+
onFooterInputKeyDown(event: KeyboardEvent): void;
|
|
896
|
+
private buildCalendarDays;
|
|
897
|
+
private emitValue;
|
|
898
|
+
private formatOutputDate;
|
|
899
|
+
markAsTouched(): void;
|
|
900
|
+
onKeyDown(event: KeyboardEvent): void;
|
|
901
|
+
onDocumentClick(event: MouseEvent): void;
|
|
902
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<DateRangePickerComponent, never>;
|
|
903
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<DateRangePickerComponent, "talos-date-range-picker", never, { "placeholder": { "alias": "placeholder"; "required": false; "isSignal": true; }; "label": { "alias": "label"; "required": false; "isSignal": true; }; "floatingLabel": { "alias": "floatingLabel"; "required": false; "isSignal": true; }; "floating": { "alias": "floating"; "required": false; "isSignal": true; }; "required": { "alias": "required"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "clearable": { "alias": "clearable"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; "displayFormat": { "alias": "displayFormat"; "required": false; "isSignal": true; }; "valueFormat": { "alias": "valueFormat"; "required": false; "isSignal": true; }; "showTime": { "alias": "showTime"; "required": false; "isSignal": true; }; "use24Hour": { "alias": "use24Hour"; "required": false; "isSignal": true; }; "showSeconds": { "alias": "showSeconds"; "required": false; "isSignal": true; }; "minuteStep": { "alias": "minuteStep"; "required": false; "isSignal": true; }; "minDate": { "alias": "minDate"; "required": false; "isSignal": true; }; "maxDate": { "alias": "maxDate"; "required": false; "isSignal": true; }; "minSpan": { "alias": "minSpan"; "required": false; "isSignal": true; }; "maxSpan": { "alias": "maxSpan"; "required": false; "isSignal": true; }; "firstDayOfWeek": { "alias": "firstDayOfWeek"; "required": false; "isSignal": true; }; "presets": { "alias": "presets"; "required": false; "isSignal": true; }; "presetType": { "alias": "presetType"; "required": false; "isSignal": true; }; "filterDate": { "alias": "filterDate"; "required": false; "isSignal": true; }; }, { "rangeChange": "rangeChange"; "opened": "opened"; "closed": "closed"; }, never, never, true, never>;
|
|
904
|
+
}
|
|
905
|
+
|
|
906
|
+
declare class DateTimePickerComponent implements ControlValueAccessor {
|
|
907
|
+
readonly placeholder: _angular_core.InputSignal<string>;
|
|
908
|
+
readonly label: _angular_core.InputSignal<string>;
|
|
909
|
+
readonly floatingLabel: _angular_core.InputSignal<boolean>;
|
|
910
|
+
readonly floating: _angular_core.InputSignal<boolean>;
|
|
911
|
+
readonly required: _angular_core.InputSignal<boolean>;
|
|
912
|
+
readonly disabled: _angular_core.InputSignal<boolean>;
|
|
913
|
+
readonly clearable: _angular_core.InputSignal<boolean>;
|
|
914
|
+
readonly size: _angular_core.InputSignal<"sm" | "md" | "lg">;
|
|
915
|
+
readonly displayFormat: _angular_core.InputSignal<string>;
|
|
916
|
+
readonly valueFormat: _angular_core.InputSignal<string>;
|
|
917
|
+
readonly use24Hour: _angular_core.InputSignal<boolean>;
|
|
918
|
+
readonly showSeconds: _angular_core.InputSignal<boolean>;
|
|
919
|
+
readonly minuteStep: _angular_core.InputSignal<number>;
|
|
920
|
+
readonly minDate: _angular_core.InputSignal<string | number | Date | null>;
|
|
921
|
+
readonly maxDate: _angular_core.InputSignal<string | number | Date | null>;
|
|
922
|
+
readonly firstDayOfWeek: _angular_core.InputSignal<number>;
|
|
923
|
+
readonly filterDate: _angular_core.InputSignal<((date: Date) => boolean) | null>;
|
|
924
|
+
readonly dateTimeChange: _angular_core.OutputEmitterRef<unknown>;
|
|
925
|
+
readonly opened: _angular_core.OutputEmitterRef<void>;
|
|
926
|
+
readonly closed: _angular_core.OutputEmitterRef<void>;
|
|
927
|
+
corePicker?: DatePickerComponent;
|
|
928
|
+
readonly componentId: string;
|
|
929
|
+
readonly currentValue: _angular_core.WritableSignal<unknown>;
|
|
930
|
+
private onChange;
|
|
931
|
+
private onTouched;
|
|
932
|
+
constructor();
|
|
933
|
+
writeValue(val: unknown): void;
|
|
934
|
+
registerOnChange(fn: (val: unknown) => void): void;
|
|
935
|
+
registerOnTouched(fn: () => void): void;
|
|
936
|
+
setDisabledState(isDisabled: boolean): void;
|
|
937
|
+
onDateChange(val: unknown): void;
|
|
938
|
+
onOpened(): void;
|
|
939
|
+
onClosed(): void;
|
|
940
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<DateTimePickerComponent, never>;
|
|
941
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<DateTimePickerComponent, "talos-date-time-picker", never, { "placeholder": { "alias": "placeholder"; "required": false; "isSignal": true; }; "label": { "alias": "label"; "required": false; "isSignal": true; }; "floatingLabel": { "alias": "floatingLabel"; "required": false; "isSignal": true; }; "floating": { "alias": "floating"; "required": false; "isSignal": true; }; "required": { "alias": "required"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "clearable": { "alias": "clearable"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; "displayFormat": { "alias": "displayFormat"; "required": false; "isSignal": true; }; "valueFormat": { "alias": "valueFormat"; "required": false; "isSignal": true; }; "use24Hour": { "alias": "use24Hour"; "required": false; "isSignal": true; }; "showSeconds": { "alias": "showSeconds"; "required": false; "isSignal": true; }; "minuteStep": { "alias": "minuteStep"; "required": false; "isSignal": true; }; "minDate": { "alias": "minDate"; "required": false; "isSignal": true; }; "maxDate": { "alias": "maxDate"; "required": false; "isSignal": true; }; "firstDayOfWeek": { "alias": "firstDayOfWeek"; "required": false; "isSignal": true; }; "filterDate": { "alias": "filterDate"; "required": false; "isSignal": true; }; }, { "dateTimeChange": "dateTimeChange"; "opened": "opened"; "closed": "closed"; }, never, never, true, never>;
|
|
942
|
+
}
|
|
943
|
+
|
|
944
|
+
declare class DateTimeRangePickerComponent implements ControlValueAccessor {
|
|
945
|
+
readonly placeholder: _angular_core.InputSignal<string>;
|
|
946
|
+
readonly label: _angular_core.InputSignal<string>;
|
|
947
|
+
readonly floatingLabel: _angular_core.InputSignal<boolean>;
|
|
948
|
+
readonly floating: _angular_core.InputSignal<boolean>;
|
|
949
|
+
readonly required: _angular_core.InputSignal<boolean>;
|
|
950
|
+
readonly disabled: _angular_core.InputSignal<boolean>;
|
|
951
|
+
readonly clearable: _angular_core.InputSignal<boolean>;
|
|
952
|
+
readonly size: _angular_core.InputSignal<"sm" | "md" | "lg">;
|
|
953
|
+
readonly displayFormat: _angular_core.InputSignal<string>;
|
|
954
|
+
readonly valueFormat: _angular_core.InputSignal<string>;
|
|
955
|
+
readonly use24Hour: _angular_core.InputSignal<boolean>;
|
|
956
|
+
readonly showSeconds: _angular_core.InputSignal<boolean>;
|
|
957
|
+
readonly minuteStep: _angular_core.InputSignal<number>;
|
|
958
|
+
readonly minDate: _angular_core.InputSignal<string | number | Date | null>;
|
|
959
|
+
readonly maxDate: _angular_core.InputSignal<string | number | Date | null>;
|
|
960
|
+
readonly minSpan: _angular_core.InputSignal<number | null>;
|
|
961
|
+
readonly maxSpan: _angular_core.InputSignal<number | null>;
|
|
962
|
+
readonly firstDayOfWeek: _angular_core.InputSignal<number>;
|
|
963
|
+
readonly presets: _angular_core.InputSignal<DateRangePreset[] | null>;
|
|
964
|
+
readonly presetType: _angular_core.InputSignal<"all" | "calendar" | "duration">;
|
|
965
|
+
readonly filterDate: _angular_core.InputSignal<((date: Date) => boolean) | null>;
|
|
966
|
+
readonly dateTimeRangeChange: _angular_core.OutputEmitterRef<DateRangeValue | null>;
|
|
967
|
+
readonly opened: _angular_core.OutputEmitterRef<void>;
|
|
968
|
+
readonly closed: _angular_core.OutputEmitterRef<void>;
|
|
969
|
+
corePicker?: DateRangePickerComponent;
|
|
970
|
+
readonly componentId: string;
|
|
971
|
+
readonly currentValue: _angular_core.WritableSignal<DateRangeValue | null>;
|
|
972
|
+
private onChange;
|
|
973
|
+
private onTouched;
|
|
974
|
+
constructor();
|
|
975
|
+
writeValue(val: unknown): void;
|
|
976
|
+
registerOnChange(fn: (val: unknown) => void): void;
|
|
977
|
+
registerOnTouched(fn: () => void): void;
|
|
978
|
+
setDisabledState(isDisabled: boolean): void;
|
|
979
|
+
onRangeChange(val: DateRangeValue | null): void;
|
|
980
|
+
onOpened(): void;
|
|
981
|
+
onClosed(): void;
|
|
982
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<DateTimeRangePickerComponent, never>;
|
|
983
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<DateTimeRangePickerComponent, "talos-date-time-range-picker", never, { "placeholder": { "alias": "placeholder"; "required": false; "isSignal": true; }; "label": { "alias": "label"; "required": false; "isSignal": true; }; "floatingLabel": { "alias": "floatingLabel"; "required": false; "isSignal": true; }; "floating": { "alias": "floating"; "required": false; "isSignal": true; }; "required": { "alias": "required"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "clearable": { "alias": "clearable"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; "displayFormat": { "alias": "displayFormat"; "required": false; "isSignal": true; }; "valueFormat": { "alias": "valueFormat"; "required": false; "isSignal": true; }; "use24Hour": { "alias": "use24Hour"; "required": false; "isSignal": true; }; "showSeconds": { "alias": "showSeconds"; "required": false; "isSignal": true; }; "minuteStep": { "alias": "minuteStep"; "required": false; "isSignal": true; }; "minDate": { "alias": "minDate"; "required": false; "isSignal": true; }; "maxDate": { "alias": "maxDate"; "required": false; "isSignal": true; }; "minSpan": { "alias": "minSpan"; "required": false; "isSignal": true; }; "maxSpan": { "alias": "maxSpan"; "required": false; "isSignal": true; }; "firstDayOfWeek": { "alias": "firstDayOfWeek"; "required": false; "isSignal": true; }; "presets": { "alias": "presets"; "required": false; "isSignal": true; }; "presetType": { "alias": "presetType"; "required": false; "isSignal": true; }; "filterDate": { "alias": "filterDate"; "required": false; "isSignal": true; }; }, { "dateTimeRangeChange": "dateTimeRangeChange"; "opened": "opened"; "closed": "closed"; }, never, never, true, never>;
|
|
984
|
+
}
|
|
985
|
+
|
|
986
|
+
/**
|
|
987
|
+
* Status of a file being tracked or uploaded in the Drop Zone.
|
|
988
|
+
*/
|
|
989
|
+
type DropZoneFileStatus = 'pending' | 'uploading' | 'success' | 'error';
|
|
990
|
+
/**
|
|
991
|
+
* Visual layout variants for the Drop Zone.
|
|
992
|
+
*/
|
|
993
|
+
type DropZoneVariant = 'default' | 'compact' | 'mini' | 'card';
|
|
994
|
+
/**
|
|
995
|
+
* Size variants for the Drop Zone.
|
|
996
|
+
*/
|
|
997
|
+
type DropZoneSize = 'sm' | 'md' | 'lg';
|
|
998
|
+
/**
|
|
999
|
+
* Rejection reason codes when an added file fails validation.
|
|
1000
|
+
*/
|
|
1001
|
+
type FileRejectionReason = 'INVALID_TYPE' | 'FILE_TOO_LARGE' | 'FILE_TOO_SMALL' | 'MAX_FILES_EXCEEDED' | 'DUPLICATE_FILE' | 'CUSTOM_VALIDATION_FAILED';
|
|
1002
|
+
/**
|
|
1003
|
+
* Information regarding a file rejected during drag & drop or selection.
|
|
1004
|
+
*/
|
|
1005
|
+
interface DropZoneRejection {
|
|
1006
|
+
file: File;
|
|
1007
|
+
reason: FileRejectionReason;
|
|
1008
|
+
message: string;
|
|
1009
|
+
}
|
|
1010
|
+
/**
|
|
1011
|
+
* Wrapper object representing an uploaded or staged file in the Drop Zone.
|
|
1012
|
+
*/
|
|
1013
|
+
interface DropZoneFile {
|
|
1014
|
+
id: string;
|
|
1015
|
+
file: File;
|
|
1016
|
+
name: string;
|
|
1017
|
+
size: number;
|
|
1018
|
+
type: string;
|
|
1019
|
+
progress?: number;
|
|
1020
|
+
status?: DropZoneFileStatus;
|
|
1021
|
+
errorMessage?: string;
|
|
1022
|
+
previewUrl?: string;
|
|
1023
|
+
data?: unknown;
|
|
1024
|
+
}
|
|
1025
|
+
/**
|
|
1026
|
+
* Custom file validation function. Returns null if valid or an error message string if invalid.
|
|
1027
|
+
*/
|
|
1028
|
+
type DropZoneValidatorFn = (file: File) => string | null;
|
|
1029
|
+
/**
|
|
1030
|
+
* Event payload emitted when files are dropped or selected.
|
|
1031
|
+
*/
|
|
1032
|
+
interface DropZoneChangeEvent {
|
|
1033
|
+
files: DropZoneFile[];
|
|
1034
|
+
rawFiles: File[];
|
|
1035
|
+
rejected: DropZoneRejection[];
|
|
1036
|
+
}
|
|
1037
|
+
|
|
1038
|
+
declare class TalosFileDropDirective {
|
|
1039
|
+
private readonly elementRef;
|
|
1040
|
+
/** Whether the drop target is disabled */
|
|
1041
|
+
readonly disabled: _angular_core.InputSignal<boolean>;
|
|
1042
|
+
/** Signal emitting when files are dropped onto the element */
|
|
1043
|
+
readonly fileDrop: _angular_core.OutputEmitterRef<File[]>;
|
|
1044
|
+
/** Signal emitting when a drag enters the element */
|
|
1045
|
+
readonly dragOver: _angular_core.OutputEmitterRef<DragEvent>;
|
|
1046
|
+
/** Signal emitting when a drag leaves the element */
|
|
1047
|
+
readonly dragLeave: _angular_core.OutputEmitterRef<DragEvent>;
|
|
1048
|
+
/** Internal signal tracking active drag over state */
|
|
1049
|
+
readonly isDragOver: _angular_core.WritableSignal<boolean>;
|
|
1050
|
+
/** Counter to handle dragenter/dragleave transitions between child elements */
|
|
1051
|
+
private dragCounter;
|
|
1052
|
+
onDragOver(event: DragEvent): void;
|
|
1053
|
+
onDragEnter(event: DragEvent): void;
|
|
1054
|
+
onDragLeave(event: DragEvent): void;
|
|
1055
|
+
onDrop(event: DragEvent): void;
|
|
1056
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<TalosFileDropDirective, never>;
|
|
1057
|
+
static ɵdir: _angular_core.ɵɵDirectiveDeclaration<TalosFileDropDirective, "[talosFileDrop], [talos-file-drop]", never, { "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; }, { "fileDrop": "fileDrop"; "dragOver": "dragOver"; "dragLeave": "dragLeave"; }, never, never, true, never>;
|
|
1058
|
+
}
|
|
1059
|
+
|
|
1060
|
+
declare class TalosDropZoneComponent implements ControlValueAccessor {
|
|
1061
|
+
private readonly elementRef;
|
|
1062
|
+
/** Accepted file types / extensions (e.g. "image/*", ".pdf,.docx", "image/png,image/jpeg") */
|
|
1063
|
+
readonly accept: _angular_core.InputSignal<string>;
|
|
1064
|
+
/** Allow selecting multiple files */
|
|
1065
|
+
readonly multiple: _angular_core.InputSignal<boolean>;
|
|
1066
|
+
/** Maximum file size in bytes or human-readable string (e.g. 5242880 or '5MB') */
|
|
1067
|
+
readonly maxFileSize: _angular_core.InputSignal<string | number | null>;
|
|
1068
|
+
/** Minimum file size in bytes or human-readable string (e.g. 1024 or '1KB') */
|
|
1069
|
+
readonly minFileSize: _angular_core.InputSignal<string | number | null>;
|
|
1070
|
+
/** Maximum total number of files allowed */
|
|
1071
|
+
readonly maxFiles: _angular_core.InputSignal<number | null>;
|
|
1072
|
+
/** Disable user interactions */
|
|
1073
|
+
readonly disabled: _angular_core.InputSignal<boolean>;
|
|
1074
|
+
/** Make drop zone read-only */
|
|
1075
|
+
readonly readonly: _angular_core.InputSignal<boolean>;
|
|
1076
|
+
/** Display loading / processing spinner */
|
|
1077
|
+
readonly loading: _angular_core.InputSignal<boolean>;
|
|
1078
|
+
/** Layout visual variant */
|
|
1079
|
+
readonly variant: _angular_core.InputSignal<DropZoneVariant>;
|
|
1080
|
+
/** Sizing variant */
|
|
1081
|
+
readonly size: _angular_core.InputSignal<DropZoneSize>;
|
|
1082
|
+
/** Primary title displayed in the drop zone */
|
|
1083
|
+
readonly title: _angular_core.InputSignal<string>;
|
|
1084
|
+
/** Subtitle / hint text displayed below the title */
|
|
1085
|
+
readonly subTitle: _angular_core.InputSignal<string>;
|
|
1086
|
+
/** Text label for the browse button/link */
|
|
1087
|
+
readonly browseLabel: _angular_core.InputSignal<string>;
|
|
1088
|
+
/** Secondary bottom helper text or error message */
|
|
1089
|
+
readonly hint: _angular_core.InputSignal<string>;
|
|
1090
|
+
/** Whether to render the built-in staged file list preview */
|
|
1091
|
+
readonly showFileList: _angular_core.InputSignal<boolean>;
|
|
1092
|
+
/** Automatically manage staged files in internal state when dropped/selected */
|
|
1093
|
+
readonly autoManageFiles: _angular_core.InputSignal<boolean>;
|
|
1094
|
+
/** Automatically generate object URL thumbnails for image files */
|
|
1095
|
+
readonly autoGeneratePreviews: _angular_core.InputSignal<boolean>;
|
|
1096
|
+
/** Allow removing staged files */
|
|
1097
|
+
readonly removable: _angular_core.InputSignal<boolean>;
|
|
1098
|
+
/** Allow retrying failed uploads */
|
|
1099
|
+
readonly allowRetry: _angular_core.InputSignal<boolean>;
|
|
1100
|
+
/** Custom validator function for individual files */
|
|
1101
|
+
readonly validator: _angular_core.InputSignal<DropZoneValidatorFn | null>;
|
|
1102
|
+
/** Custom template for rendering staged file list items */
|
|
1103
|
+
readonly itemTemplate: _angular_core.InputSignal<TemplateRef<{
|
|
1104
|
+
$implicit: DropZoneFile;
|
|
1105
|
+
index: number;
|
|
1106
|
+
remove: () => void;
|
|
1107
|
+
retry: () => void;
|
|
1108
|
+
}> | null>;
|
|
1109
|
+
/** Custom template for rendering drop zone inner content */
|
|
1110
|
+
readonly contentTemplate: _angular_core.InputSignal<TemplateRef<void> | null>;
|
|
1111
|
+
/** Component DOM ID */
|
|
1112
|
+
readonly id: _angular_core.InputSignal<string>;
|
|
1113
|
+
/** Form control name */
|
|
1114
|
+
readonly name: _angular_core.InputSignal<string>;
|
|
1115
|
+
/** Staged / uploaded files model */
|
|
1116
|
+
readonly files: _angular_core.ModelSignal<DropZoneFile[]>;
|
|
1117
|
+
/** Emitted with raw native File objects */
|
|
1118
|
+
readonly rawFilesChange: _angular_core.OutputEmitterRef<File[]>;
|
|
1119
|
+
/** Emitted when files are dropped */
|
|
1120
|
+
readonly fileDrop: _angular_core.OutputEmitterRef<File[]>;
|
|
1121
|
+
/** Emitted when files are selected via native file dialog */
|
|
1122
|
+
readonly fileSelect: _angular_core.OutputEmitterRef<File[]>;
|
|
1123
|
+
/** Emitted when a file is removed */
|
|
1124
|
+
readonly fileRemove: _angular_core.OutputEmitterRef<DropZoneFile>;
|
|
1125
|
+
/** Emitted when a file retry button is clicked */
|
|
1126
|
+
readonly fileRetry: _angular_core.OutputEmitterRef<DropZoneFile>;
|
|
1127
|
+
/** Emitted when files fail validation */
|
|
1128
|
+
readonly rejected: _angular_core.OutputEmitterRef<DropZoneRejection[]>;
|
|
1129
|
+
/** Emitted when drag over state changes */
|
|
1130
|
+
readonly dragStateChange: _angular_core.OutputEmitterRef<boolean>;
|
|
1131
|
+
/** Emitted with full change event payload */
|
|
1132
|
+
readonly change: _angular_core.OutputEmitterRef<DropZoneChangeEvent>;
|
|
1133
|
+
fileInput?: ElementRef<HTMLInputElement>;
|
|
1134
|
+
private readonly autoId;
|
|
1135
|
+
readonly componentId: _angular_core.Signal<string>;
|
|
1136
|
+
readonly inputId: _angular_core.Signal<string>;
|
|
1137
|
+
readonly isDragOver: _angular_core.WritableSignal<boolean>;
|
|
1138
|
+
readonly isDisabled: _angular_core.WritableSignal<boolean>;
|
|
1139
|
+
readonly isTouched: _angular_core.WritableSignal<boolean>;
|
|
1140
|
+
readonly effectiveDisabled: _angular_core.Signal<boolean>;
|
|
1141
|
+
readonly maxSizeBytes: _angular_core.Signal<number | null>;
|
|
1142
|
+
readonly minSizeBytes: _angular_core.Signal<number | null>;
|
|
1143
|
+
readonly hasFiles: _angular_core.Signal<boolean>;
|
|
1144
|
+
readonly isMaxFilesReached: _angular_core.Signal<boolean>;
|
|
1145
|
+
private onChange;
|
|
1146
|
+
private onTouched;
|
|
1147
|
+
writeValue(value: DropZoneFile[] | File[] | File | null): void;
|
|
1148
|
+
registerOnChange(fn: (value: DropZoneFile[] | File[]) => void): void;
|
|
1149
|
+
registerOnTouched(fn: () => void): void;
|
|
1150
|
+
setDisabledState(isDisabled: boolean): void;
|
|
1151
|
+
/**
|
|
1152
|
+
* Opens the native file selector dialog.
|
|
1153
|
+
*/
|
|
1154
|
+
openFileDialog(): void;
|
|
1155
|
+
/**
|
|
1156
|
+
* Keyboard handler on the drop zone container (Enter / Space to open browse dialog)
|
|
1157
|
+
*/
|
|
1158
|
+
onKeyDown(event: KeyboardEvent): void;
|
|
1159
|
+
/**
|
|
1160
|
+
* Native file input change handler
|
|
1161
|
+
*/
|
|
1162
|
+
onNativeInputChange(event: Event): void;
|
|
1163
|
+
/**
|
|
1164
|
+
* Handles files dropped onto the dropzone
|
|
1165
|
+
*/
|
|
1166
|
+
onDropFiles(droppedFiles: File[]): void;
|
|
1167
|
+
/**
|
|
1168
|
+
* Updates drag over state
|
|
1169
|
+
*/
|
|
1170
|
+
onDragState(isOver: boolean): void;
|
|
1171
|
+
/**
|
|
1172
|
+
* Removes a file from the staged list
|
|
1173
|
+
*/
|
|
1174
|
+
removeFile(dropFile: DropZoneFile, event?: MouseEvent): void;
|
|
1175
|
+
/**
|
|
1176
|
+
* Retries uploading a file
|
|
1177
|
+
*/
|
|
1178
|
+
retryFile(dropFile: DropZoneFile, event?: MouseEvent): void;
|
|
1179
|
+
/**
|
|
1180
|
+
* Updates the progress or status of a staged file programmatically.
|
|
1181
|
+
*/
|
|
1182
|
+
updateFileProgress(fileId: string, progress: number, status?: DropZoneFileStatus, errorMessage?: string): void;
|
|
1183
|
+
/**
|
|
1184
|
+
* Clear all files from the drop zone.
|
|
1185
|
+
*/
|
|
1186
|
+
clearFiles(): void;
|
|
1187
|
+
private processFiles;
|
|
1188
|
+
private validateFile;
|
|
1189
|
+
private checkAccept;
|
|
1190
|
+
private createDropZoneFile;
|
|
1191
|
+
private emitChanges;
|
|
1192
|
+
private markAsTouched;
|
|
1193
|
+
parseByteSize(size: number | string | null | undefined): number | null;
|
|
1194
|
+
formatBytes(bytes: number, decimals?: number): string;
|
|
1195
|
+
getFileTypeCategory(file: DropZoneFile): 'image' | 'pdf' | 'doc' | 'archive' | 'audio' | 'video' | 'code' | 'generic';
|
|
1196
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<TalosDropZoneComponent, never>;
|
|
1197
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<TalosDropZoneComponent, "talos-drop-zone, talos-file-upload", never, { "accept": { "alias": "accept"; "required": false; "isSignal": true; }; "multiple": { "alias": "multiple"; "required": false; "isSignal": true; }; "maxFileSize": { "alias": "maxFileSize"; "required": false; "isSignal": true; }; "minFileSize": { "alias": "minFileSize"; "required": false; "isSignal": true; }; "maxFiles": { "alias": "maxFiles"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "readonly": { "alias": "readonly"; "required": false; "isSignal": true; }; "loading": { "alias": "loading"; "required": false; "isSignal": true; }; "variant": { "alias": "variant"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; "title": { "alias": "title"; "required": false; "isSignal": true; }; "subTitle": { "alias": "subTitle"; "required": false; "isSignal": true; }; "browseLabel": { "alias": "browseLabel"; "required": false; "isSignal": true; }; "hint": { "alias": "hint"; "required": false; "isSignal": true; }; "showFileList": { "alias": "showFileList"; "required": false; "isSignal": true; }; "autoManageFiles": { "alias": "autoManageFiles"; "required": false; "isSignal": true; }; "autoGeneratePreviews": { "alias": "autoGeneratePreviews"; "required": false; "isSignal": true; }; "removable": { "alias": "removable"; "required": false; "isSignal": true; }; "allowRetry": { "alias": "allowRetry"; "required": false; "isSignal": true; }; "validator": { "alias": "validator"; "required": false; "isSignal": true; }; "itemTemplate": { "alias": "itemTemplate"; "required": false; "isSignal": true; }; "contentTemplate": { "alias": "contentTemplate"; "required": false; "isSignal": true; }; "id": { "alias": "id"; "required": false; "isSignal": true; }; "name": { "alias": "name"; "required": false; "isSignal": true; }; "files": { "alias": "files"; "required": false; "isSignal": true; }; }, { "files": "filesChange"; "rawFilesChange": "rawFilesChange"; "fileDrop": "fileDrop"; "fileSelect": "fileSelect"; "fileRemove": "fileRemove"; "fileRetry": "fileRetry"; "rejected": "rejected"; "dragStateChange": "dragStateChange"; "change": "change"; }, never, never, true, never>;
|
|
1198
|
+
}
|
|
1199
|
+
|
|
1200
|
+
/**
|
|
1201
|
+
* Lifecycle status of an individual file upload task.
|
|
1202
|
+
*/
|
|
1203
|
+
type UploadTaskStatus = 'idle' | 'requesting-url' | 'uploading' | 'completed' | 'error' | 'canceled';
|
|
1204
|
+
/**
|
|
1205
|
+
* Payload sent to retrieve a pre-signed upload URL.
|
|
1206
|
+
*/
|
|
1207
|
+
interface PresignedUrlRequest {
|
|
1208
|
+
file: File;
|
|
1209
|
+
fileName: string;
|
|
1210
|
+
fileSize: number;
|
|
1211
|
+
fileType: string;
|
|
1212
|
+
metadata?: Record<string, string>;
|
|
1213
|
+
checksum?: string;
|
|
1214
|
+
}
|
|
1215
|
+
/**
|
|
1216
|
+
* Response payload containing the pre-signed URL and upload details.
|
|
1217
|
+
*/
|
|
1218
|
+
interface PresignedUrlResponse {
|
|
1219
|
+
/** The pre-signed URL to upload the file to (e.g. AWS S3, GCS, Azure Blob, or backend endpoint). */
|
|
1220
|
+
uploadUrl: string;
|
|
1221
|
+
/** Final public or persistent URL of the uploaded asset once complete. */
|
|
1222
|
+
fileUrl?: string;
|
|
1223
|
+
/** HTTP method to use for the upload. Defaults to 'PUT'. */
|
|
1224
|
+
method?: 'PUT' | 'POST';
|
|
1225
|
+
/** Optional custom headers required for the upload (e.g. Content-Type, x-amz-acl, etc.). */
|
|
1226
|
+
headers?: Record<string, string>;
|
|
1227
|
+
/** Optional multipart form data or S3 policy fields if method is 'POST'. */
|
|
1228
|
+
formData?: Record<string, string | Blob>;
|
|
1229
|
+
/** Optional S3 POST form fields. */
|
|
1230
|
+
fields?: Record<string, string>;
|
|
1231
|
+
}
|
|
1232
|
+
/**
|
|
1233
|
+
* Handler function or Observable for retrieving pre-signed URLs from the backend.
|
|
1234
|
+
*/
|
|
1235
|
+
type PresignedUrlHandlerFn = (request: PresignedUrlRequest) => Observable<PresignedUrlResponse> | Promise<PresignedUrlResponse>;
|
|
1236
|
+
/**
|
|
1237
|
+
* Options for configuring an individual upload task.
|
|
1238
|
+
*/
|
|
1239
|
+
interface UploadFileOptions {
|
|
1240
|
+
presignedHandler?: PresignedUrlHandlerFn;
|
|
1241
|
+
metadata?: Record<string, string>;
|
|
1242
|
+
headers?: Record<string, string>;
|
|
1243
|
+
/** Auto-start upload once created. Default: true */
|
|
1244
|
+
autoStart?: boolean;
|
|
1245
|
+
}
|
|
1246
|
+
/**
|
|
1247
|
+
* Progress details emitted while streaming binary data to the pre-signed URL.
|
|
1248
|
+
*/
|
|
1249
|
+
interface UploadProgressEvent {
|
|
1250
|
+
loaded: number;
|
|
1251
|
+
total: number;
|
|
1252
|
+
percentage: number;
|
|
1253
|
+
speed: number;
|
|
1254
|
+
speedFormatted: string;
|
|
1255
|
+
timeRemaining?: number;
|
|
1256
|
+
}
|
|
1257
|
+
/**
|
|
1258
|
+
* Active upload task representing a single file being uploaded to a pre-signed URL.
|
|
1259
|
+
*/
|
|
1260
|
+
interface UploadTask {
|
|
1261
|
+
id: string;
|
|
1262
|
+
file: File;
|
|
1263
|
+
fileName: string;
|
|
1264
|
+
fileSize: number;
|
|
1265
|
+
fileType: string;
|
|
1266
|
+
status: UploadTaskStatus;
|
|
1267
|
+
progress: number;
|
|
1268
|
+
loaded: number;
|
|
1269
|
+
total: number;
|
|
1270
|
+
speed: number;
|
|
1271
|
+
speedFormatted?: string;
|
|
1272
|
+
timeRemaining?: number;
|
|
1273
|
+
presignedUrl?: string;
|
|
1274
|
+
fileUrl?: string;
|
|
1275
|
+
errorMessage?: string;
|
|
1276
|
+
previewUrl?: string;
|
|
1277
|
+
startedAt?: number;
|
|
1278
|
+
completedAt?: number;
|
|
1279
|
+
cancel?: () => void;
|
|
1280
|
+
retry?: () => void;
|
|
1281
|
+
}
|
|
1282
|
+
/**
|
|
1283
|
+
* Global configuration options for Talos Presigned Upload.
|
|
1284
|
+
*/
|
|
1285
|
+
interface PresignedUploadConfig {
|
|
1286
|
+
/** Default backend pre-signed URL handler function */
|
|
1287
|
+
getPresignedUrl?: PresignedUrlHandlerFn;
|
|
1288
|
+
/** Global HTTP headers to attach to pre-signed upload requests */
|
|
1289
|
+
defaultHeaders?: Record<string, string>;
|
|
1290
|
+
/** Max concurrent uploads. Default: 3 */
|
|
1291
|
+
maxConcurrent?: number;
|
|
1292
|
+
/** Simulated latency in ms when using built-in mock mode. Default: 0 */
|
|
1293
|
+
simulatedDelayMs?: number;
|
|
1294
|
+
}
|
|
1295
|
+
/**
|
|
1296
|
+
* Injection token for global pre-signed upload configuration.
|
|
1297
|
+
*/
|
|
1298
|
+
declare const TALOS_PRESIGNED_UPLOAD_CONFIG: InjectionToken<PresignedUploadConfig>;
|
|
1299
|
+
/**
|
|
1300
|
+
* Injection token for default presigned URL handler function.
|
|
1301
|
+
*/
|
|
1302
|
+
declare const TALOS_PRESIGNED_URL_HANDLER: InjectionToken<PresignedUrlHandlerFn>;
|
|
1303
|
+
|
|
1304
|
+
declare class TalosPresignedUploadService {
|
|
1305
|
+
private readonly config;
|
|
1306
|
+
private readonly defaultHandler;
|
|
1307
|
+
/**
|
|
1308
|
+
* Creates and starts an upload task for a single file.
|
|
1309
|
+
* Handles requesting the pre-signed URL and streaming binary data to it.
|
|
1310
|
+
*/
|
|
1311
|
+
upload(file: File, options?: UploadFileOptions, onUpdate?: (task: UploadTask) => void): UploadTask;
|
|
1312
|
+
/**
|
|
1313
|
+
* Batch helper to create upload tasks for multiple files.
|
|
1314
|
+
*/
|
|
1315
|
+
uploadBatch(files: File[], options?: UploadFileOptions, onUpdate?: (tasks: UploadTask[]) => void): UploadTask[];
|
|
1316
|
+
/**
|
|
1317
|
+
* Performs the binary transfer to the retrieved pre-signed URL via XMLHttpRequest.
|
|
1318
|
+
*/
|
|
1319
|
+
private executeUploadToPresignedUrl;
|
|
1320
|
+
/**
|
|
1321
|
+
* Internal simulation runner for development and showcasing without requiring a live cloud bucket.
|
|
1322
|
+
*/
|
|
1323
|
+
private simulateUploadProgress;
|
|
1324
|
+
/**
|
|
1325
|
+
* Creates a default simulated presigned URL handler if none is provided.
|
|
1326
|
+
*/
|
|
1327
|
+
private createMockPresignedHandler;
|
|
1328
|
+
/**
|
|
1329
|
+
* Format bytes per second into human-readable rate (e.g. "1.2 MB/s").
|
|
1330
|
+
*/
|
|
1331
|
+
formatSpeed(bytesPerSecond: number): string;
|
|
1332
|
+
/**
|
|
1333
|
+
* Format bytes into human-readable size (e.g. "2.4 MB").
|
|
1334
|
+
*/
|
|
1335
|
+
formatBytes(bytes: number, decimals?: number): string;
|
|
1336
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<TalosPresignedUploadService, never>;
|
|
1337
|
+
static ɵprov: _angular_core.ɵɵInjectableDeclaration<TalosPresignedUploadService>;
|
|
1338
|
+
}
|
|
1339
|
+
|
|
1340
|
+
declare class TalosFileUploadProgressComponent {
|
|
1341
|
+
private readonly uploadService;
|
|
1342
|
+
/** Optional custom template for extra content inside each task card */
|
|
1343
|
+
readonly taskContentTpl: _angular_core.Signal<TemplateRef<{
|
|
1344
|
+
$implicit: UploadTask;
|
|
1345
|
+
task: UploadTask;
|
|
1346
|
+
}> | undefined>;
|
|
1347
|
+
/** Optional custom template for extra action buttons inside each task card */
|
|
1348
|
+
readonly taskActionsTpl: _angular_core.Signal<TemplateRef<{
|
|
1349
|
+
$implicit: UploadTask;
|
|
1350
|
+
task: UploadTask;
|
|
1351
|
+
}> | undefined>;
|
|
1352
|
+
/** Active list of upload tasks */
|
|
1353
|
+
readonly tasks: _angular_core.InputSignal<UploadTask[]>;
|
|
1354
|
+
/** Visual layout variant: 'card' (default), 'compact', or 'minimal' */
|
|
1355
|
+
readonly variant: _angular_core.InputSignal<"compact" | "card" | "minimal">;
|
|
1356
|
+
/** Whether to render top summary stats header */
|
|
1357
|
+
readonly showSummary: _angular_core.InputSignal<boolean>;
|
|
1358
|
+
/** Allow canceling in-flight uploads */
|
|
1359
|
+
readonly allowCancel: _angular_core.InputSignal<boolean>;
|
|
1360
|
+
/** Allow retrying failed uploads */
|
|
1361
|
+
readonly allowRetry: _angular_core.InputSignal<boolean>;
|
|
1362
|
+
/** Allow removing finished or failed tasks from the list */
|
|
1363
|
+
readonly allowRemove: _angular_core.InputSignal<boolean>;
|
|
1364
|
+
/** Show button to copy file URL upon upload completion */
|
|
1365
|
+
readonly allowCopyUrl: _angular_core.InputSignal<boolean>;
|
|
1366
|
+
readonly taskCancel: _angular_core.OutputEmitterRef<UploadTask>;
|
|
1367
|
+
readonly taskRetry: _angular_core.OutputEmitterRef<UploadTask>;
|
|
1368
|
+
readonly taskRemove: _angular_core.OutputEmitterRef<UploadTask>;
|
|
1369
|
+
readonly taskComplete: _angular_core.OutputEmitterRef<UploadTask>;
|
|
1370
|
+
readonly copiedTaskId: _angular_core.WritableSignal<string | null>;
|
|
1371
|
+
readonly failedImageIds: _angular_core.WritableSignal<Set<string>>;
|
|
1372
|
+
isImgFailed(taskId: string): boolean;
|
|
1373
|
+
handleImgError(taskId: string): void;
|
|
1374
|
+
readonly hasTasks: _angular_core.Signal<boolean>;
|
|
1375
|
+
readonly totalCount: _angular_core.Signal<number>;
|
|
1376
|
+
readonly activeCount: _angular_core.Signal<number>;
|
|
1377
|
+
readonly completedCount: _angular_core.Signal<number>;
|
|
1378
|
+
readonly errorCount: _angular_core.Signal<number>;
|
|
1379
|
+
readonly overallPercentage: _angular_core.Signal<number>;
|
|
1380
|
+
cancelTask(task: UploadTask, event?: MouseEvent): void;
|
|
1381
|
+
retryTask(task: UploadTask, event?: MouseEvent): void;
|
|
1382
|
+
removeTask(task: UploadTask, event?: MouseEvent): void;
|
|
1383
|
+
copyFileUrl(task: UploadTask, event?: MouseEvent): void;
|
|
1384
|
+
cancelAll(): void;
|
|
1385
|
+
formatBytes(bytes: number): string;
|
|
1386
|
+
formatTimeRemaining(seconds: number | undefined): string;
|
|
1387
|
+
getFileTypeCategory(task: UploadTask): 'image' | 'pdf' | 'doc' | 'archive' | 'audio' | 'video' | 'code' | 'generic';
|
|
1388
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<TalosFileUploadProgressComponent, never>;
|
|
1389
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<TalosFileUploadProgressComponent, "talos-file-upload-progress, talos-upload-progress", never, { "tasks": { "alias": "tasks"; "required": false; "isSignal": true; }; "variant": { "alias": "variant"; "required": false; "isSignal": true; }; "showSummary": { "alias": "showSummary"; "required": false; "isSignal": true; }; "allowCancel": { "alias": "allowCancel"; "required": false; "isSignal": true; }; "allowRetry": { "alias": "allowRetry"; "required": false; "isSignal": true; }; "allowRemove": { "alias": "allowRemove"; "required": false; "isSignal": true; }; "allowCopyUrl": { "alias": "allowCopyUrl"; "required": false; "isSignal": true; }; }, { "taskCancel": "taskCancel"; "taskRetry": "taskRetry"; "taskRemove": "taskRemove"; "taskComplete": "taskComplete"; }, ["taskContentTpl", "taskActionsTpl"], ["[talosUploadActions], [headerExtra]", "[taskExtra], [cardExtra], [itemExtra]", "*", "[taskAction], [taskActions]"], true, never>;
|
|
1390
|
+
}
|
|
1391
|
+
|
|
1392
|
+
declare class TalosPresignedFileUploadComponent {
|
|
1393
|
+
private readonly uploadService;
|
|
1394
|
+
/** Custom handler to retrieve pre-signed upload URLs */
|
|
1395
|
+
readonly presignedHandler: _angular_core.InputSignal<PresignedUrlHandlerFn | undefined>;
|
|
1396
|
+
/** Accepted MIME types or extensions (e.g. "image/*,.pdf") */
|
|
1397
|
+
readonly accept: _angular_core.InputSignal<string>;
|
|
1398
|
+
/** Allow multiple files selection and drag-drop */
|
|
1399
|
+
readonly multiple: _angular_core.InputSignal<boolean>;
|
|
1400
|
+
/** Maximum file size in bytes or human-readable format (e.g. 5242880 or '25MB') */
|
|
1401
|
+
readonly maxFileSize: _angular_core.InputSignal<string | number | null>;
|
|
1402
|
+
/** Minimum file size in bytes or human-readable format */
|
|
1403
|
+
readonly minFileSize: _angular_core.InputSignal<string | number | null>;
|
|
1404
|
+
/** Maximum total number of files allowed simultaneously */
|
|
1405
|
+
readonly maxFiles: _angular_core.InputSignal<number | null>;
|
|
1406
|
+
/** Visual layout variant of the drop zone */
|
|
1407
|
+
readonly variant: _angular_core.InputSignal<DropZoneVariant>;
|
|
1408
|
+
/** Sizing variant of the drop zone */
|
|
1409
|
+
readonly size: _angular_core.InputSignal<DropZoneSize>;
|
|
1410
|
+
/** Title displayed in the drop zone */
|
|
1411
|
+
readonly title: _angular_core.InputSignal<string>;
|
|
1412
|
+
/** Subtitle displayed in the drop zone */
|
|
1413
|
+
readonly subTitle: _angular_core.InputSignal<string>;
|
|
1414
|
+
/** Label for the browse button */
|
|
1415
|
+
readonly browseLabel: _angular_core.InputSignal<string>;
|
|
1416
|
+
/** Disable user interactions */
|
|
1417
|
+
readonly disabled: _angular_core.InputSignal<boolean>;
|
|
1418
|
+
/** Read-only mode */
|
|
1419
|
+
readonly readonly: _angular_core.InputSignal<boolean>;
|
|
1420
|
+
/** Show top summary statistics */
|
|
1421
|
+
readonly showSummary: _angular_core.InputSignal<boolean>;
|
|
1422
|
+
/** Allow canceling active uploads */
|
|
1423
|
+
readonly allowCancel: _angular_core.InputSignal<boolean>;
|
|
1424
|
+
/** Allow retrying failed uploads */
|
|
1425
|
+
readonly allowRetry: _angular_core.InputSignal<boolean>;
|
|
1426
|
+
/** Allow removing tasks from the list */
|
|
1427
|
+
readonly allowRemove: _angular_core.InputSignal<boolean>;
|
|
1428
|
+
/** Show copy URL action button on completion */
|
|
1429
|
+
readonly allowCopyUrl: _angular_core.InputSignal<boolean>;
|
|
1430
|
+
/** Additional custom metadata to send when requesting the pre-signed URL */
|
|
1431
|
+
readonly metadata: _angular_core.InputSignal<Record<string, string> | undefined>;
|
|
1432
|
+
/** Additional custom HTTP headers to pass during the binary upload */
|
|
1433
|
+
readonly headers: _angular_core.InputSignal<Record<string, string> | undefined>;
|
|
1434
|
+
/** Active and historical upload tasks */
|
|
1435
|
+
readonly tasks: _angular_core.ModelSignal<UploadTask[]>;
|
|
1436
|
+
/** Emitted when an individual file finishes uploading successfully */
|
|
1437
|
+
readonly uploadComplete: _angular_core.OutputEmitterRef<UploadTask>;
|
|
1438
|
+
/** Emitted when all current uploads have completed successfully */
|
|
1439
|
+
readonly allCompleted: _angular_core.OutputEmitterRef<UploadTask[]>;
|
|
1440
|
+
/** Emitted when an upload encounters an error */
|
|
1441
|
+
readonly uploadError: _angular_core.OutputEmitterRef<UploadTask>;
|
|
1442
|
+
/** Emitted when a dropped/selected file is rejected due to validation */
|
|
1443
|
+
readonly rejected: _angular_core.OutputEmitterRef<DropZoneRejection[]>;
|
|
1444
|
+
readonly hasTasks: _angular_core.Signal<boolean>;
|
|
1445
|
+
onFilesSelectedOrDropped(rawFiles: File[]): void;
|
|
1446
|
+
onDropZoneRejections(rejections: DropZoneRejection[]): void;
|
|
1447
|
+
onTaskCancel(task: UploadTask): void;
|
|
1448
|
+
onTaskRetry(task: UploadTask): void;
|
|
1449
|
+
onTaskRemove(task: UploadTask): void;
|
|
1450
|
+
private syncTaskState;
|
|
1451
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<TalosPresignedFileUploadComponent, never>;
|
|
1452
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<TalosPresignedFileUploadComponent, "talos-presigned-file-upload", never, { "presignedHandler": { "alias": "presignedHandler"; "required": false; "isSignal": true; }; "accept": { "alias": "accept"; "required": false; "isSignal": true; }; "multiple": { "alias": "multiple"; "required": false; "isSignal": true; }; "maxFileSize": { "alias": "maxFileSize"; "required": false; "isSignal": true; }; "minFileSize": { "alias": "minFileSize"; "required": false; "isSignal": true; }; "maxFiles": { "alias": "maxFiles"; "required": false; "isSignal": true; }; "variant": { "alias": "variant"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; "title": { "alias": "title"; "required": false; "isSignal": true; }; "subTitle": { "alias": "subTitle"; "required": false; "isSignal": true; }; "browseLabel": { "alias": "browseLabel"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "readonly": { "alias": "readonly"; "required": false; "isSignal": true; }; "showSummary": { "alias": "showSummary"; "required": false; "isSignal": true; }; "allowCancel": { "alias": "allowCancel"; "required": false; "isSignal": true; }; "allowRetry": { "alias": "allowRetry"; "required": false; "isSignal": true; }; "allowRemove": { "alias": "allowRemove"; "required": false; "isSignal": true; }; "allowCopyUrl": { "alias": "allowCopyUrl"; "required": false; "isSignal": true; }; "metadata": { "alias": "metadata"; "required": false; "isSignal": true; }; "headers": { "alias": "headers"; "required": false; "isSignal": true; }; "tasks": { "alias": "tasks"; "required": false; "isSignal": true; }; }, { "tasks": "tasksChange"; "uploadComplete": "uploadComplete"; "allCompleted": "allCompleted"; "uploadError": "uploadError"; "rejected": "rejected"; }, never, ["[talosUploadActions], [headerExtra]", "[taskExtra], [cardExtra], [itemExtra]", "[taskAction], [taskActions]", "*"], true, never>;
|
|
1453
|
+
}
|
|
1454
|
+
|
|
1455
|
+
declare class TalosDropZoneModule {
|
|
1456
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<TalosDropZoneModule, never>;
|
|
1457
|
+
static ɵmod: _angular_core.ɵɵNgModuleDeclaration<TalosDropZoneModule, never, [typeof TalosDropZoneComponent, typeof TalosFileDropDirective, typeof TalosFileUploadProgressComponent, typeof TalosPresignedFileUploadComponent], [typeof TalosDropZoneComponent, typeof TalosFileDropDirective, typeof TalosFileUploadProgressComponent, typeof TalosPresignedFileUploadComponent]>;
|
|
1458
|
+
static ɵinj: _angular_core.ɵɵInjectorDeclaration<TalosDropZoneModule>;
|
|
1459
|
+
}
|
|
1460
|
+
|
|
1461
|
+
declare class TalosFormFieldComponent implements AfterContentChecked, OnDestroy {
|
|
1462
|
+
private readonly elementRef;
|
|
1463
|
+
readonly label: _angular_core.InputSignal<string>;
|
|
1464
|
+
readonly floating: _angular_core.InputSignal<boolean>;
|
|
1465
|
+
readonly floatingLabel: _angular_core.InputSignal<boolean>;
|
|
1466
|
+
readonly hint: _angular_core.InputSignal<string>;
|
|
1467
|
+
readonly error: _angular_core.InputSignal<string>;
|
|
1468
|
+
readonly required: _angular_core.InputSignal<boolean>;
|
|
1469
|
+
readonly disabled: _angular_core.InputSignal<boolean>;
|
|
1470
|
+
readonly invalid: _angular_core.InputSignal<boolean>;
|
|
1471
|
+
readonly size: _angular_core.InputSignal<"sm" | "md" | "lg">;
|
|
1472
|
+
readonly forId: _angular_core.InputSignal<string>;
|
|
1473
|
+
readonly numberStepper: _angular_core.InputSignal<boolean>;
|
|
1474
|
+
readonly isFocused: _angular_core.WritableSignal<boolean>;
|
|
1475
|
+
readonly hasValue: _angular_core.WritableSignal<boolean>;
|
|
1476
|
+
readonly isTextarea: _angular_core.WritableSignal<boolean>;
|
|
1477
|
+
readonly isNumberInput: _angular_core.WritableSignal<boolean>;
|
|
1478
|
+
readonly hasPrefix: _angular_core.WritableSignal<boolean>;
|
|
1479
|
+
readonly hasSuffix: _angular_core.WritableSignal<boolean>;
|
|
1480
|
+
readonly hasSplitStepper: _angular_core.WritableSignal<boolean>;
|
|
1481
|
+
readonly hasStepper: _angular_core.Signal<boolean>;
|
|
1482
|
+
private stepTimer;
|
|
1483
|
+
private stepInterval;
|
|
1484
|
+
private readonly autoId;
|
|
1485
|
+
readonly inputId: _angular_core.Signal<string>;
|
|
1486
|
+
readonly isFloatingMode: _angular_core.Signal<boolean>;
|
|
1487
|
+
readonly isFloated: _angular_core.Signal<boolean>;
|
|
1488
|
+
ngAfterContentChecked(): void;
|
|
1489
|
+
onFocusIn(): void;
|
|
1490
|
+
onFocusOut(): void;
|
|
1491
|
+
onInput(): void;
|
|
1492
|
+
onLabelClick(): void;
|
|
1493
|
+
ngOnDestroy(): void;
|
|
1494
|
+
stepNativeInput(isUp: boolean): void;
|
|
1495
|
+
private hasSteppedOnPointer;
|
|
1496
|
+
onStepperClick(event: MouseEvent, isUp: boolean): void;
|
|
1497
|
+
onStepperMouseDown(event: MouseEvent | TouchEvent, isUp: boolean): void;
|
|
1498
|
+
private clearStepTimers;
|
|
1499
|
+
checkValue(): void;
|
|
1500
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<TalosFormFieldComponent, never>;
|
|
1501
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<TalosFormFieldComponent, "talos-form-field", never, { "label": { "alias": "label"; "required": false; "isSignal": true; }; "floating": { "alias": "floating"; "required": false; "isSignal": true; }; "floatingLabel": { "alias": "floatingLabel"; "required": false; "isSignal": true; }; "hint": { "alias": "hint"; "required": false; "isSignal": true; }; "error": { "alias": "error"; "required": false; "isSignal": true; }; "required": { "alias": "required"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "invalid": { "alias": "invalid"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; "forId": { "alias": "forId"; "required": false; "isSignal": true; }; "numberStepper": { "alias": "numberStepper"; "required": false; "isSignal": true; }; }, {}, never, ["*"], true, never>;
|
|
1502
|
+
}
|
|
1503
|
+
|
|
1504
|
+
declare class TalosFormFieldModule {
|
|
1505
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<TalosFormFieldModule, never>;
|
|
1506
|
+
static ɵmod: _angular_core.ɵɵNgModuleDeclaration<TalosFormFieldModule, never, [typeof TalosFormFieldComponent], [typeof TalosFormFieldComponent]>;
|
|
1507
|
+
static ɵinj: _angular_core.ɵɵInjectorDeclaration<TalosFormFieldModule>;
|
|
1508
|
+
}
|
|
1509
|
+
|
|
1510
|
+
type InputSize = 'sm' | 'md' | 'lg';
|
|
1511
|
+
declare class TalosInputDirective {
|
|
1512
|
+
/** Sizing variation for input or textarea */
|
|
1513
|
+
readonly size: _angular_core.InputSignal<InputSize>;
|
|
1514
|
+
/** Whether the input is in an invalid error state */
|
|
1515
|
+
readonly invalid: _angular_core.InputSignal<boolean>;
|
|
1516
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<TalosInputDirective, never>;
|
|
1517
|
+
static ɵdir: _angular_core.ɵɵDirectiveDeclaration<TalosInputDirective, "input[talosInput], textarea[talosInput], input[talosTextarea], textarea[talosTextarea], input[talos-input], textarea[talos-textarea]", never, { "size": { "alias": "size"; "required": false; "isSignal": true; }; "invalid": { "alias": "invalid"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
1518
|
+
}
|
|
1519
|
+
|
|
1520
|
+
type NumberInputSize = 'sm' | 'md' | 'lg';
|
|
1521
|
+
type NumberStepperVariant = 'vertical' | 'split' | 'none';
|
|
1522
|
+
interface NumberInputStepEvent {
|
|
1523
|
+
previousValue: number | null;
|
|
1524
|
+
currentValue: number | null;
|
|
1525
|
+
direction: 'up' | 'down';
|
|
1526
|
+
}
|
|
1527
|
+
|
|
1528
|
+
declare class TalosNumberInputComponent implements ControlValueAccessor, OnDestroy {
|
|
1529
|
+
inputEl?: ElementRef<HTMLInputElement>;
|
|
1530
|
+
private readonly autoId;
|
|
1531
|
+
readonly value: _angular_core.InputSignal<number | null | undefined>;
|
|
1532
|
+
readonly min: _angular_core.InputSignal<number | null>;
|
|
1533
|
+
readonly max: _angular_core.InputSignal<number | null>;
|
|
1534
|
+
readonly step: _angular_core.InputSignal<number>;
|
|
1535
|
+
readonly precision: _angular_core.InputSignal<number | null>;
|
|
1536
|
+
readonly size: _angular_core.InputSignal<NumberInputSize>;
|
|
1537
|
+
readonly stepperVariant: _angular_core.InputSignal<NumberStepperVariant>;
|
|
1538
|
+
readonly placeholder: _angular_core.InputSignal<string>;
|
|
1539
|
+
readonly disabled: _angular_core.InputSignal<boolean>;
|
|
1540
|
+
readonly readonly: _angular_core.InputSignal<boolean>;
|
|
1541
|
+
readonly invalid: _angular_core.InputSignal<boolean>;
|
|
1542
|
+
readonly stepHold: _angular_core.InputSignal<boolean>;
|
|
1543
|
+
readonly clampValueOnBlur: _angular_core.InputSignal<boolean>;
|
|
1544
|
+
readonly id: _angular_core.InputSignal<string>;
|
|
1545
|
+
readonly name: _angular_core.InputSignal<string>;
|
|
1546
|
+
readonly ariaLabel: _angular_core.InputSignal<string>;
|
|
1547
|
+
readonly prefixText: _angular_core.InputSignal<string>;
|
|
1548
|
+
readonly suffixText: _angular_core.InputSignal<string>;
|
|
1549
|
+
readonly valueChange: _angular_core.OutputEmitterRef<number | null>;
|
|
1550
|
+
readonly stepUp: _angular_core.OutputEmitterRef<number>;
|
|
1551
|
+
readonly stepDown: _angular_core.OutputEmitterRef<number>;
|
|
1552
|
+
readonly innerValue: _angular_core.WritableSignal<number | null>;
|
|
1553
|
+
readonly isFocused: _angular_core.WritableSignal<boolean>;
|
|
1554
|
+
private formDisabled;
|
|
1555
|
+
readonly effectiveDisabled: _angular_core.Signal<boolean>;
|
|
1556
|
+
readonly effectiveInvalid: _angular_core.Signal<boolean>;
|
|
1557
|
+
readonly elementId: _angular_core.Signal<string>;
|
|
1558
|
+
readonly isAtMax: _angular_core.Signal<boolean>;
|
|
1559
|
+
readonly isAtMin: _angular_core.Signal<boolean>;
|
|
1560
|
+
private stepTimer;
|
|
1561
|
+
private stepInterval;
|
|
1562
|
+
private onChange;
|
|
1563
|
+
private onTouched;
|
|
1564
|
+
constructor();
|
|
1565
|
+
ngOnDestroy(): void;
|
|
1566
|
+
writeValue(val: number | null): void;
|
|
1567
|
+
registerOnChange(fn: (val: number | null) => void): void;
|
|
1568
|
+
registerOnTouched(fn: () => void): void;
|
|
1569
|
+
setDisabledState(isDisabled: boolean): void;
|
|
1570
|
+
onInputChange(event: Event): void;
|
|
1571
|
+
onInputBlur(): void;
|
|
1572
|
+
onInputFocus(): void;
|
|
1573
|
+
onKeyDown(event: KeyboardEvent): void;
|
|
1574
|
+
doStep(isUp: boolean, multiplier?: number): void;
|
|
1575
|
+
private hasSteppedOnPointer;
|
|
1576
|
+
onStepperClick(event: MouseEvent, isUp: boolean): void;
|
|
1577
|
+
onStepperMouseDown(event: MouseEvent | TouchEvent, isUp: boolean): void;
|
|
1578
|
+
private clearStepTimers;
|
|
1579
|
+
private clampAndRound;
|
|
1580
|
+
private roundToPrecision;
|
|
1581
|
+
private updateValue;
|
|
1582
|
+
focus(): void;
|
|
1583
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<TalosNumberInputComponent, never>;
|
|
1584
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<TalosNumberInputComponent, "talos-number-input, talos-number-field", never, { "value": { "alias": "value"; "required": false; "isSignal": true; }; "min": { "alias": "min"; "required": false; "isSignal": true; }; "max": { "alias": "max"; "required": false; "isSignal": true; }; "step": { "alias": "step"; "required": false; "isSignal": true; }; "precision": { "alias": "precision"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; "stepperVariant": { "alias": "stepperVariant"; "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; }; "invalid": { "alias": "invalid"; "required": false; "isSignal": true; }; "stepHold": { "alias": "stepHold"; "required": false; "isSignal": true; }; "clampValueOnBlur": { "alias": "clampValueOnBlur"; "required": false; "isSignal": true; }; "id": { "alias": "id"; "required": false; "isSignal": true; }; "name": { "alias": "name"; "required": false; "isSignal": true; }; "ariaLabel": { "alias": "ariaLabel"; "required": false; "isSignal": true; }; "prefixText": { "alias": "prefixText"; "required": false; "isSignal": true; }; "suffixText": { "alias": "suffixText"; "required": false; "isSignal": true; }; }, { "valueChange": "valueChange"; "stepUp": "stepUp"; "stepDown": "stepDown"; }, never, ["[talosPrefix], [talosTextPrefix], [talosLead], [talosStart], [prefix]", "[talosSuffix], [talosPostfix], [talosTextSuffix], [talosTextPostfix], [talosTrail], [talosEnd], [suffix]"], true, never>;
|
|
1585
|
+
}
|
|
1586
|
+
|
|
1587
|
+
declare class TalosNumberInputModule {
|
|
1588
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<TalosNumberInputModule, never>;
|
|
1589
|
+
static ɵmod: _angular_core.ɵɵNgModuleDeclaration<TalosNumberInputModule, never, [typeof TalosNumberInputComponent], [typeof TalosNumberInputComponent]>;
|
|
1590
|
+
static ɵinj: _angular_core.ɵɵInjectorDeclaration<TalosNumberInputModule>;
|
|
1591
|
+
}
|
|
1592
|
+
|
|
1593
|
+
type OtpInputType = 'number' | 'text' | 'password' | 'alphanumeric';
|
|
1594
|
+
type OtpVariant = 'outlined' | 'filled' | 'underlined';
|
|
1595
|
+
type OtpSize = 'sm' | 'md' | 'lg';
|
|
1596
|
+
type OtpSplitConfig = number | number[] | string | 'none' | boolean;
|
|
1597
|
+
interface OtpCompletedEvent {
|
|
1598
|
+
value: string;
|
|
1599
|
+
isComplete: boolean;
|
|
1600
|
+
}
|
|
1601
|
+
|
|
1602
|
+
declare class TalosOtpComponent implements ControlValueAccessor, AfterViewInit {
|
|
1603
|
+
slotInputs: QueryList<ElementRef<HTMLInputElement>>;
|
|
1604
|
+
/** Total number of OTP digits/slots */
|
|
1605
|
+
readonly length: _angular_core.InputSignal<number>;
|
|
1606
|
+
/** Expected character input type ('number', 'text', 'password', 'alphanumeric') */
|
|
1607
|
+
readonly type: _angular_core.InputSignal<OtpInputType>;
|
|
1608
|
+
/** Visual variant ('outlined' | 'filled' | 'underlined') */
|
|
1609
|
+
readonly variant: _angular_core.InputSignal<OtpVariant>;
|
|
1610
|
+
/** Size scale ('sm' | 'md' | 'lg') */
|
|
1611
|
+
readonly size: _angular_core.InputSignal<OtpSize>;
|
|
1612
|
+
/** Whether to visually mask input characters */
|
|
1613
|
+
readonly mask: _angular_core.InputSignal<boolean>;
|
|
1614
|
+
/** Character to display when masked */
|
|
1615
|
+
readonly maskChar: _angular_core.InputSignal<string>;
|
|
1616
|
+
/** Single placeholder character for empty slots */
|
|
1617
|
+
readonly placeholder: _angular_core.InputSignal<string>;
|
|
1618
|
+
/** Disabled state */
|
|
1619
|
+
readonly disabled: _angular_core.InputSignal<boolean>;
|
|
1620
|
+
/** Readonly state */
|
|
1621
|
+
readonly readonly: _angular_core.InputSignal<boolean>;
|
|
1622
|
+
/** Error / Invalid state */
|
|
1623
|
+
readonly invalid: _angular_core.InputSignal<boolean>;
|
|
1624
|
+
/** Automatically focus first slot on init */
|
|
1625
|
+
readonly autoFocus: _angular_core.InputSignal<boolean>;
|
|
1626
|
+
/** Optional separator character between slots or groups (e.g. '-') */
|
|
1627
|
+
readonly separator: _angular_core.InputSignal<string>;
|
|
1628
|
+
/**
|
|
1629
|
+
* Split configuration: number (interval), number[] (group sizes), or string (e.g. '3,3' or '2-2-2')
|
|
1630
|
+
*/
|
|
1631
|
+
readonly split: _angular_core.InputSignal<OtpSplitConfig | undefined>;
|
|
1632
|
+
/** Frequency of separator insertion (e.g. 3 for grouping by 3) */
|
|
1633
|
+
readonly separatorInterval: _angular_core.InputSignal<number | undefined>;
|
|
1634
|
+
/** Custom grouping sizes, e.g. [3, 3] or [4, 4] */
|
|
1635
|
+
readonly grouping: _angular_core.InputSignal<OtpSplitConfig | undefined>;
|
|
1636
|
+
/** Whether to allow alphanumeric characters when type is text or alphanumeric */
|
|
1637
|
+
readonly allowAlphanumeric: _angular_core.InputSignal<boolean>;
|
|
1638
|
+
/** Component HTML ID prefix */
|
|
1639
|
+
readonly id: _angular_core.InputSignal<string>;
|
|
1640
|
+
/** Accessible label */
|
|
1641
|
+
readonly ariaLabel: _angular_core.InputSignal<string>;
|
|
1642
|
+
/** Emitted whenever the combined value changes */
|
|
1643
|
+
readonly valueChange: _angular_core.OutputEmitterRef<string>;
|
|
1644
|
+
/** Emitted when all slots are filled */
|
|
1645
|
+
readonly completed: _angular_core.OutputEmitterRef<string>;
|
|
1646
|
+
/** Emitted with structured complete state */
|
|
1647
|
+
readonly otpChange: _angular_core.OutputEmitterRef<OtpCompletedEvent>;
|
|
1648
|
+
private readonly defaultId;
|
|
1649
|
+
readonly elementId: _angular_core.Signal<string>;
|
|
1650
|
+
private readonly disabledState;
|
|
1651
|
+
readonly effectiveDisabled: _angular_core.Signal<boolean>;
|
|
1652
|
+
readonly effectiveInvalid: _angular_core.Signal<boolean>;
|
|
1653
|
+
/** Slots array for iteration */
|
|
1654
|
+
readonly slotIndices: _angular_core.Signal<number[]>;
|
|
1655
|
+
/** Digit array holding current slot values */
|
|
1656
|
+
readonly digitValues: _angular_core.WritableSignal<string[]>;
|
|
1657
|
+
readonly focusedIndex: _angular_core.WritableSignal<number>;
|
|
1658
|
+
readonly separatorIndices: _angular_core.Signal<Set<number>>;
|
|
1659
|
+
private parseSplit;
|
|
1660
|
+
private onChange;
|
|
1661
|
+
private onTouched;
|
|
1662
|
+
constructor();
|
|
1663
|
+
ngAfterViewInit(): void;
|
|
1664
|
+
/** Gets native input type for slots */
|
|
1665
|
+
getInputType(): string;
|
|
1666
|
+
/** Gets appropriate inputMode for mobile keyboards */
|
|
1667
|
+
getInputMode(): string;
|
|
1668
|
+
/** Value representation for slot */
|
|
1669
|
+
getSlotDisplayValue(index: number): string;
|
|
1670
|
+
onSlotFocus(index: number, event: FocusEvent): void;
|
|
1671
|
+
onSlotBlur(): void;
|
|
1672
|
+
onSlotKeyDown(event: KeyboardEvent, index: number): void;
|
|
1673
|
+
onSlotInput(event: Event, index: number): void;
|
|
1674
|
+
onPaste(event: ClipboardEvent, startIndex: number): void;
|
|
1675
|
+
/** Validates whether a single character is allowed based on input type */
|
|
1676
|
+
private isValidCharacter;
|
|
1677
|
+
/** Focuses the slot input at the specified index */
|
|
1678
|
+
focusSlot(index: number): void;
|
|
1679
|
+
/** Clears all slot values */
|
|
1680
|
+
clear(): void;
|
|
1681
|
+
/** Updates internal state, triggers CVA, and emits change events */
|
|
1682
|
+
private updateValues;
|
|
1683
|
+
writeValue(obj: any): void;
|
|
1684
|
+
registerOnChange(fn: (val: string) => void): void;
|
|
1685
|
+
registerOnTouched(fn: () => void): void;
|
|
1686
|
+
setDisabledState(isDisabled: boolean): void;
|
|
1687
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<TalosOtpComponent, never>;
|
|
1688
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<TalosOtpComponent, "talos-otp, talos-otp-input, talos-pin-input", never, { "length": { "alias": "length"; "required": false; "isSignal": true; }; "type": { "alias": "type"; "required": false; "isSignal": true; }; "variant": { "alias": "variant"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; "mask": { "alias": "mask"; "required": false; "isSignal": true; }; "maskChar": { "alias": "maskChar"; "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; }; "invalid": { "alias": "invalid"; "required": false; "isSignal": true; }; "autoFocus": { "alias": "autoFocus"; "required": false; "isSignal": true; }; "separator": { "alias": "separator"; "required": false; "isSignal": true; }; "split": { "alias": "split"; "required": false; "isSignal": true; }; "separatorInterval": { "alias": "separatorInterval"; "required": false; "isSignal": true; }; "grouping": { "alias": "grouping"; "required": false; "isSignal": true; }; "allowAlphanumeric": { "alias": "allowAlphanumeric"; "required": false; "isSignal": true; }; "id": { "alias": "id"; "required": false; "isSignal": true; }; "ariaLabel": { "alias": "ariaLabel"; "required": false; "isSignal": true; }; }, { "valueChange": "valueChange"; "completed": "completed"; "otpChange": "otpChange"; }, never, never, true, never>;
|
|
1689
|
+
}
|
|
1690
|
+
|
|
1691
|
+
declare class TalosOtpModule {
|
|
1692
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<TalosOtpModule, never>;
|
|
1693
|
+
static ɵmod: _angular_core.ɵɵNgModuleDeclaration<TalosOtpModule, never, [typeof TalosOtpComponent], [typeof TalosOtpComponent]>;
|
|
1694
|
+
static ɵinj: _angular_core.ɵɵInjectorDeclaration<TalosOtpModule>;
|
|
1695
|
+
}
|
|
1696
|
+
|
|
1697
|
+
type PasswordStrengthLevel = 'very-weak' | 'weak' | 'fair' | 'good' | 'strong' | 'very-strong';
|
|
1698
|
+
type PasswordMeterVariant = 'segmented' | 'continuous';
|
|
1699
|
+
type PasswordInputSize = 'sm' | 'md' | 'lg';
|
|
1700
|
+
/**
|
|
1701
|
+
* Developer-configurable rule definition for password validation and strength scoring.
|
|
1702
|
+
*/
|
|
1703
|
+
interface PasswordRule {
|
|
1704
|
+
/** Unique identifier for the rule */
|
|
1705
|
+
id: string;
|
|
1706
|
+
/** Human-readable description displayed in checklists or tooltips */
|
|
1707
|
+
label: string;
|
|
1708
|
+
/** Minimum character length requirement */
|
|
1709
|
+
minLength?: number;
|
|
1710
|
+
/** Regular expression pattern that must match */
|
|
1711
|
+
pattern?: RegExp;
|
|
1712
|
+
/** Custom validator function returning true when criteria is met */
|
|
1713
|
+
validator?: (password: string) => boolean;
|
|
1714
|
+
/** Optional weight or scoring contribution for this rule (default: 1) */
|
|
1715
|
+
weight?: number;
|
|
1716
|
+
/** Optional hint or helper text explaining this rule */
|
|
1717
|
+
hint?: string;
|
|
1718
|
+
}
|
|
1719
|
+
/**
|
|
1720
|
+
* Status of an individual evaluated rule.
|
|
1721
|
+
*/
|
|
1722
|
+
interface PasswordRuleStatus {
|
|
1723
|
+
/** The rule evaluated */
|
|
1724
|
+
rule: PasswordRule;
|
|
1725
|
+
/** Whether the rule requirement was satisfied */
|
|
1726
|
+
passed: boolean;
|
|
1727
|
+
}
|
|
1728
|
+
/**
|
|
1729
|
+
* Result of a password strength evaluation.
|
|
1730
|
+
*/
|
|
1731
|
+
interface PasswordStrengthResult {
|
|
1732
|
+
/** Overall score as a percentage (0 - 100) */
|
|
1733
|
+
score: number;
|
|
1734
|
+
/** Strength classification level */
|
|
1735
|
+
level: PasswordStrengthLevel;
|
|
1736
|
+
/** Localized or custom display label for the strength level */
|
|
1737
|
+
levelLabel: string;
|
|
1738
|
+
/** Number of rules satisfied */
|
|
1739
|
+
passedCount: number;
|
|
1740
|
+
/** Total number of evaluated rules */
|
|
1741
|
+
totalRules: number;
|
|
1742
|
+
/** Detailed list of each rule and its pass/fail state */
|
|
1743
|
+
rules: PasswordRuleStatus[];
|
|
1744
|
+
/** Whether all rules (or required criteria) are satisfied */
|
|
1745
|
+
isValid: boolean;
|
|
1746
|
+
}
|
|
1747
|
+
/**
|
|
1748
|
+
* Default rule set provided out-of-the-box.
|
|
1749
|
+
*/
|
|
1750
|
+
declare const DEFAULT_PASSWORD_RULES: PasswordRule[];
|
|
1751
|
+
declare const DEFAULT_STRENGTH_LABELS: Record<PasswordStrengthLevel, string>;
|
|
1752
|
+
|
|
1753
|
+
declare class TalosPasswordInputComponent implements ControlValueAccessor {
|
|
1754
|
+
inputElementRef?: ElementRef<HTMLInputElement>;
|
|
1755
|
+
private readonly autoId;
|
|
1756
|
+
readonly value: _angular_core.InputSignal<string>;
|
|
1757
|
+
readonly placeholder: _angular_core.InputSignal<string>;
|
|
1758
|
+
readonly size: _angular_core.InputSignal<PasswordInputSize>;
|
|
1759
|
+
readonly disabled: _angular_core.InputSignal<boolean>;
|
|
1760
|
+
readonly readonly: _angular_core.InputSignal<boolean>;
|
|
1761
|
+
readonly invalid: _angular_core.InputSignal<boolean>;
|
|
1762
|
+
readonly id: _angular_core.InputSignal<string>;
|
|
1763
|
+
readonly name: _angular_core.InputSignal<string>;
|
|
1764
|
+
readonly autocomplete: _angular_core.InputSignal<string>;
|
|
1765
|
+
readonly ariaLabel: _angular_core.InputSignal<string>;
|
|
1766
|
+
readonly showPrefixIcon: _angular_core.InputSignal<boolean>;
|
|
1767
|
+
readonly allowToggleMask: _angular_core.InputSignal<boolean>;
|
|
1768
|
+
readonly masked: _angular_core.InputSignal<boolean>;
|
|
1769
|
+
readonly maskToggleAriaLabel: _angular_core.InputSignal<string>;
|
|
1770
|
+
readonly showStrengthMeter: _angular_core.InputSignal<boolean>;
|
|
1771
|
+
readonly meterVariant: _angular_core.InputSignal<PasswordMeterVariant>;
|
|
1772
|
+
readonly showStrengthLabel: _angular_core.InputSignal<boolean>;
|
|
1773
|
+
readonly showRuleList: _angular_core.InputSignal<boolean>;
|
|
1774
|
+
readonly rules: _angular_core.InputSignalWithTransform<PasswordRule[] | undefined, PasswordRule[] | undefined>;
|
|
1775
|
+
readonly strengthLabels: _angular_core.InputSignalWithTransform<Record<PasswordStrengthLevel, string> | undefined, Record<PasswordStrengthLevel, string> | undefined>;
|
|
1776
|
+
readonly strengthCalculator: _angular_core.InputSignal<((password: string, rules: PasswordRule[]) => PasswordStrengthResult) | undefined>;
|
|
1777
|
+
readonly valueChange: _angular_core.OutputEmitterRef<string>;
|
|
1778
|
+
readonly maskChange: _angular_core.OutputEmitterRef<boolean>;
|
|
1779
|
+
readonly strengthChange: _angular_core.OutputEmitterRef<PasswordStrengthResult>;
|
|
1780
|
+
readonly inputFocus: _angular_core.OutputEmitterRef<FocusEvent>;
|
|
1781
|
+
readonly inputBlur: _angular_core.OutputEmitterRef<FocusEvent>;
|
|
1782
|
+
protected readonly innerValue: _angular_core.WritableSignal<string>;
|
|
1783
|
+
protected readonly isMasked: _angular_core.WritableSignal<boolean>;
|
|
1784
|
+
protected readonly isFocused: _angular_core.WritableSignal<boolean>;
|
|
1785
|
+
protected readonly formDisabled: _angular_core.WritableSignal<boolean>;
|
|
1786
|
+
private onChange;
|
|
1787
|
+
private onTouched;
|
|
1788
|
+
readonly elementId: _angular_core.Signal<string>;
|
|
1789
|
+
readonly strengthMeterId: _angular_core.Signal<string>;
|
|
1790
|
+
readonly effectiveDisabled: _angular_core.Signal<boolean>;
|
|
1791
|
+
readonly effectiveInvalid: _angular_core.Signal<boolean>;
|
|
1792
|
+
readonly strengthResult: _angular_core.Signal<PasswordStrengthResult>;
|
|
1793
|
+
/** Number of active segments for the 4-segment or 5-segment meter */
|
|
1794
|
+
readonly activeSegmentCount: _angular_core.Signal<number>;
|
|
1795
|
+
constructor();
|
|
1796
|
+
toggleMask(): void;
|
|
1797
|
+
protected onInput(event: Event): void;
|
|
1798
|
+
protected onFocus(event: FocusEvent): void;
|
|
1799
|
+
protected onBlur(event: FocusEvent): void;
|
|
1800
|
+
/** Focus the input programmatically */
|
|
1801
|
+
focus(): void;
|
|
1802
|
+
writeValue(value: unknown): void;
|
|
1803
|
+
registerOnChange(fn: (val: string) => void): void;
|
|
1804
|
+
registerOnTouched(fn: () => void): void;
|
|
1805
|
+
setDisabledState(isDisabled: boolean): void;
|
|
1806
|
+
private calculateStrength;
|
|
1807
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<TalosPasswordInputComponent, never>;
|
|
1808
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<TalosPasswordInputComponent, "talos-password-input, talos-password-field", never, { "value": { "alias": "value"; "required": false; "isSignal": true; }; "placeholder": { "alias": "placeholder"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "readonly": { "alias": "readonly"; "required": false; "isSignal": true; }; "invalid": { "alias": "invalid"; "required": false; "isSignal": true; }; "id": { "alias": "id"; "required": false; "isSignal": true; }; "name": { "alias": "name"; "required": false; "isSignal": true; }; "autocomplete": { "alias": "autocomplete"; "required": false; "isSignal": true; }; "ariaLabel": { "alias": "ariaLabel"; "required": false; "isSignal": true; }; "showPrefixIcon": { "alias": "showPrefixIcon"; "required": false; "isSignal": true; }; "allowToggleMask": { "alias": "allowToggleMask"; "required": false; "isSignal": true; }; "masked": { "alias": "masked"; "required": false; "isSignal": true; }; "maskToggleAriaLabel": { "alias": "maskToggleAriaLabel"; "required": false; "isSignal": true; }; "showStrengthMeter": { "alias": "showStrengthMeter"; "required": false; "isSignal": true; }; "meterVariant": { "alias": "meterVariant"; "required": false; "isSignal": true; }; "showStrengthLabel": { "alias": "showStrengthLabel"; "required": false; "isSignal": true; }; "showRuleList": { "alias": "showRuleList"; "required": false; "isSignal": true; }; "rules": { "alias": "rules"; "required": false; "isSignal": true; }; "strengthLabels": { "alias": "strengthLabels"; "required": false; "isSignal": true; }; "strengthCalculator": { "alias": "strengthCalculator"; "required": false; "isSignal": true; }; }, { "valueChange": "valueChange"; "maskChange": "maskChange"; "strengthChange": "strengthChange"; "inputFocus": "inputFocus"; "inputBlur": "inputBlur"; }, never, ["[prefix], [talosPrefix], [talosTextPrefix]", "[suffix], [talosSuffix], [talosPostfix], [talosTextSuffix], [talosTextPostfix]"], true, never>;
|
|
1809
|
+
}
|
|
1810
|
+
|
|
1811
|
+
declare class TalosPasswordInputDirective {
|
|
1812
|
+
private readonly elementRef;
|
|
1813
|
+
/** Sizing variation for the input */
|
|
1814
|
+
readonly size: _angular_core.InputSignal<PasswordInputSize>;
|
|
1815
|
+
/** Whether the input is in an invalid error state */
|
|
1816
|
+
readonly invalid: _angular_core.InputSignal<boolean>;
|
|
1817
|
+
/** Whether the password characters are masked */
|
|
1818
|
+
readonly masked: _angular_core.InputSignal<boolean>;
|
|
1819
|
+
/** Emitted when masked state changes */
|
|
1820
|
+
readonly maskChange: _angular_core.OutputEmitterRef<boolean>;
|
|
1821
|
+
/** Internal toggle method */
|
|
1822
|
+
toggleMask(): void;
|
|
1823
|
+
/** Focus the underlying input element */
|
|
1824
|
+
focus(): void;
|
|
1825
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<TalosPasswordInputDirective, never>;
|
|
1826
|
+
static ɵdir: _angular_core.ɵɵDirectiveDeclaration<TalosPasswordInputDirective, "input[talosPasswordInput], input[talosPassword], input[talos-password-input]", never, { "size": { "alias": "size"; "required": false; "isSignal": true; }; "invalid": { "alias": "invalid"; "required": false; "isSignal": true; }; "masked": { "alias": "masked"; "required": false; "isSignal": true; }; }, { "maskChange": "maskChange"; }, never, never, true, never>;
|
|
1827
|
+
}
|
|
1828
|
+
|
|
1829
|
+
declare class TalosPasswordInputModule {
|
|
1830
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<TalosPasswordInputModule, never>;
|
|
1831
|
+
static ɵmod: _angular_core.ɵɵNgModuleDeclaration<TalosPasswordInputModule, never, [typeof TalosPasswordInputComponent, typeof TalosPasswordInputDirective], [typeof TalosPasswordInputComponent, typeof TalosPasswordInputDirective]>;
|
|
1832
|
+
static ɵinj: _angular_core.ɵɵInjectorDeclaration<TalosPasswordInputModule>;
|
|
1833
|
+
}
|
|
1834
|
+
|
|
1835
|
+
type RadioSize = 'sm' | 'md' | 'lg';
|
|
1836
|
+
type RadioVariant = 'primary' | 'secondary' | 'success' | 'danger';
|
|
1837
|
+
declare class TalosRadioDirective {
|
|
1838
|
+
/** Sizing variation for the radio button */
|
|
1839
|
+
readonly size: _angular_core.InputSignal<RadioSize>;
|
|
1840
|
+
/** Visual color variant for the radio button */
|
|
1841
|
+
readonly variant: _angular_core.InputSignal<RadioVariant>;
|
|
1842
|
+
/** Whether the radio button is in an invalid error state */
|
|
1843
|
+
readonly invalid: _angular_core.InputSignal<boolean>;
|
|
1844
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<TalosRadioDirective, never>;
|
|
1845
|
+
static ɵdir: _angular_core.ɵɵDirectiveDeclaration<TalosRadioDirective, "input[type=\"radio\"][talosRadio], input[type=\"radio\"][talos-radio]", never, { "size": { "alias": "size"; "required": false; "isSignal": true; }; "variant": { "alias": "variant"; "required": false; "isSignal": true; }; "invalid": { "alias": "invalid"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
1846
|
+
}
|
|
1847
|
+
|
|
1848
|
+
declare class TalosRadioComponent {
|
|
1849
|
+
private readonly radioGroup;
|
|
1850
|
+
private readonly cdr;
|
|
1851
|
+
radioInputEl?: ElementRef<HTMLInputElement>;
|
|
1852
|
+
readonly value: _angular_core.InputSignal<unknown>;
|
|
1853
|
+
readonly disabled: _angular_core.InputSignal<boolean>;
|
|
1854
|
+
readonly size: _angular_core.InputSignal<RadioSize | undefined>;
|
|
1855
|
+
readonly variant: _angular_core.InputSignal<RadioVariant | undefined>;
|
|
1856
|
+
readonly id: _angular_core.InputSignal<string>;
|
|
1857
|
+
private readonly defaultId;
|
|
1858
|
+
readonly elementId: _angular_core.Signal<string>;
|
|
1859
|
+
readonly effectiveName: _angular_core.Signal<string>;
|
|
1860
|
+
readonly effectiveSize: _angular_core.Signal<RadioSize>;
|
|
1861
|
+
readonly effectiveVariant: _angular_core.Signal<RadioVariant>;
|
|
1862
|
+
readonly effectiveDisabled: _angular_core.Signal<boolean>;
|
|
1863
|
+
readonly checked: _angular_core.Signal<boolean>;
|
|
1864
|
+
onRadioChange(event: Event): void;
|
|
1865
|
+
focusInput(): void;
|
|
1866
|
+
markForCheck(): void;
|
|
1867
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<TalosRadioComponent, never>;
|
|
1868
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<TalosRadioComponent, "talos-radio", never, { "value": { "alias": "value"; "required": true; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; "variant": { "alias": "variant"; "required": false; "isSignal": true; }; "id": { "alias": "id"; "required": false; "isSignal": true; }; }, {}, never, ["*"], true, never>;
|
|
1869
|
+
}
|
|
1870
|
+
|
|
1871
|
+
type RadioDirection = 'vertical' | 'horizontal';
|
|
1872
|
+
declare class TalosRadioGroupComponent implements ControlValueAccessor {
|
|
1873
|
+
private readonly elementRef;
|
|
1874
|
+
readonly name: _angular_core.InputSignal<string>;
|
|
1875
|
+
readonly size: _angular_core.InputSignal<RadioSize>;
|
|
1876
|
+
readonly variant: _angular_core.InputSignal<RadioVariant>;
|
|
1877
|
+
readonly direction: _angular_core.InputSignal<RadioDirection>;
|
|
1878
|
+
readonly disabled: _angular_core.InputSignal<boolean>;
|
|
1879
|
+
readonly invalid: _angular_core.InputSignal<boolean>;
|
|
1880
|
+
readonly valueChange: _angular_core.OutputEmitterRef<unknown>;
|
|
1881
|
+
readonly radios: _angular_core.Signal<readonly TalosRadioComponent[]>;
|
|
1882
|
+
readonly value: _angular_core.WritableSignal<unknown>;
|
|
1883
|
+
readonly isDisabled: _angular_core.WritableSignal<boolean>;
|
|
1884
|
+
readonly isTouched: _angular_core.WritableSignal<boolean>;
|
|
1885
|
+
readonly effectiveDisabled: _angular_core.Signal<boolean>;
|
|
1886
|
+
private onChange;
|
|
1887
|
+
private onTouched;
|
|
1888
|
+
constructor();
|
|
1889
|
+
writeValue(val: unknown): void;
|
|
1890
|
+
registerOnChange(fn: (val: unknown) => void): void;
|
|
1891
|
+
registerOnTouched(fn: () => void): void;
|
|
1892
|
+
setDisabledState(isDisabled: boolean): void;
|
|
1893
|
+
selectValue(val: unknown): void;
|
|
1894
|
+
markAsTouched(): void;
|
|
1895
|
+
onKeyDown(event: KeyboardEvent): void;
|
|
1896
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<TalosRadioGroupComponent, never>;
|
|
1897
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<TalosRadioGroupComponent, "talos-radio-group", never, { "name": { "alias": "name"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; "variant": { "alias": "variant"; "required": false; "isSignal": true; }; "direction": { "alias": "direction"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "invalid": { "alias": "invalid"; "required": false; "isSignal": true; }; }, { "valueChange": "valueChange"; }, ["radios"], ["*"], true, never>;
|
|
1898
|
+
}
|
|
1899
|
+
|
|
1900
|
+
/**
|
|
1901
|
+
* Convenience NgModule wrapping the standalone radio components and directive.
|
|
1902
|
+
*
|
|
1903
|
+
* Allows developers who prefer `TalosRadioModule` to import it into standalone components
|
|
1904
|
+
* or legacy NgModule-based applications.
|
|
1905
|
+
*/
|
|
1906
|
+
declare class TalosRadioModule {
|
|
1907
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<TalosRadioModule, never>;
|
|
1908
|
+
static ɵmod: _angular_core.ɵɵNgModuleDeclaration<TalosRadioModule, never, [typeof TalosRadioDirective, typeof TalosRadioGroupComponent, typeof TalosRadioComponent], [typeof TalosRadioDirective, typeof TalosRadioGroupComponent, typeof TalosRadioComponent]>;
|
|
1909
|
+
static ɵinj: _angular_core.ɵɵInjectorDeclaration<TalosRadioModule>;
|
|
1910
|
+
}
|
|
1911
|
+
|
|
1912
|
+
type RangeInputSize = 'sm' | 'md' | 'lg';
|
|
1913
|
+
type RangeInputVariant = 'primary' | 'secondary' | 'success' | 'warning' | 'danger' | 'info';
|
|
1914
|
+
type RangeInputValue = number | [number, number];
|
|
1915
|
+
type RangeInputTooltipMode = 'always' | 'hover' | 'drag' | 'none';
|
|
1916
|
+
interface RangeInputMark {
|
|
1917
|
+
value: number;
|
|
1918
|
+
label?: string;
|
|
1919
|
+
tooltip?: string;
|
|
1920
|
+
}
|
|
1921
|
+
interface RangeInputTick {
|
|
1922
|
+
value: number;
|
|
1923
|
+
percent: number;
|
|
1924
|
+
label?: string;
|
|
1925
|
+
tooltip?: string;
|
|
1926
|
+
active: boolean;
|
|
1927
|
+
}
|
|
1928
|
+
interface RangeInputChangeEvent {
|
|
1929
|
+
value: RangeInputValue;
|
|
1930
|
+
source: 'drag' | 'keyboard' | 'input' | 'track-click';
|
|
1931
|
+
}
|
|
1932
|
+
|
|
1933
|
+
declare class TalosRangeInputDirective {
|
|
1934
|
+
private readonly elementRef;
|
|
1935
|
+
/** Size variant */
|
|
1936
|
+
readonly size: _angular_core.InputSignal<RangeInputSize>;
|
|
1937
|
+
/** Visual color variant */
|
|
1938
|
+
readonly variant: _angular_core.InputSignal<RangeInputVariant>;
|
|
1939
|
+
/** Error state */
|
|
1940
|
+
readonly invalid: _angular_core.InputSignal<boolean>;
|
|
1941
|
+
protected readonly fillPercentStyle: _angular_core.Signal<string>;
|
|
1942
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<TalosRangeInputDirective, never>;
|
|
1943
|
+
static ɵdir: _angular_core.ɵɵDirectiveDeclaration<TalosRangeInputDirective, "input[type=\"range\"][talosRangeInput], input[type=\"range\"][talos-range-input]", never, { "size": { "alias": "size"; "required": false; "isSignal": true; }; "variant": { "alias": "variant"; "required": false; "isSignal": true; }; "invalid": { "alias": "invalid"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
1944
|
+
}
|
|
1945
|
+
|
|
1946
|
+
declare class TalosRangeInputComponent implements ControlValueAccessor {
|
|
1947
|
+
private readonly elementRef;
|
|
1948
|
+
private readonly trackContainerRef;
|
|
1949
|
+
private readonly thumb0Ref;
|
|
1950
|
+
private readonly thumb1Ref;
|
|
1951
|
+
/** Minimum allowed value */
|
|
1952
|
+
readonly min: _angular_core.InputSignal<number>;
|
|
1953
|
+
/** Maximum allowed value */
|
|
1954
|
+
readonly max: _angular_core.InputSignal<number>;
|
|
1955
|
+
/** Step increment for values */
|
|
1956
|
+
readonly step: _angular_core.InputSignal<number>;
|
|
1957
|
+
/** Step interval for tick marks / labels generation (e.g. 10, 20, 25) */
|
|
1958
|
+
readonly interval: _angular_core.InputSignal<number | null>;
|
|
1959
|
+
/** Whether the slider operates in dual-thumb range mode */
|
|
1960
|
+
readonly range: _angular_core.InputSignal<boolean>;
|
|
1961
|
+
/** Minimum distance between handles in dual mode */
|
|
1962
|
+
readonly minRange: _angular_core.InputSignal<number>;
|
|
1963
|
+
/** Maximum distance between handles in dual mode */
|
|
1964
|
+
readonly maxRange: _angular_core.InputSignal<number | null>;
|
|
1965
|
+
/** Discrete tick marks with optional custom labels */
|
|
1966
|
+
readonly marks: _angular_core.InputSignal<number[] | RangeInputMark[] | null>;
|
|
1967
|
+
/** Whether to show tick mark notches on the track */
|
|
1968
|
+
readonly showTicks: _angular_core.InputSignal<boolean>;
|
|
1969
|
+
/** Whether to show interval/tick labels under the track */
|
|
1970
|
+
readonly showIntervals: _angular_core.InputSignal<boolean>;
|
|
1971
|
+
/** Alias for showIntervals */
|
|
1972
|
+
readonly showLabels: _angular_core.InputSignal<boolean>;
|
|
1973
|
+
/** Whether to snap slider thumb only to configured tick marks */
|
|
1974
|
+
readonly snapToTicks: _angular_core.InputSignal<boolean>;
|
|
1975
|
+
/** Sizing variant */
|
|
1976
|
+
readonly size: _angular_core.InputSignal<RangeInputSize>;
|
|
1977
|
+
/** Visual color variant */
|
|
1978
|
+
readonly variant: _angular_core.InputSignal<RangeInputVariant>;
|
|
1979
|
+
/** Disabled state */
|
|
1980
|
+
readonly disabled: _angular_core.InputSignal<boolean>;
|
|
1981
|
+
/** Read-only state */
|
|
1982
|
+
readonly readonly: _angular_core.InputSignal<boolean>;
|
|
1983
|
+
/** Invalid error state */
|
|
1984
|
+
readonly invalid: _angular_core.InputSignal<boolean>;
|
|
1985
|
+
/** Top label text */
|
|
1986
|
+
readonly label: _angular_core.InputSignal<string>;
|
|
1987
|
+
/** Floating label mode toggle */
|
|
1988
|
+
readonly floatingLabel: _angular_core.InputSignal<boolean>;
|
|
1989
|
+
readonly floating: _angular_core.InputSignal<boolean>;
|
|
1990
|
+
/** Helper hint text */
|
|
1991
|
+
readonly hint: _angular_core.InputSignal<string>;
|
|
1992
|
+
/** Whether to render synchronized number inputs */
|
|
1993
|
+
readonly showInputs: _angular_core.InputSignal<boolean>;
|
|
1994
|
+
/** Whether to show top value badge when inputs are disabled */
|
|
1995
|
+
readonly showValueBadge: _angular_core.InputSignal<boolean>;
|
|
1996
|
+
/** Tooltip display mode ('always' | 'hover' | 'drag' | 'none') */
|
|
1997
|
+
readonly showTooltip: _angular_core.InputSignal<RangeInputTooltipMode>;
|
|
1998
|
+
/** Optional prefix string (e.g. '$') */
|
|
1999
|
+
readonly prefix: _angular_core.InputSignal<string>;
|
|
2000
|
+
/** Optional suffix string (e.g. '%', '°C') */
|
|
2001
|
+
readonly suffix: _angular_core.InputSignal<string>;
|
|
2002
|
+
/** Custom value formatter function */
|
|
2003
|
+
readonly formatter: _angular_core.InputSignal<((value: number) => string) | null>;
|
|
2004
|
+
/** Accessibility label for single slider */
|
|
2005
|
+
readonly ariaLabel: _angular_core.InputSignal<string>;
|
|
2006
|
+
/** Accessibility label for start thumb in range mode */
|
|
2007
|
+
readonly ariaLabelStart: _angular_core.InputSignal<string>;
|
|
2008
|
+
/** Accessibility label for end thumb in range mode */
|
|
2009
|
+
readonly ariaLabelEnd: _angular_core.InputSignal<string>;
|
|
2010
|
+
/** Element unique ID */
|
|
2011
|
+
readonly id: _angular_core.InputSignal<string>;
|
|
2012
|
+
/** Standalone value input binding */
|
|
2013
|
+
readonly value: _angular_core.InputSignal<RangeInputValue | null>;
|
|
2014
|
+
/** Emitted when value changes */
|
|
2015
|
+
readonly valueChange: _angular_core.OutputEmitterRef<RangeInputValue>;
|
|
2016
|
+
/** Emitted during active dragging or keyboard movement */
|
|
2017
|
+
readonly inputChange: _angular_core.OutputEmitterRef<RangeInputChangeEvent>;
|
|
2018
|
+
/** Emitted on drag end, click release or input commit */
|
|
2019
|
+
readonly change: _angular_core.OutputEmitterRef<RangeInputChangeEvent>;
|
|
2020
|
+
private readonly defaultId;
|
|
2021
|
+
readonly elementId: _angular_core.Signal<string>;
|
|
2022
|
+
readonly internalValue: _angular_core.WritableSignal<RangeInputValue | null>;
|
|
2023
|
+
readonly isCvaDisabled: _angular_core.WritableSignal<boolean>;
|
|
2024
|
+
readonly isTouched: _angular_core.WritableSignal<boolean>;
|
|
2025
|
+
readonly focusedThumb: _angular_core.WritableSignal<number | null>;
|
|
2026
|
+
readonly hoveredThumb: _angular_core.WritableSignal<number | null>;
|
|
2027
|
+
readonly draggingThumb: _angular_core.WritableSignal<number | null>;
|
|
2028
|
+
readonly isFloatingMode: _angular_core.Signal<boolean>;
|
|
2029
|
+
readonly effectiveDisabled: _angular_core.Signal<boolean>;
|
|
2030
|
+
readonly effectiveInvalid: _angular_core.Signal<boolean>;
|
|
2031
|
+
/** Determines whether the component is in dual-handle range mode */
|
|
2032
|
+
readonly isDualRange: _angular_core.Signal<boolean>;
|
|
2033
|
+
/** Resolved start value (single value or lower bound of range) */
|
|
2034
|
+
readonly startValue: _angular_core.Signal<number>;
|
|
2035
|
+
/** Resolved end value (upper bound of range mode) */
|
|
2036
|
+
readonly endValue: _angular_core.Signal<number>;
|
|
2037
|
+
/** Overall span */
|
|
2038
|
+
readonly span: _angular_core.Signal<number>;
|
|
2039
|
+
/** Percentage position of thumb 0 */
|
|
2040
|
+
readonly thumb0Percent: _angular_core.Signal<number>;
|
|
2041
|
+
/** Percentage position of thumb 1 */
|
|
2042
|
+
readonly thumb1Percent: _angular_core.Signal<number>;
|
|
2043
|
+
/** Fill bar left percentage */
|
|
2044
|
+
readonly fillLeftPercent: _angular_core.Signal<number>;
|
|
2045
|
+
/** Fill bar width percentage */
|
|
2046
|
+
readonly fillWidthPercent: _angular_core.Signal<number>;
|
|
2047
|
+
/** Computed list of tick marks */
|
|
2048
|
+
readonly ticks: _angular_core.Signal<RangeInputTick[]>;
|
|
2049
|
+
/** Computed list of interval/tick labels */
|
|
2050
|
+
readonly labels: _angular_core.Signal<RangeInputTick[]>;
|
|
2051
|
+
readonly isDragging: _angular_core.Signal<boolean>;
|
|
2052
|
+
private onChange;
|
|
2053
|
+
private onTouched;
|
|
2054
|
+
writeValue(val: RangeInputValue | null): void;
|
|
2055
|
+
registerOnChange(fn: (val: RangeInputValue) => void): void;
|
|
2056
|
+
registerOnTouched(fn: () => void): void;
|
|
2057
|
+
setDisabledState(isDisabled: boolean): void;
|
|
2058
|
+
private clamp;
|
|
2059
|
+
private valueToPercent;
|
|
2060
|
+
private percentToValue;
|
|
2061
|
+
private snapValue;
|
|
2062
|
+
formatDisplayValue(val: number): string;
|
|
2063
|
+
isTooltipVisible(thumbIndex: number): boolean;
|
|
2064
|
+
private emitUpdate;
|
|
2065
|
+
private markAsTouched;
|
|
2066
|
+
onThumbFocus(thumbIndex: number): void;
|
|
2067
|
+
onThumbBlur(thumbIndex: number): void;
|
|
2068
|
+
onThumbMouseEnter(thumbIndex: number): void;
|
|
2069
|
+
onThumbMouseLeave(thumbIndex: number): void;
|
|
2070
|
+
onThumbPointerDown(thumbIndex: number, event: PointerEvent): void;
|
|
2071
|
+
onTrackPointerDown(event: PointerEvent): void;
|
|
2072
|
+
private updateValueFromPointer;
|
|
2073
|
+
onThumbKeyDown(thumbIndex: number, event: KeyboardEvent): void;
|
|
2074
|
+
onNumberInputChange(thumbIndex: number, event: Event): void;
|
|
2075
|
+
onTickClick(tick: RangeInputTick, event: MouseEvent): void;
|
|
2076
|
+
onLabelClick(tick: RangeInputTick, event: MouseEvent): void;
|
|
2077
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<TalosRangeInputComponent, never>;
|
|
2078
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<TalosRangeInputComponent, "talos-range-input, talos-range-slider, talos-slider", never, { "min": { "alias": "min"; "required": false; "isSignal": true; }; "max": { "alias": "max"; "required": false; "isSignal": true; }; "step": { "alias": "step"; "required": false; "isSignal": true; }; "interval": { "alias": "interval"; "required": false; "isSignal": true; }; "range": { "alias": "range"; "required": false; "isSignal": true; }; "minRange": { "alias": "minRange"; "required": false; "isSignal": true; }; "maxRange": { "alias": "maxRange"; "required": false; "isSignal": true; }; "marks": { "alias": "marks"; "required": false; "isSignal": true; }; "showTicks": { "alias": "showTicks"; "required": false; "isSignal": true; }; "showIntervals": { "alias": "showIntervals"; "required": false; "isSignal": true; }; "showLabels": { "alias": "showLabels"; "required": false; "isSignal": true; }; "snapToTicks": { "alias": "snapToTicks"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; "variant": { "alias": "variant"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "readonly": { "alias": "readonly"; "required": false; "isSignal": true; }; "invalid": { "alias": "invalid"; "required": false; "isSignal": true; }; "label": { "alias": "label"; "required": false; "isSignal": true; }; "floatingLabel": { "alias": "floatingLabel"; "required": false; "isSignal": true; }; "floating": { "alias": "floating"; "required": false; "isSignal": true; }; "hint": { "alias": "hint"; "required": false; "isSignal": true; }; "showInputs": { "alias": "showInputs"; "required": false; "isSignal": true; }; "showValueBadge": { "alias": "showValueBadge"; "required": false; "isSignal": true; }; "showTooltip": { "alias": "showTooltip"; "required": false; "isSignal": true; }; "prefix": { "alias": "prefix"; "required": false; "isSignal": true; }; "suffix": { "alias": "suffix"; "required": false; "isSignal": true; }; "formatter": { "alias": "formatter"; "required": false; "isSignal": true; }; "ariaLabel": { "alias": "ariaLabel"; "required": false; "isSignal": true; }; "ariaLabelStart": { "alias": "ariaLabelStart"; "required": false; "isSignal": true; }; "ariaLabelEnd": { "alias": "ariaLabelEnd"; "required": false; "isSignal": true; }; "id": { "alias": "id"; "required": false; "isSignal": true; }; "value": { "alias": "value"; "required": false; "isSignal": true; }; }, { "valueChange": "valueChange"; "inputChange": "inputChange"; "change": "change"; }, never, never, true, never>;
|
|
2079
|
+
}
|
|
2080
|
+
|
|
2081
|
+
declare class TalosRangeInputModule {
|
|
2082
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<TalosRangeInputModule, never>;
|
|
2083
|
+
static ɵmod: _angular_core.ɵɵNgModuleDeclaration<TalosRangeInputModule, never, [typeof TalosRangeInputComponent, typeof TalosRangeInputDirective], [typeof TalosRangeInputComponent, typeof TalosRangeInputDirective]>;
|
|
2084
|
+
static ɵinj: _angular_core.ɵɵInjectorDeclaration<TalosRangeInputModule>;
|
|
2085
|
+
}
|
|
2086
|
+
|
|
2087
|
+
type RatingSize = 'sm' | 'md' | 'lg' | 'xl';
|
|
2088
|
+
type RatingVariant = 'warning' | 'primary' | 'danger' | 'success' | 'purple' | 'custom';
|
|
2089
|
+
type RatingLabelPosition = 'right' | 'bottom';
|
|
2090
|
+
type RatingAnimationMode = 'none' | 'subtle' | 'pop' | 'particles' | 'full';
|
|
2091
|
+
interface RatingHoverEvent {
|
|
2092
|
+
value: number;
|
|
2093
|
+
index: number;
|
|
2094
|
+
}
|
|
2095
|
+
interface RatingChangeEvent {
|
|
2096
|
+
value: number;
|
|
2097
|
+
oldValue: number;
|
|
2098
|
+
}
|
|
2099
|
+
|
|
2100
|
+
declare class TalosRatingComponent implements ControlValueAccessor {
|
|
2101
|
+
private readonly elementRef;
|
|
2102
|
+
private animationTimeout;
|
|
2103
|
+
/** Current numerical rating value */
|
|
2104
|
+
readonly value: _angular_core.InputSignal<number>;
|
|
2105
|
+
/** Maximum rating count / total stars (default: 5) */
|
|
2106
|
+
readonly max: _angular_core.InputSignal<number>;
|
|
2107
|
+
/** Whether clicking the current value resets/clears to 0 (default: true) */
|
|
2108
|
+
readonly allowClear: _angular_core.InputSignal<boolean>;
|
|
2109
|
+
/** Read-only display mode */
|
|
2110
|
+
readonly readonly: _angular_core.InputSignal<boolean>;
|
|
2111
|
+
/** Disabled state */
|
|
2112
|
+
readonly disabled: _angular_core.InputSignal<boolean>;
|
|
2113
|
+
/** Sizing scale ('sm' | 'md' | 'lg' | 'xl') */
|
|
2114
|
+
readonly size: _angular_core.InputSignal<RatingSize>;
|
|
2115
|
+
/** Visual color variant ('warning' | 'primary' | 'danger' | 'success' | 'purple' | 'custom') */
|
|
2116
|
+
readonly variant: _angular_core.InputSignal<RatingVariant>;
|
|
2117
|
+
/** Custom HEX or CSS color code when variant is 'custom' or overriding */
|
|
2118
|
+
readonly color: _angular_core.InputSignal<string>;
|
|
2119
|
+
/** Animation mode ('none' | 'subtle' | 'pop' | 'particles' | 'full') */
|
|
2120
|
+
readonly animation: _angular_core.InputSignal<RatingAnimationMode>;
|
|
2121
|
+
/** Whether animations are enabled (default: true) */
|
|
2122
|
+
readonly animated: _angular_core.InputSignal<boolean>;
|
|
2123
|
+
/** Tooltip/label strings for each star index (1-based) */
|
|
2124
|
+
readonly tooltips: _angular_core.InputSignal<string[]>;
|
|
2125
|
+
/** Whether to show numeric score badge */
|
|
2126
|
+
readonly showScore: _angular_core.InputSignal<boolean>;
|
|
2127
|
+
/** Whether to show text label from tooltips or current state */
|
|
2128
|
+
readonly showLabel: _angular_core.InputSignal<boolean>;
|
|
2129
|
+
/** Position of score/tooltip label */
|
|
2130
|
+
readonly labelPosition: _angular_core.InputSignal<RatingLabelPosition>;
|
|
2131
|
+
/** Component HTML ID */
|
|
2132
|
+
readonly id: _angular_core.InputSignal<string>;
|
|
2133
|
+
/** Accessibility label */
|
|
2134
|
+
readonly ariaLabel: _angular_core.InputSignal<string>;
|
|
2135
|
+
/** Emitted when value changes */
|
|
2136
|
+
readonly valueChange: _angular_core.OutputEmitterRef<number>;
|
|
2137
|
+
/** Emitted with old and new values */
|
|
2138
|
+
readonly rateChange: _angular_core.OutputEmitterRef<RatingChangeEvent>;
|
|
2139
|
+
/** Emitted when hovering over rating items */
|
|
2140
|
+
readonly hoverChange: _angular_core.OutputEmitterRef<RatingHoverEvent>;
|
|
2141
|
+
/** Emitted when rating is cleared */
|
|
2142
|
+
readonly cleared: _angular_core.OutputEmitterRef<void>;
|
|
2143
|
+
private readonly defaultId;
|
|
2144
|
+
readonly elementId: _angular_core.Signal<string>;
|
|
2145
|
+
readonly internalValue: _angular_core.WritableSignal<number>;
|
|
2146
|
+
readonly hoverValue: _angular_core.WritableSignal<number | null>;
|
|
2147
|
+
readonly isDisabled: _angular_core.WritableSignal<boolean>;
|
|
2148
|
+
readonly isTouched: _angular_core.WritableSignal<boolean>;
|
|
2149
|
+
readonly isFocused: _angular_core.WritableSignal<boolean>;
|
|
2150
|
+
/** Index of currently pop-animating star */
|
|
2151
|
+
readonly animatingIndex: _angular_core.WritableSignal<number | null>;
|
|
2152
|
+
/** Index of currently particle-bursting star */
|
|
2153
|
+
readonly activeBurstIndex: _angular_core.WritableSignal<number | null>;
|
|
2154
|
+
readonly effectiveDisabled: _angular_core.Signal<boolean>;
|
|
2155
|
+
readonly effectiveReadonly: _angular_core.Signal<boolean>;
|
|
2156
|
+
readonly effectiveAnimation: _angular_core.Signal<RatingAnimationMode>;
|
|
2157
|
+
readonly showParticles: _angular_core.Signal<boolean>;
|
|
2158
|
+
readonly showPop: _angular_core.Signal<boolean>;
|
|
2159
|
+
readonly currentValue: _angular_core.Signal<number>;
|
|
2160
|
+
readonly displayValue: _angular_core.Signal<number>;
|
|
2161
|
+
/** Array of star item indices [1, 2, ..., max] */
|
|
2162
|
+
readonly items: _angular_core.Signal<number[]>;
|
|
2163
|
+
/** Active tooltip text based on current display value */
|
|
2164
|
+
readonly activeTooltip: _angular_core.Signal<string>;
|
|
2165
|
+
private onChange;
|
|
2166
|
+
private onTouched;
|
|
2167
|
+
writeValue(val: number): void;
|
|
2168
|
+
registerOnChange(fn: (val: number) => void): void;
|
|
2169
|
+
registerOnTouched(fn: () => void): void;
|
|
2170
|
+
setDisabledState(isDisabled: boolean): void;
|
|
2171
|
+
onItemMouseEnter(index: number): void;
|
|
2172
|
+
onItemClick(index: number): void;
|
|
2173
|
+
onMouseLeave(): void;
|
|
2174
|
+
private triggerClickEffects;
|
|
2175
|
+
onKeyDown(event: KeyboardEvent): void;
|
|
2176
|
+
onFocus(): void;
|
|
2177
|
+
onBlur(): void;
|
|
2178
|
+
private setValue;
|
|
2179
|
+
private markAsTouched;
|
|
2180
|
+
isItemActive(index: number): boolean;
|
|
2181
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<TalosRatingComponent, never>;
|
|
2182
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<TalosRatingComponent, "talos-rating, talos-rate", never, { "value": { "alias": "value"; "required": false; "isSignal": true; }; "max": { "alias": "max"; "required": false; "isSignal": true; }; "allowClear": { "alias": "allowClear"; "required": false; "isSignal": true; }; "readonly": { "alias": "readonly"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; "variant": { "alias": "variant"; "required": false; "isSignal": true; }; "color": { "alias": "color"; "required": false; "isSignal": true; }; "animation": { "alias": "animation"; "required": false; "isSignal": true; }; "animated": { "alias": "animated"; "required": false; "isSignal": true; }; "tooltips": { "alias": "tooltips"; "required": false; "isSignal": true; }; "showScore": { "alias": "showScore"; "required": false; "isSignal": true; }; "showLabel": { "alias": "showLabel"; "required": false; "isSignal": true; }; "labelPosition": { "alias": "labelPosition"; "required": false; "isSignal": true; }; "id": { "alias": "id"; "required": false; "isSignal": true; }; "ariaLabel": { "alias": "ariaLabel"; "required": false; "isSignal": true; }; }, { "valueChange": "valueChange"; "rateChange": "rateChange"; "hoverChange": "hoverChange"; "cleared": "cleared"; }, never, never, true, never>;
|
|
2183
|
+
}
|
|
2184
|
+
|
|
2185
|
+
declare class TalosRatingModule {
|
|
2186
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<TalosRatingModule, never>;
|
|
2187
|
+
static ɵmod: _angular_core.ɵɵNgModuleDeclaration<TalosRatingModule, never, [typeof TalosRatingComponent], [typeof TalosRatingComponent]>;
|
|
2188
|
+
static ɵinj: _angular_core.ɵɵInjectorDeclaration<TalosRatingModule>;
|
|
2189
|
+
}
|
|
2190
|
+
|
|
2191
|
+
declare class OptionComponent {
|
|
2192
|
+
private readonly elementRef;
|
|
2193
|
+
readonly value: _angular_core.InputSignal<unknown>;
|
|
2194
|
+
readonly label: _angular_core.InputSignal<string | undefined>;
|
|
2195
|
+
readonly disabled: _angular_core.InputSignal<boolean>;
|
|
2196
|
+
readonly selected: _angular_core.OutputEmitterRef<OptionComponent>;
|
|
2197
|
+
readonly isSelected: _angular_core.WritableSignal<boolean>;
|
|
2198
|
+
readonly isActive: _angular_core.WritableSignal<boolean>;
|
|
2199
|
+
readonly hidden: _angular_core.WritableSignal<boolean>;
|
|
2200
|
+
displayText(): string;
|
|
2201
|
+
onClick(event: MouseEvent): void;
|
|
2202
|
+
scrollIntoViewIfNeeded(): void;
|
|
2203
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<OptionComponent, never>;
|
|
2204
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<OptionComponent, "talos-option", never, { "value": { "alias": "value"; "required": false; "isSignal": true; }; "label": { "alias": "label"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; }, { "selected": "selected"; }, never, ["*"], true, never>;
|
|
2205
|
+
}
|
|
2206
|
+
|
|
2207
|
+
declare class OptionGroupComponent {
|
|
2208
|
+
readonly label: _angular_core.InputSignal<string>;
|
|
2209
|
+
readonly disabled: _angular_core.InputSignal<boolean>;
|
|
2210
|
+
readonly options: _angular_core.Signal<readonly OptionComponent[]>;
|
|
2211
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<OptionGroupComponent, never>;
|
|
2212
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<OptionGroupComponent, "talos-option-group", never, { "label": { "alias": "label"; "required": true; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; }, {}, ["options"], ["talos-option, app-option"], true, never>;
|
|
2213
|
+
}
|
|
2214
|
+
|
|
2215
|
+
declare class SelectInputComponent implements ControlValueAccessor, AfterContentChecked {
|
|
2216
|
+
private readonly elementRef;
|
|
2217
|
+
readonly placeholder: _angular_core.InputSignal<string>;
|
|
2218
|
+
readonly label: _angular_core.InputSignal<string>;
|
|
2219
|
+
readonly floatingLabel: _angular_core.InputSignal<boolean>;
|
|
2220
|
+
readonly floating: _angular_core.InputSignal<boolean>;
|
|
2221
|
+
readonly required: _angular_core.InputSignal<boolean>;
|
|
2222
|
+
readonly searchable: _angular_core.InputSignal<boolean>;
|
|
2223
|
+
readonly searchPlaceholder: _angular_core.InputSignal<string>;
|
|
2224
|
+
readonly disabled: _angular_core.InputSignal<boolean>;
|
|
2225
|
+
readonly clearable: _angular_core.InputSignal<boolean>;
|
|
2226
|
+
readonly multiple: _angular_core.InputSignal<boolean>;
|
|
2227
|
+
readonly size: _angular_core.InputSignal<"sm" | "md" | "lg">;
|
|
2228
|
+
readonly placement: _angular_core.InputSignal<"bottom" | "top" | "auto">;
|
|
2229
|
+
readonly selectionChange: _angular_core.OutputEmitterRef<unknown>;
|
|
2230
|
+
readonly opened: _angular_core.OutputEmitterRef<void>;
|
|
2231
|
+
readonly closed: _angular_core.OutputEmitterRef<void>;
|
|
2232
|
+
readonly searchChange: _angular_core.OutputEmitterRef<string>;
|
|
2233
|
+
readonly options: _angular_core.Signal<readonly OptionComponent[]>;
|
|
2234
|
+
readonly optionGroups: _angular_core.Signal<readonly OptionGroupComponent[]>;
|
|
2235
|
+
searchInputEl?: ElementRef<HTMLInputElement>;
|
|
2236
|
+
triggerEl?: ElementRef<HTMLDivElement>;
|
|
2237
|
+
readonly componentId: string;
|
|
2238
|
+
readonly listboxId: string;
|
|
2239
|
+
readonly value: _angular_core.WritableSignal<unknown>;
|
|
2240
|
+
readonly isOpen: _angular_core.WritableSignal<boolean>;
|
|
2241
|
+
readonly searchValue: _angular_core.WritableSignal<string>;
|
|
2242
|
+
readonly focusedIndex: _angular_core.WritableSignal<number>;
|
|
2243
|
+
readonly isDisabled: _angular_core.WritableSignal<boolean>;
|
|
2244
|
+
readonly isTouched: _angular_core.WritableSignal<boolean>;
|
|
2245
|
+
readonly hasPrefix: _angular_core.WritableSignal<boolean>;
|
|
2246
|
+
readonly hasSuffix: _angular_core.WritableSignal<boolean>;
|
|
2247
|
+
readonly effectivePlacement: _angular_core.WritableSignal<"bottom" | "top">;
|
|
2248
|
+
readonly isFloatingMode: _angular_core.Signal<boolean>;
|
|
2249
|
+
readonly isFloated: _angular_core.Signal<boolean>;
|
|
2250
|
+
readonly effectiveDisabled: _angular_core.Signal<boolean>;
|
|
2251
|
+
readonly selectedOption: _angular_core.Signal<OptionComponent | null>;
|
|
2252
|
+
readonly displayLabel: _angular_core.Signal<string>;
|
|
2253
|
+
readonly visibleOptions: _angular_core.Signal<OptionComponent[]>;
|
|
2254
|
+
private onChange;
|
|
2255
|
+
private onTouched;
|
|
2256
|
+
constructor();
|
|
2257
|
+
writeValue(val: unknown): void;
|
|
2258
|
+
registerOnChange(fn: (val: unknown) => void): void;
|
|
2259
|
+
registerOnTouched(fn: () => void): void;
|
|
2260
|
+
setDisabledState(isDisabled: boolean): void;
|
|
2261
|
+
toggleOpen(): void;
|
|
2262
|
+
open(): void;
|
|
2263
|
+
close(): void;
|
|
2264
|
+
selectOption(option: OptionComponent | null): void;
|
|
2265
|
+
onClear(event: MouseEvent): void;
|
|
2266
|
+
markAsTouched(): void;
|
|
2267
|
+
onSearchInput(event: Event): void;
|
|
2268
|
+
clearSearch(): void;
|
|
2269
|
+
private filterOptions;
|
|
2270
|
+
onKeyDown(event: KeyboardEvent): void;
|
|
2271
|
+
ngAfterContentChecked(): void;
|
|
2272
|
+
private checkAffixes;
|
|
2273
|
+
private calculateAutoPlacement;
|
|
2274
|
+
onDocumentClick(event: MouseEvent): void;
|
|
2275
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<SelectInputComponent, never>;
|
|
2276
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<SelectInputComponent, "talos-select-input", never, { "placeholder": { "alias": "placeholder"; "required": false; "isSignal": true; }; "label": { "alias": "label"; "required": false; "isSignal": true; }; "floatingLabel": { "alias": "floatingLabel"; "required": false; "isSignal": true; }; "floating": { "alias": "floating"; "required": false; "isSignal": true; }; "required": { "alias": "required"; "required": false; "isSignal": true; }; "searchable": { "alias": "searchable"; "required": false; "isSignal": true; }; "searchPlaceholder": { "alias": "searchPlaceholder"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "clearable": { "alias": "clearable"; "required": false; "isSignal": true; }; "multiple": { "alias": "multiple"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; "placement": { "alias": "placement"; "required": false; "isSignal": true; }; }, { "selectionChange": "selectionChange"; "opened": "opened"; "closed": "closed"; "searchChange": "searchChange"; }, ["options", "optionGroups"], ["[prefix], [talosPrefix], [talosTextPrefix], [talosLead], [talosStart]", "[suffix], [talosSuffix], [talosPostfix], [talosTextSuffix], [talosTextPostfix], [talosTrail], [talosEnd]", "*"], true, never>;
|
|
2277
|
+
}
|
|
2278
|
+
|
|
2279
|
+
interface CascadeOption {
|
|
2280
|
+
value: unknown;
|
|
2281
|
+
label: string;
|
|
2282
|
+
icon?: string;
|
|
2283
|
+
disabled?: boolean;
|
|
2284
|
+
leaf?: boolean;
|
|
2285
|
+
children?: CascadeOption[];
|
|
2286
|
+
[key: string]: unknown;
|
|
2287
|
+
}
|
|
2288
|
+
type CascadeExpandTrigger = 'click' | 'hover';
|
|
2289
|
+
type CascadeValueMode = 'path' | 'leaf';
|
|
2290
|
+
interface CascadeSearchMatch {
|
|
2291
|
+
option: CascadeOption;
|
|
2292
|
+
path: CascadeOption[];
|
|
2293
|
+
labelPath: string;
|
|
2294
|
+
valuePath: unknown[];
|
|
2295
|
+
disabled: boolean;
|
|
2296
|
+
}
|
|
2297
|
+
|
|
2298
|
+
interface ColumnData {
|
|
2299
|
+
depth: number;
|
|
2300
|
+
options: CascadeOption[];
|
|
2301
|
+
selectedOption: CascadeOption | null;
|
|
2302
|
+
}
|
|
2303
|
+
declare class CascadeSelectComponent implements ControlValueAccessor, AfterContentChecked {
|
|
2304
|
+
private readonly elementRef;
|
|
2305
|
+
readonly options: _angular_core.InputSignal<CascadeOption[]>;
|
|
2306
|
+
readonly placeholder: _angular_core.InputSignal<string>;
|
|
2307
|
+
readonly label: _angular_core.InputSignal<string>;
|
|
2308
|
+
readonly floatingLabel: _angular_core.InputSignal<boolean>;
|
|
2309
|
+
readonly floating: _angular_core.InputSignal<boolean>;
|
|
2310
|
+
readonly required: _angular_core.InputSignal<boolean>;
|
|
2311
|
+
readonly disabled: _angular_core.InputSignal<boolean>;
|
|
2312
|
+
readonly clearable: _angular_core.InputSignal<boolean>;
|
|
2313
|
+
readonly searchable: _angular_core.InputSignal<boolean>;
|
|
2314
|
+
readonly searchPlaceholder: _angular_core.InputSignal<string>;
|
|
2315
|
+
readonly expandTrigger: _angular_core.InputSignal<CascadeExpandTrigger>;
|
|
2316
|
+
readonly valueMode: _angular_core.InputSignal<CascadeValueMode>;
|
|
2317
|
+
readonly separator: _angular_core.InputSignal<string>;
|
|
2318
|
+
readonly size: _angular_core.InputSignal<"sm" | "md" | "lg">;
|
|
2319
|
+
readonly pathChange: _angular_core.OutputEmitterRef<CascadeOption[]>;
|
|
2320
|
+
readonly selectionChange: _angular_core.OutputEmitterRef<unknown>;
|
|
2321
|
+
readonly opened: _angular_core.OutputEmitterRef<void>;
|
|
2322
|
+
readonly closed: _angular_core.OutputEmitterRef<void>;
|
|
2323
|
+
readonly isOpen: _angular_core.WritableSignal<boolean>;
|
|
2324
|
+
readonly activePath: _angular_core.WritableSignal<CascadeOption[]>;
|
|
2325
|
+
readonly selectedPath: _angular_core.WritableSignal<CascadeOption[]>;
|
|
2326
|
+
readonly searchTerm: _angular_core.WritableSignal<string>;
|
|
2327
|
+
readonly highlightedSearchIndex: _angular_core.WritableSignal<number>;
|
|
2328
|
+
readonly hasPrefix: _angular_core.WritableSignal<boolean>;
|
|
2329
|
+
readonly hasSuffix: _angular_core.WritableSignal<boolean>;
|
|
2330
|
+
readonly hasError: _angular_core.WritableSignal<boolean>;
|
|
2331
|
+
searchInputEl?: ElementRef<HTMLInputElement>;
|
|
2332
|
+
triggerBoxEl?: ElementRef<HTMLElement>;
|
|
2333
|
+
private onChange;
|
|
2334
|
+
private onTouched;
|
|
2335
|
+
readonly isFloatingMode: _angular_core.Signal<boolean>;
|
|
2336
|
+
readonly displayLabel: _angular_core.Signal<string>;
|
|
2337
|
+
readonly isFloated: _angular_core.Signal<boolean>;
|
|
2338
|
+
readonly activeColumns: _angular_core.Signal<ColumnData[]>;
|
|
2339
|
+
readonly allSearchablePaths: _angular_core.Signal<CascadeSearchMatch[]>;
|
|
2340
|
+
readonly filteredSearchResults: _angular_core.Signal<CascadeSearchMatch[]>;
|
|
2341
|
+
writeValue(value: unknown): void;
|
|
2342
|
+
registerOnChange(fn: (val: unknown) => void): void;
|
|
2343
|
+
registerOnTouched(fn: () => void): void;
|
|
2344
|
+
setDisabledState?(isDisabled: boolean): void;
|
|
2345
|
+
toggleDropdown(): void;
|
|
2346
|
+
openDropdown(): void;
|
|
2347
|
+
closeDropdown(): void;
|
|
2348
|
+
onDocumentClick(event: MouseEvent): void;
|
|
2349
|
+
hasChildren(option: CascadeOption): boolean;
|
|
2350
|
+
isOptionSelected(depth: number, option: CascadeOption): boolean;
|
|
2351
|
+
isOptionActiveBranch(depth: number, option: CascadeOption): boolean;
|
|
2352
|
+
onOptionHover(depth: number, option: CascadeOption): void;
|
|
2353
|
+
onOptionClick(depth: number, option: CascadeOption): void;
|
|
2354
|
+
private expandOption;
|
|
2355
|
+
commitSelection(path: CascadeOption[]): void;
|
|
2356
|
+
onClear(event: MouseEvent): void;
|
|
2357
|
+
onSearchInput(event: Event): void;
|
|
2358
|
+
clearSearch(): void;
|
|
2359
|
+
selectSearchResult(match: CascadeSearchMatch): void;
|
|
2360
|
+
onSearchKeyDown(event: KeyboardEvent): void;
|
|
2361
|
+
onKeyDown(event: KeyboardEvent): void;
|
|
2362
|
+
private findPathForValue;
|
|
2363
|
+
ngAfterContentChecked(): void;
|
|
2364
|
+
private checkAffixes;
|
|
2365
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<CascadeSelectComponent, never>;
|
|
2366
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<CascadeSelectComponent, "talos-cascade-select", never, { "options": { "alias": "options"; "required": false; "isSignal": true; }; "placeholder": { "alias": "placeholder"; "required": false; "isSignal": true; }; "label": { "alias": "label"; "required": false; "isSignal": true; }; "floatingLabel": { "alias": "floatingLabel"; "required": false; "isSignal": true; }; "floating": { "alias": "floating"; "required": false; "isSignal": true; }; "required": { "alias": "required"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "clearable": { "alias": "clearable"; "required": false; "isSignal": true; }; "searchable": { "alias": "searchable"; "required": false; "isSignal": true; }; "searchPlaceholder": { "alias": "searchPlaceholder"; "required": false; "isSignal": true; }; "expandTrigger": { "alias": "expandTrigger"; "required": false; "isSignal": true; }; "valueMode": { "alias": "valueMode"; "required": false; "isSignal": true; }; "separator": { "alias": "separator"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; }, { "pathChange": "pathChange"; "selectionChange": "selectionChange"; "opened": "opened"; "closed": "closed"; }, never, ["[prefix], [talosPrefix], [talosTextPrefix], [talosLead], [talosStart]", "[suffix], [talosSuffix], [talosPostfix], [talosTextSuffix], [talosTextPostfix], [talosTrail], [talosEnd]"], true, never>;
|
|
2367
|
+
}
|
|
2368
|
+
|
|
2369
|
+
/**
|
|
2370
|
+
* Convenience NgModule wrapping the standalone select input, option, and cascade select components.
|
|
2371
|
+
*
|
|
2372
|
+
* Allows developers who prefer `SelectInputModule` to import it into standalone components
|
|
2373
|
+
* or legacy NgModule-based applications.
|
|
2374
|
+
*/
|
|
2375
|
+
declare class SelectInputModule {
|
|
2376
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<SelectInputModule, never>;
|
|
2377
|
+
static ɵmod: _angular_core.ɵɵNgModuleDeclaration<SelectInputModule, never, [typeof SelectInputComponent, typeof OptionComponent, typeof OptionGroupComponent, typeof CascadeSelectComponent], [typeof SelectInputComponent, typeof OptionComponent, typeof OptionGroupComponent, typeof CascadeSelectComponent]>;
|
|
2378
|
+
static ɵinj: _angular_core.ɵɵInjectorDeclaration<SelectInputModule>;
|
|
2379
|
+
}
|
|
2380
|
+
|
|
2381
|
+
type SlideToggleSize = 'sm' | 'md' | 'lg';
|
|
2382
|
+
type SlideToggleVariant = 'primary' | 'secondary' | 'success' | 'danger';
|
|
2383
|
+
declare class TalosSlideToggleDirective {
|
|
2384
|
+
private readonly elementRef;
|
|
2385
|
+
/** Standalone checked state */
|
|
2386
|
+
readonly checked: _angular_core.InputSignal<boolean>;
|
|
2387
|
+
/** Sizing variation for the slide toggle */
|
|
2388
|
+
readonly size: _angular_core.InputSignal<SlideToggleSize>;
|
|
2389
|
+
/** Visual color variant for the slide toggle */
|
|
2390
|
+
readonly variant: _angular_core.InputSignal<SlideToggleVariant>;
|
|
2391
|
+
/** Whether the slide toggle is disabled */
|
|
2392
|
+
readonly disabled: _angular_core.InputSignal<boolean>;
|
|
2393
|
+
/** Whether the slide toggle is in an invalid error state */
|
|
2394
|
+
readonly invalid: _angular_core.InputSignal<boolean>;
|
|
2395
|
+
/** Output event emitted when checked state changes */
|
|
2396
|
+
readonly checkedChange: _angular_core.OutputEmitterRef<boolean>;
|
|
2397
|
+
onNativeChange(event: Event): void;
|
|
2398
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<TalosSlideToggleDirective, never>;
|
|
2399
|
+
static ɵdir: _angular_core.ɵɵDirectiveDeclaration<TalosSlideToggleDirective, "input[type=\"checkbox\"][talosSlideToggle], input[type=\"checkbox\"][talos-slide-toggle], input[type=\"checkbox\"][talosSwitch], input[type=\"checkbox\"][talos-switch]", ["talosSlideToggle"], { "checked": { "alias": "checked"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; "variant": { "alias": "variant"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "invalid": { "alias": "invalid"; "required": false; "isSignal": true; }; }, { "checkedChange": "checkedChange"; }, never, never, true, never>;
|
|
2400
|
+
}
|
|
2401
|
+
|
|
2402
|
+
type SlideToggleLabelPosition = 'before' | 'after';
|
|
2403
|
+
declare class TalosSlideToggleComponent implements ControlValueAccessor {
|
|
2404
|
+
private readonly inputRef;
|
|
2405
|
+
/** Standalone checked state input */
|
|
2406
|
+
readonly checked: _angular_core.InputSignal<boolean>;
|
|
2407
|
+
/** Sizing variation for the toggle switch */
|
|
2408
|
+
readonly size: _angular_core.InputSignal<SlideToggleSize>;
|
|
2409
|
+
/** Visual color variant for the toggle switch */
|
|
2410
|
+
readonly variant: _angular_core.InputSignal<SlideToggleVariant>;
|
|
2411
|
+
/** Whether the toggle switch is disabled */
|
|
2412
|
+
readonly disabled: _angular_core.InputSignal<boolean>;
|
|
2413
|
+
/** Whether the toggle switch is in an invalid error state */
|
|
2414
|
+
readonly invalid: _angular_core.InputSignal<boolean>;
|
|
2415
|
+
/** Position of the label text relative to the toggle switch */
|
|
2416
|
+
readonly labelPosition: _angular_core.InputSignal<SlideToggleLabelPosition>;
|
|
2417
|
+
/** Optional label text fallback if not projecting content */
|
|
2418
|
+
readonly label: _angular_core.InputSignal<string>;
|
|
2419
|
+
/** Element HTML ID */
|
|
2420
|
+
readonly id: _angular_core.InputSignal<string>;
|
|
2421
|
+
/** Emitted when checked state changes */
|
|
2422
|
+
readonly checkedChange: _angular_core.OutputEmitterRef<boolean>;
|
|
2423
|
+
private readonly defaultId;
|
|
2424
|
+
readonly elementId: _angular_core.Signal<string>;
|
|
2425
|
+
readonly internalValue: _angular_core.WritableSignal<boolean>;
|
|
2426
|
+
readonly isDisabled: _angular_core.WritableSignal<boolean>;
|
|
2427
|
+
readonly isTouched: _angular_core.WritableSignal<boolean>;
|
|
2428
|
+
readonly effectiveDisabled: _angular_core.Signal<boolean>;
|
|
2429
|
+
readonly effectiveInvalid: _angular_core.Signal<boolean>;
|
|
2430
|
+
readonly isChecked: _angular_core.Signal<boolean>;
|
|
2431
|
+
private onChange;
|
|
2432
|
+
private onTouched;
|
|
2433
|
+
writeValue(val: boolean): void;
|
|
2434
|
+
registerOnChange(fn: (val: boolean) => void): void;
|
|
2435
|
+
registerOnTouched(fn: () => void): void;
|
|
2436
|
+
setDisabledState(isDisabled: boolean): void;
|
|
2437
|
+
onDirectiveCheckedChange(isChecked: boolean): void;
|
|
2438
|
+
markAsTouched(): void;
|
|
2439
|
+
/** Focuses the native HTML input element */
|
|
2440
|
+
focusInput(): void;
|
|
2441
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<TalosSlideToggleComponent, never>;
|
|
2442
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<TalosSlideToggleComponent, "talos-slide-toggle, talos-switch", never, { "checked": { "alias": "checked"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; "variant": { "alias": "variant"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "invalid": { "alias": "invalid"; "required": false; "isSignal": true; }; "labelPosition": { "alias": "labelPosition"; "required": false; "isSignal": true; }; "label": { "alias": "label"; "required": false; "isSignal": true; }; "id": { "alias": "id"; "required": false; "isSignal": true; }; }, { "checkedChange": "checkedChange"; }, never, ["*"], true, never>;
|
|
2443
|
+
}
|
|
2444
|
+
|
|
2445
|
+
/**
|
|
2446
|
+
* Convenience NgModule wrapping standalone slide-toggle directive and component.
|
|
2447
|
+
*/
|
|
2448
|
+
declare class TalosSlideToggleModule {
|
|
2449
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<TalosSlideToggleModule, never>;
|
|
2450
|
+
static ɵmod: _angular_core.ɵɵNgModuleDeclaration<TalosSlideToggleModule, never, [typeof TalosSlideToggleDirective, typeof TalosSlideToggleComponent], [typeof TalosSlideToggleDirective, typeof TalosSlideToggleComponent]>;
|
|
2451
|
+
static ɵinj: _angular_core.ɵɵInjectorDeclaration<TalosSlideToggleModule>;
|
|
2452
|
+
}
|
|
2453
|
+
|
|
2454
|
+
type TransferListSize = 'sm' | 'md' | 'lg';
|
|
2455
|
+
type TransferListVariant = 'outlined' | 'elevated' | 'flat' | 'bordered';
|
|
2456
|
+
type TransferListSearchMode = 'client' | 'server';
|
|
2457
|
+
type TransferListDragMode = 'handle' | 'card' | 'item';
|
|
2458
|
+
type TransferListDirection = 'toTarget' | 'toSource';
|
|
2459
|
+
type TransferListPane = 'source' | 'target';
|
|
2460
|
+
interface TalosTransferItem {
|
|
2461
|
+
id?: string | number;
|
|
2462
|
+
key?: string | number;
|
|
2463
|
+
value?: string | number;
|
|
2464
|
+
label?: string;
|
|
2465
|
+
title?: string;
|
|
2466
|
+
name?: string;
|
|
2467
|
+
description?: string;
|
|
2468
|
+
disabled?: boolean;
|
|
2469
|
+
icon?: string;
|
|
2470
|
+
avatar?: string;
|
|
2471
|
+
badge?: string;
|
|
2472
|
+
tag?: string;
|
|
2473
|
+
[key: string]: unknown;
|
|
2474
|
+
}
|
|
2475
|
+
interface TalosTransferEvent<T = unknown> {
|
|
2476
|
+
source: T[];
|
|
2477
|
+
target: T[];
|
|
2478
|
+
moved: T[];
|
|
2479
|
+
direction: TransferListDirection;
|
|
2480
|
+
}
|
|
2481
|
+
interface TalosTransferSelectionChange<T = unknown> {
|
|
2482
|
+
sourceSelected: T[];
|
|
2483
|
+
targetSelected: T[];
|
|
2484
|
+
sourceSelectedKeys: (string | number)[];
|
|
2485
|
+
targetSelectedKeys: (string | number)[];
|
|
2486
|
+
}
|
|
2487
|
+
interface TalosTransferListItemContext<T = unknown> {
|
|
2488
|
+
$implicit: T;
|
|
2489
|
+
item: T;
|
|
2490
|
+
pane: TransferListPane;
|
|
2491
|
+
selected: boolean;
|
|
2492
|
+
disabled: boolean;
|
|
2493
|
+
index: number;
|
|
2494
|
+
}
|
|
2495
|
+
type TransferListFilterFn<T = unknown> = (item: T, query: string, pane: TransferListPane) => boolean;
|
|
2496
|
+
type TransferListSearchHandler<T = unknown> = (query: string, pane: TransferListPane) => Observable<T[]> | Promise<T[]> | T[];
|
|
2497
|
+
interface TransferListSearchQueryEvent {
|
|
2498
|
+
query: string;
|
|
2499
|
+
pane: TransferListPane;
|
|
2500
|
+
}
|
|
2501
|
+
interface TransferListSearchErrorEvent {
|
|
2502
|
+
error: unknown;
|
|
2503
|
+
query: string;
|
|
2504
|
+
pane: TransferListPane;
|
|
2505
|
+
}
|
|
2506
|
+
type TransferListItemKeyFn<T = unknown> = (item: T) => string | number;
|
|
2507
|
+
type TransferListItemLabelFn<T = unknown> = (item: T) => string;
|
|
2508
|
+
type TransferListItemDescriptionFn<T = unknown> = (item: T) => string;
|
|
2509
|
+
type TransferListItemDisabledFn<T = unknown> = (item: T) => boolean;
|
|
2510
|
+
|
|
2511
|
+
declare class TalosTransferListComponent<T = unknown> implements ControlValueAccessor {
|
|
2512
|
+
private readonly elementRef;
|
|
2513
|
+
readonly source: _angular_core.InputSignal<readonly T[] | T[]>;
|
|
2514
|
+
readonly target: _angular_core.InputSignal<readonly T[] | T[]>;
|
|
2515
|
+
readonly titles: _angular_core.InputSignal<[string, string]>;
|
|
2516
|
+
readonly searchable: _angular_core.InputSignal<boolean>;
|
|
2517
|
+
readonly searchMode: _angular_core.InputSignal<TransferListSearchMode>;
|
|
2518
|
+
readonly searchPlaceholder: _angular_core.InputSignal<string | [string, string]>;
|
|
2519
|
+
readonly sourceSearchQuery: _angular_core.InputSignal<string>;
|
|
2520
|
+
readonly targetSearchQuery: _angular_core.InputSignal<string>;
|
|
2521
|
+
readonly searchDebounce: _angular_core.InputSignal<number>;
|
|
2522
|
+
readonly searchHandler: _angular_core.InputSignal<TransferListSearchHandler<T> | null>;
|
|
2523
|
+
readonly sourceSearchHandler: _angular_core.InputSignal<((query: string) => Observable<T[]> | Promise<T[]> | T[]) | null>;
|
|
2524
|
+
readonly targetSearchHandler: _angular_core.InputSignal<((query: string) => Observable<T[]> | Promise<T[]> | T[]) | null>;
|
|
2525
|
+
readonly sourceLoading: _angular_core.InputSignal<boolean>;
|
|
2526
|
+
readonly targetLoading: _angular_core.InputSignal<boolean>;
|
|
2527
|
+
readonly loading: _angular_core.InputSignal<boolean>;
|
|
2528
|
+
readonly disabled: _angular_core.InputSignal<boolean>;
|
|
2529
|
+
readonly showSelectAll: _angular_core.InputSignal<boolean>;
|
|
2530
|
+
readonly showMoveAll: _angular_core.InputSignal<boolean>;
|
|
2531
|
+
readonly showReorder: _angular_core.InputSignal<boolean>;
|
|
2532
|
+
readonly dragDrop: _angular_core.InputSignal<boolean>;
|
|
2533
|
+
readonly dragMode: _angular_core.InputSignal<TransferListDragMode>;
|
|
2534
|
+
readonly dragHandle: _angular_core.InputSignal<boolean | null>;
|
|
2535
|
+
readonly size: _angular_core.InputSignal<TransferListSize>;
|
|
2536
|
+
readonly variant: _angular_core.InputSignal<TransferListVariant>;
|
|
2537
|
+
readonly height: _angular_core.InputSignal<string | number | null>;
|
|
2538
|
+
readonly listWidth: _angular_core.InputSignal<string | number | null>;
|
|
2539
|
+
readonly itemKey: _angular_core.InputSignal<TransferListItemKeyFn<T> | keyof T | null>;
|
|
2540
|
+
readonly itemLabel: _angular_core.InputSignal<keyof T | TransferListItemLabelFn<T> | null>;
|
|
2541
|
+
readonly itemDescription: _angular_core.InputSignal<keyof T | TransferListItemDescriptionFn<T> | null>;
|
|
2542
|
+
readonly itemDisabled: _angular_core.InputSignal<keyof T | TransferListItemDisabledFn<T> | null>;
|
|
2543
|
+
readonly filterFn: _angular_core.InputSignal<TransferListFilterFn<T> | null>;
|
|
2544
|
+
readonly itemTemplate: _angular_core.InputSignal<TemplateRef<TalosTransferListItemContext<T>> | null>;
|
|
2545
|
+
readonly emptySourceText: _angular_core.InputSignal<string>;
|
|
2546
|
+
readonly emptyTargetText: _angular_core.InputSignal<string>;
|
|
2547
|
+
readonly searchingText: _angular_core.InputSignal<string>;
|
|
2548
|
+
readonly noMatchesText: _angular_core.InputSignal<string>;
|
|
2549
|
+
readonly id: _angular_core.InputSignal<string>;
|
|
2550
|
+
readonly isSourceSearching: _angular_core.Signal<boolean>;
|
|
2551
|
+
readonly isTargetSearching: _angular_core.Signal<boolean>;
|
|
2552
|
+
readonly useDragHandle: _angular_core.Signal<boolean>;
|
|
2553
|
+
readonly sourceChange: _angular_core.OutputEmitterRef<T[]>;
|
|
2554
|
+
readonly targetChange: _angular_core.OutputEmitterRef<T[]>;
|
|
2555
|
+
readonly transfer: _angular_core.OutputEmitterRef<TalosTransferEvent<T>>;
|
|
2556
|
+
readonly search: _angular_core.OutputEmitterRef<TransferListSearchQueryEvent>;
|
|
2557
|
+
readonly sourceSearchChange: _angular_core.OutputEmitterRef<string>;
|
|
2558
|
+
readonly targetSearchChange: _angular_core.OutputEmitterRef<string>;
|
|
2559
|
+
readonly searchError: _angular_core.OutputEmitterRef<TransferListSearchErrorEvent>;
|
|
2560
|
+
readonly selectionChange: _angular_core.OutputEmitterRef<TalosTransferSelectionChange<T>>;
|
|
2561
|
+
readonly targetReorder: _angular_core.OutputEmitterRef<T[]>;
|
|
2562
|
+
private readonly autoId;
|
|
2563
|
+
readonly componentId: _angular_core.Signal<string>;
|
|
2564
|
+
private readonly formDisabled;
|
|
2565
|
+
readonly effectiveDisabled: _angular_core.Signal<boolean>;
|
|
2566
|
+
readonly internalSource: _angular_core.WritableSignal<T[]>;
|
|
2567
|
+
readonly internalTarget: _angular_core.WritableSignal<T[]>;
|
|
2568
|
+
readonly sourceSelectedKeys: _angular_core.WritableSignal<Set<string | number>>;
|
|
2569
|
+
readonly targetSelectedKeys: _angular_core.WritableSignal<Set<string | number>>;
|
|
2570
|
+
readonly internalSourceQuery: _angular_core.WritableSignal<string>;
|
|
2571
|
+
readonly internalTargetQuery: _angular_core.WritableSignal<string>;
|
|
2572
|
+
readonly internalSourceLoading: _angular_core.WritableSignal<boolean>;
|
|
2573
|
+
readonly internalTargetLoading: _angular_core.WritableSignal<boolean>;
|
|
2574
|
+
readonly effectiveSourceLoading: _angular_core.Signal<boolean>;
|
|
2575
|
+
readonly effectiveTargetLoading: _angular_core.Signal<boolean>;
|
|
2576
|
+
private readonly sourceSearchSubject$;
|
|
2577
|
+
private readonly targetSearchSubject$;
|
|
2578
|
+
private readonly destroyRef;
|
|
2579
|
+
private onChange;
|
|
2580
|
+
private onTouched;
|
|
2581
|
+
constructor();
|
|
2582
|
+
readonly sourcePlaceholder: _angular_core.Signal<string>;
|
|
2583
|
+
readonly targetPlaceholder: _angular_core.Signal<string>;
|
|
2584
|
+
readonly containerHeight: _angular_core.Signal<string>;
|
|
2585
|
+
readonly effectivePaneWidth: _angular_core.Signal<string | null>;
|
|
2586
|
+
getItemKey(item: T, fallbackIndex?: number): string | number;
|
|
2587
|
+
getItemLabel(item: T): string;
|
|
2588
|
+
getItemDescription(item: T): string | undefined;
|
|
2589
|
+
isItemDisabled(item: T): boolean;
|
|
2590
|
+
readonly filteredSource: _angular_core.Signal<T[]>;
|
|
2591
|
+
readonly filteredTarget: _angular_core.Signal<T[]>;
|
|
2592
|
+
readonly sourceSelectedCount: _angular_core.Signal<number>;
|
|
2593
|
+
readonly isSourceAllSelected: _angular_core.Signal<boolean>;
|
|
2594
|
+
readonly isSourceIndeterminate: _angular_core.Signal<boolean>;
|
|
2595
|
+
readonly targetSelectedCount: _angular_core.Signal<number>;
|
|
2596
|
+
readonly isTargetAllSelected: _angular_core.Signal<boolean>;
|
|
2597
|
+
readonly isTargetIndeterminate: _angular_core.Signal<boolean>;
|
|
2598
|
+
getItemContext(item: T, pane: TransferListPane, index: number): TalosTransferListItemContext<T>;
|
|
2599
|
+
toggleSourceItem(item: T): void;
|
|
2600
|
+
toggleTargetItem(item: T): void;
|
|
2601
|
+
toggleSelectAllSource(): void;
|
|
2602
|
+
toggleSelectAllTarget(): void;
|
|
2603
|
+
private emitSelectionChange;
|
|
2604
|
+
private pruneSelections;
|
|
2605
|
+
onSourceSearch(value: string): void;
|
|
2606
|
+
onTargetSearch(value: string): void;
|
|
2607
|
+
clearSourceSearch(): void;
|
|
2608
|
+
clearTargetSearch(): void;
|
|
2609
|
+
/**
|
|
2610
|
+
* Process asynchronous server-side search request via configured handlers.
|
|
2611
|
+
*/
|
|
2612
|
+
private processSearchRequest;
|
|
2613
|
+
moveToTarget(): void;
|
|
2614
|
+
moveAllToTarget(): void;
|
|
2615
|
+
moveToSource(): void;
|
|
2616
|
+
moveAllToSource(): void;
|
|
2617
|
+
moveTargetTop(): void;
|
|
2618
|
+
moveTargetUp(): void;
|
|
2619
|
+
moveTargetDown(): void;
|
|
2620
|
+
moveTargetBottom(): void;
|
|
2621
|
+
onCdkDrop(event: CdkDragDrop<T[]>): void;
|
|
2622
|
+
private notifyChanges;
|
|
2623
|
+
writeValue(value: unknown): void;
|
|
2624
|
+
registerOnChange(fn: (value: unknown) => void): void;
|
|
2625
|
+
registerOnTouched(fn: () => void): void;
|
|
2626
|
+
setDisabledState?(isDisabled: boolean): void;
|
|
2627
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<TalosTransferListComponent<any>, never>;
|
|
2628
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<TalosTransferListComponent<any>, "talos-transfer-list", never, { "source": { "alias": "source"; "required": false; "isSignal": true; }; "target": { "alias": "target"; "required": false; "isSignal": true; }; "titles": { "alias": "titles"; "required": false; "isSignal": true; }; "searchable": { "alias": "searchable"; "required": false; "isSignal": true; }; "searchMode": { "alias": "searchMode"; "required": false; "isSignal": true; }; "searchPlaceholder": { "alias": "searchPlaceholder"; "required": false; "isSignal": true; }; "sourceSearchQuery": { "alias": "sourceSearchQuery"; "required": false; "isSignal": true; }; "targetSearchQuery": { "alias": "targetSearchQuery"; "required": false; "isSignal": true; }; "searchDebounce": { "alias": "searchDebounce"; "required": false; "isSignal": true; }; "searchHandler": { "alias": "searchHandler"; "required": false; "isSignal": true; }; "sourceSearchHandler": { "alias": "sourceSearchHandler"; "required": false; "isSignal": true; }; "targetSearchHandler": { "alias": "targetSearchHandler"; "required": false; "isSignal": true; }; "sourceLoading": { "alias": "sourceLoading"; "required": false; "isSignal": true; }; "targetLoading": { "alias": "targetLoading"; "required": false; "isSignal": true; }; "loading": { "alias": "loading"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "showSelectAll": { "alias": "showSelectAll"; "required": false; "isSignal": true; }; "showMoveAll": { "alias": "showMoveAll"; "required": false; "isSignal": true; }; "showReorder": { "alias": "showReorder"; "required": false; "isSignal": true; }; "dragDrop": { "alias": "dragDrop"; "required": false; "isSignal": true; }; "dragMode": { "alias": "dragMode"; "required": false; "isSignal": true; }; "dragHandle": { "alias": "dragHandle"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; "variant": { "alias": "variant"; "required": false; "isSignal": true; }; "height": { "alias": "height"; "required": false; "isSignal": true; }; "listWidth": { "alias": "listWidth"; "required": false; "isSignal": true; }; "itemKey": { "alias": "itemKey"; "required": false; "isSignal": true; }; "itemLabel": { "alias": "itemLabel"; "required": false; "isSignal": true; }; "itemDescription": { "alias": "itemDescription"; "required": false; "isSignal": true; }; "itemDisabled": { "alias": "itemDisabled"; "required": false; "isSignal": true; }; "filterFn": { "alias": "filterFn"; "required": false; "isSignal": true; }; "itemTemplate": { "alias": "itemTemplate"; "required": false; "isSignal": true; }; "emptySourceText": { "alias": "emptySourceText"; "required": false; "isSignal": true; }; "emptyTargetText": { "alias": "emptyTargetText"; "required": false; "isSignal": true; }; "searchingText": { "alias": "searchingText"; "required": false; "isSignal": true; }; "noMatchesText": { "alias": "noMatchesText"; "required": false; "isSignal": true; }; "id": { "alias": "id"; "required": false; "isSignal": true; }; }, { "sourceChange": "sourceChange"; "targetChange": "targetChange"; "transfer": "transfer"; "search": "search"; "sourceSearchChange": "sourceSearchChange"; "targetSearchChange": "targetSearchChange"; "searchError": "searchError"; "selectionChange": "selectionChange"; "targetReorder": "targetReorder"; }, never, never, true, never>;
|
|
2629
|
+
}
|
|
2630
|
+
|
|
2631
|
+
declare class TalosTransferListModule {
|
|
2632
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<TalosTransferListModule, never>;
|
|
2633
|
+
static ɵmod: _angular_core.ɵɵNgModuleDeclaration<TalosTransferListModule, never, [typeof TalosTransferListComponent], [typeof TalosTransferListComponent]>;
|
|
2634
|
+
static ɵinj: _angular_core.ɵɵInjectorDeclaration<TalosTransferListModule>;
|
|
2635
|
+
}
|
|
2636
|
+
|
|
2637
|
+
export { CascadeSelectComponent, DEFAULT_COLOR_PRESETS, DEFAULT_PASSWORD_RULES, DEFAULT_STRENGTH_LABELS, DatePickerComponent, DateRangePickerComponent, DateTimePickerComponent, DateTimeRangePickerComponent, OptionComponent, OptionGroupComponent, SelectInputComponent, SelectInputModule, TALOS_PRESIGNED_UPLOAD_CONFIG, TALOS_PRESIGNED_URL_HANDLER, TalosAffixButtonDirective, TalosAffixModule, TalosAutocompleteComponent, TalosAutocompleteModule, TalosCheckboxComponent, TalosCheckboxDirective, TalosCheckboxGroupComponent, TalosCheckboxGroupDirective, TalosCheckboxModule, TalosCheckboxParentDirective, TalosChipComponent, TalosChipsComponent, TalosChipsModule, TalosColorPickerComponent, TalosColorPickerModule, TalosDropZoneComponent, TalosDropZoneModule, TalosFileDropDirective, TalosFileUploadProgressComponent, TalosFormFieldComponent, TalosFormFieldModule, TalosInputDirective, TalosNumberInputComponent, TalosNumberInputModule, TalosOtpComponent, TalosOtpModule, TalosPasswordInputComponent, TalosPasswordInputDirective, TalosPasswordInputModule, TalosPrefixDirective, TalosPresignedFileUploadComponent, TalosPresignedUploadService, TalosRadioComponent, TalosRadioDirective, TalosRadioGroupComponent, TalosRadioModule, TalosRangeInputComponent, TalosRangeInputDirective, TalosRangeInputModule, TalosRatingComponent, TalosRatingModule, TalosSlideToggleComponent, TalosSlideToggleDirective, TalosSlideToggleModule, TalosSuffixDirective, TalosTextPrefixDirective, TalosTextSuffixDirective, TalosTransferListComponent, TalosTransferListModule };
|
|
2638
|
+
export type { AffixAnimation, AffixFeedbackState, AffixPosition, AutocompleteDisplayFn, AutocompleteFilterFn, AutocompleteHighlightPart, AutocompleteItemContext, AutocompleteSize, AutocompleteValueFn, CalendarDay, CalendarMonth, CalendarYear, CascadeExpandTrigger, CascadeOption, CascadeSearchMatch, CascadeValueMode, CheckboxDirection, CheckboxSize, CheckboxVariant, ChipColor, ChipDisplayFn, ChipFilterFn, ChipHighlightPart, ChipItemContext, ChipSize, ChipValueFn, ChipVariant, ColorChangeEvent, ColorPickerSize, ColorPresetGroup, ColorPresetItem, ColumnData, DateRangePreset, DateRangeValue, DropZoneChangeEvent, DropZoneFile, DropZoneFileStatus, DropZoneRejection, DropZoneSize, DropZoneValidatorFn, DropZoneVariant, FileRejectionReason, FormattedAutocompleteOption, FormattedChipOption, InputSize, InternalDateRange, NumberInputSize, NumberInputStepEvent, NumberStepperVariant, OtpCompletedEvent, OtpInputType, OtpSize, OtpSplitConfig, OtpVariant, PasswordInputSize, PasswordMeterVariant, PasswordRule, PasswordRuleStatus, PasswordStrengthLevel, PasswordStrengthResult, PresignedUploadConfig, PresignedUrlHandlerFn, PresignedUrlRequest, PresignedUrlResponse, RadioDirection, RadioSize, RadioVariant, RangeCalendarDay, RangeInputChangeEvent, RangeInputMark, RangeInputSize, RangeInputTick, RangeInputTooltipMode, RangeInputValue, RangeInputVariant, RatingAnimationMode, RatingChangeEvent, RatingHoverEvent, RatingLabelPosition, RatingSize, RatingVariant, SelectedChipData, SlideToggleLabelPosition, SlideToggleSize, SlideToggleVariant, TalosTransferEvent, TalosTransferItem, TalosTransferListItemContext, TalosTransferSelectionChange, TransferListDirection, TransferListDragMode, TransferListFilterFn, TransferListItemDescriptionFn, TransferListItemDisabledFn, TransferListItemKeyFn, TransferListItemLabelFn, TransferListPane, TransferListSearchErrorEvent, TransferListSearchHandler, TransferListSearchMode, TransferListSearchQueryEvent, TransferListSize, TransferListVariant, UploadFileOptions, UploadProgressEvent, UploadTask, UploadTaskStatus };
|
|
2639
|
+
//# sourceMappingURL=weeehaoooz-talos-ui-form.d.ts.map
|