@area8975/ui 0.1.0
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 +139 -0
- package/fesm2022/area8975-ui.mjs +11511 -0
- package/fesm2022/area8975-ui.mjs.map +1 -0
- package/fonts/Inter-VariableFont_opsz,wght.woff2 +0 -0
- package/fonts/UbuntuSans-VariableFont_wdth,wght.woff2 +0 -0
- package/package.json +36 -0
- package/styles/typography.css +52 -0
- package/theme.css +113 -0
- package/types/area8975-ui.d.ts +3135 -0
|
@@ -0,0 +1,3135 @@
|
|
|
1
|
+
import ApexCharts$1 from "apexcharts";
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
import { ElementRef, OnDestroy, OnInit, TemplateRef, WritableSignal } from "@angular/core";
|
|
4
|
+
import { Placement } from "@floating-ui/dom";
|
|
5
|
+
import { Observable } from "rxjs";
|
|
6
|
+
/**
|
|
7
|
+
* Categorical colours for chart series, in a fixed order that was checked for
|
|
8
|
+
* colour blindness (adjacent pairs stay apart for protan, deutan and tritan).
|
|
9
|
+
* Keep the order, a series takes the next slot, never a generated colour.
|
|
10
|
+
*/
|
|
11
|
+
declare const CHART_PALETTE: readonly ["#2a78d6", "#eb6834", "#1baf7a", "#eda100", "#e87ba4", "#008300", "#4a3aa7", "#e34948"];
|
|
12
|
+
/** Past eight series, fold the rest into "Other" instead of reusing a colour. */
|
|
13
|
+
declare const CHART_MAX_SERIES: 8;
|
|
14
|
+
/** Lines can go to sixteen, the second eight reuse the colours dashed. */
|
|
15
|
+
declare const CHART_MAX_LINE_SERIES: number;
|
|
16
|
+
declare const CHART_INK: {
|
|
17
|
+
readonly text: "#1e2939";
|
|
18
|
+
readonly muted: "#6a7282";
|
|
19
|
+
readonly grid: "#e5e7eb";
|
|
20
|
+
readonly surface: "#ffffff";
|
|
21
|
+
readonly context: "#d1d5dc";
|
|
22
|
+
};
|
|
23
|
+
interface ChartSeriesStyle {
|
|
24
|
+
colour: string;
|
|
25
|
+
dashed: boolean;
|
|
26
|
+
}
|
|
27
|
+
/** Past the eighth slot a series goes grey, reusing a colour would make two series look the same. */
|
|
28
|
+
declare function chartColour(index: number): string;
|
|
29
|
+
/**
|
|
30
|
+
* Colour plus line style for a slot. With `dashes` the ninth to sixteenth
|
|
31
|
+
* slots reuse the colours as dashed lines, colour and dash together keep
|
|
32
|
+
* them apart. Anything past that is grey.
|
|
33
|
+
*/
|
|
34
|
+
declare function chartSeriesStyle(index: number, dashes: boolean): ChartSeriesStyle;
|
|
35
|
+
export type ChartOptions = ApexCharts$1.ApexOptions;
|
|
36
|
+
/** One named set of values, one per category. */
|
|
37
|
+
export interface ChartSeries {
|
|
38
|
+
name: string;
|
|
39
|
+
data: (number | null)[];
|
|
40
|
+
/** Overrides the palette slot, keep it for when a series must match something else. */
|
|
41
|
+
colour?: string;
|
|
42
|
+
}
|
|
43
|
+
/** Turns a raw value into what the axis, tooltip and table show, e.g. money. */
|
|
44
|
+
export type ChartValueFormatter = (value: number) => string;
|
|
45
|
+
/** Inputs every chart with categories along one axis and values up the other shares. */
|
|
46
|
+
declare abstract class UiAxisChartBase {
|
|
47
|
+
readonly series: import("@angular/core").InputSignal<ChartSeries[]>;
|
|
48
|
+
readonly categories: import("@angular/core").InputSignal<string[]>;
|
|
49
|
+
/** Says what the chart shows, e.g. "Spending by month". */
|
|
50
|
+
readonly ariaLabel: import("@angular/core").InputSignal<string>;
|
|
51
|
+
readonly height: import("@angular/core").InputSignal<number>;
|
|
52
|
+
/** Used on the value axis, the tooltip and the table, e.g. to show money. */
|
|
53
|
+
readonly valueFormatter: import("@angular/core").InputSignal<ChartValueFormatter>;
|
|
54
|
+
/** Heading for the category column in the data table. */
|
|
55
|
+
readonly categoryLabel: import("@angular/core").InputSignal<string>;
|
|
56
|
+
readonly loading: import("@angular/core").InputSignalWithTransform<boolean, unknown>;
|
|
57
|
+
readonly emptyText: import("@angular/core").InputSignal<string>;
|
|
58
|
+
/** Shows the data table under the chart instead of only to screen readers. */
|
|
59
|
+
readonly showTable: import("@angular/core").InputSignalWithTransform<boolean, unknown>;
|
|
60
|
+
/** Raw ApexCharts options merged over the defaults, for anything not covered here. */
|
|
61
|
+
readonly options: import("@angular/core").InputSignal<ApexCharts.ApexOptions | null>;
|
|
62
|
+
/**
|
|
63
|
+
* Only these series get palette colours, the rest go grey so the few that
|
|
64
|
+
* matter stand out. The way to show more series than there are colours.
|
|
65
|
+
*/
|
|
66
|
+
readonly highlight: import("@angular/core").InputSignal<string[] | null>;
|
|
67
|
+
/** Series switched off in the legend. */
|
|
68
|
+
protected readonly hiddenSeries: import("@angular/core").WritableSignal<string[]>;
|
|
69
|
+
/** Charts that draw lines can tell series apart by dashes too, bars can't. */
|
|
70
|
+
protected readonly supportsDashes: boolean;
|
|
71
|
+
protected readonly isEmpty: import("@angular/core").Signal<boolean>;
|
|
72
|
+
protected readonly isMuted: import("@angular/core").Signal<boolean[]>;
|
|
73
|
+
protected readonly styles: import("@angular/core").Signal<ChartSeriesStyle[]>;
|
|
74
|
+
protected readonly colours: import("@angular/core").Signal<string[]>;
|
|
75
|
+
protected readonly dashed: import("@angular/core").Signal<boolean[]>;
|
|
76
|
+
/** Grey context series stay out of the legend, the note says how many there are. */
|
|
77
|
+
protected readonly legendItems: import("@angular/core").Signal<{
|
|
78
|
+
colour: string;
|
|
79
|
+
dashed: boolean;
|
|
80
|
+
name: string;
|
|
81
|
+
}[]>;
|
|
82
|
+
protected readonly legendNote: import("@angular/core").Signal<string>;
|
|
83
|
+
protected formatValue(value: number | null | undefined): string;
|
|
84
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<UiAxisChartBase, never>;
|
|
85
|
+
static ɵdir: i0.ɵɵDirectiveDeclaration<UiAxisChartBase, never, never, {
|
|
86
|
+
"series": {
|
|
87
|
+
"alias": "series";
|
|
88
|
+
"required": true;
|
|
89
|
+
"isSignal": true;
|
|
90
|
+
};
|
|
91
|
+
"categories": {
|
|
92
|
+
"alias": "categories";
|
|
93
|
+
"required": true;
|
|
94
|
+
"isSignal": true;
|
|
95
|
+
};
|
|
96
|
+
"ariaLabel": {
|
|
97
|
+
"alias": "ariaLabel";
|
|
98
|
+
"required": true;
|
|
99
|
+
"isSignal": true;
|
|
100
|
+
};
|
|
101
|
+
"height": {
|
|
102
|
+
"alias": "height";
|
|
103
|
+
"required": false;
|
|
104
|
+
"isSignal": true;
|
|
105
|
+
};
|
|
106
|
+
"valueFormatter": {
|
|
107
|
+
"alias": "valueFormatter";
|
|
108
|
+
"required": false;
|
|
109
|
+
"isSignal": true;
|
|
110
|
+
};
|
|
111
|
+
"categoryLabel": {
|
|
112
|
+
"alias": "categoryLabel";
|
|
113
|
+
"required": false;
|
|
114
|
+
"isSignal": true;
|
|
115
|
+
};
|
|
116
|
+
"loading": {
|
|
117
|
+
"alias": "loading";
|
|
118
|
+
"required": false;
|
|
119
|
+
"isSignal": true;
|
|
120
|
+
};
|
|
121
|
+
"emptyText": {
|
|
122
|
+
"alias": "emptyText";
|
|
123
|
+
"required": false;
|
|
124
|
+
"isSignal": true;
|
|
125
|
+
};
|
|
126
|
+
"showTable": {
|
|
127
|
+
"alias": "showTable";
|
|
128
|
+
"required": false;
|
|
129
|
+
"isSignal": true;
|
|
130
|
+
};
|
|
131
|
+
"options": {
|
|
132
|
+
"alias": "options";
|
|
133
|
+
"required": false;
|
|
134
|
+
"isSignal": true;
|
|
135
|
+
};
|
|
136
|
+
"highlight": {
|
|
137
|
+
"alias": "highlight";
|
|
138
|
+
"required": false;
|
|
139
|
+
"isSignal": true;
|
|
140
|
+
};
|
|
141
|
+
}, {}, never, never, true, never>;
|
|
142
|
+
}
|
|
143
|
+
/**
|
|
144
|
+
* Bars or columns for comparing amounts across categories. Several series
|
|
145
|
+
* sit side by side, or on top of each other with `stacked`.
|
|
146
|
+
*/
|
|
147
|
+
export declare class UiBarChartComponent extends UiAxisChartBase {
|
|
148
|
+
readonly orientation: import("@angular/core").InputSignal<"vertical" | "horizontal">;
|
|
149
|
+
readonly stacked: import("@angular/core").InputSignalWithTransform<boolean, unknown>;
|
|
150
|
+
protected readonly chartOptions: import("@angular/core").Signal<ApexCharts.ApexOptions>;
|
|
151
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<UiBarChartComponent, never>;
|
|
152
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<UiBarChartComponent, "ui-bar-chart", never, {
|
|
153
|
+
"orientation": {
|
|
154
|
+
"alias": "orientation";
|
|
155
|
+
"required": false;
|
|
156
|
+
"isSignal": true;
|
|
157
|
+
};
|
|
158
|
+
"stacked": {
|
|
159
|
+
"alias": "stacked";
|
|
160
|
+
"required": false;
|
|
161
|
+
"isSignal": true;
|
|
162
|
+
};
|
|
163
|
+
}, {}, never, never, true, never>;
|
|
164
|
+
}
|
|
165
|
+
/** vertical draws columns rising from the bottom, horizontal draws bars from the left. */
|
|
166
|
+
export declare const BarChartOrientations: readonly ["vertical", "horizontal"];
|
|
167
|
+
/** @see {@link BarChartOrientations} */
|
|
168
|
+
export type BarChartOrientation = typeof BarChartOrientations[number];
|
|
169
|
+
/**
|
|
170
|
+
* Draws raw ApexCharts options. The typed charts (bar, line and so on) are
|
|
171
|
+
* built on this, reach for it directly only when they can't do what you need.
|
|
172
|
+
*/
|
|
173
|
+
export declare class UiChartComponent {
|
|
174
|
+
readonly options: import("@angular/core").InputSignal<ApexCharts$1.ApexOptions>;
|
|
175
|
+
/** What the chart shows, e.g. "Spending by month". Screen readers get this instead of the SVG. */
|
|
176
|
+
readonly ariaLabel: import("@angular/core").InputSignal<string>;
|
|
177
|
+
/** Series names to keep off the plot, e.g. switched off in the legend. */
|
|
178
|
+
readonly hiddenSeries: import("@angular/core").InputSignal<string[]>;
|
|
179
|
+
/** Fades every other series so this one stands out, e.g. while its legend item is hovered. */
|
|
180
|
+
readonly emphasis: import("@angular/core").InputSignal<string | null>;
|
|
181
|
+
private readonly canvas;
|
|
182
|
+
private readonly chart;
|
|
183
|
+
private destroyed;
|
|
184
|
+
constructor();
|
|
185
|
+
private applyHidden;
|
|
186
|
+
private applyEmphasis;
|
|
187
|
+
private seriesNames;
|
|
188
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<UiChartComponent, never>;
|
|
189
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<UiChartComponent, "ui-chart", never, {
|
|
190
|
+
"options": {
|
|
191
|
+
"alias": "options";
|
|
192
|
+
"required": true;
|
|
193
|
+
"isSignal": true;
|
|
194
|
+
};
|
|
195
|
+
"ariaLabel": {
|
|
196
|
+
"alias": "ariaLabel";
|
|
197
|
+
"required": true;
|
|
198
|
+
"isSignal": true;
|
|
199
|
+
};
|
|
200
|
+
"hiddenSeries": {
|
|
201
|
+
"alias": "hiddenSeries";
|
|
202
|
+
"required": false;
|
|
203
|
+
"isSignal": true;
|
|
204
|
+
};
|
|
205
|
+
"emphasis": {
|
|
206
|
+
"alias": "emphasis";
|
|
207
|
+
"required": false;
|
|
208
|
+
"isSignal": true;
|
|
209
|
+
};
|
|
210
|
+
}, {}, never, never, true, never>;
|
|
211
|
+
}
|
|
212
|
+
/** One entry in a legend, the colour ties it to its marks. */
|
|
213
|
+
export interface ChartLegendItem {
|
|
214
|
+
name: string;
|
|
215
|
+
colour: string;
|
|
216
|
+
/** Shows the key as a dashed line, for series told apart by line style. */
|
|
217
|
+
dashed?: boolean;
|
|
218
|
+
}
|
|
219
|
+
/** The loading, empty and data table states around a chart, shared by every chart type. */
|
|
220
|
+
export declare class UiChartFrameComponent {
|
|
221
|
+
readonly options: import("@angular/core").InputSignal<ApexCharts.ApexOptions>;
|
|
222
|
+
readonly ariaLabel: import("@angular/core").InputSignal<string>;
|
|
223
|
+
readonly categories: import("@angular/core").InputSignal<string[]>;
|
|
224
|
+
readonly series: import("@angular/core").InputSignal<ChartSeries[]>;
|
|
225
|
+
readonly legendItems: import("@angular/core").InputSignal<ChartLegendItem[]>;
|
|
226
|
+
readonly legendNote: import("@angular/core").InputSignal<string>;
|
|
227
|
+
readonly hiddenSeries: import("@angular/core").ModelSignal<string[]>;
|
|
228
|
+
readonly valueFormatter: import("@angular/core").InputSignal<ChartValueFormatter>;
|
|
229
|
+
readonly categoryLabel: import("@angular/core").InputSignal<string>;
|
|
230
|
+
readonly height: import("@angular/core").InputSignal<number>;
|
|
231
|
+
readonly emptyText: import("@angular/core").InputSignal<string>;
|
|
232
|
+
readonly loading: import("@angular/core").InputSignalWithTransform<boolean, unknown>;
|
|
233
|
+
readonly empty: import("@angular/core").InputSignalWithTransform<boolean, unknown>;
|
|
234
|
+
readonly showTable: import("@angular/core").InputSignalWithTransform<boolean, unknown>;
|
|
235
|
+
/** The series the legend is pointing at, the others fade while it's set. */
|
|
236
|
+
protected readonly emphasis: import("@angular/core").WritableSignal<string | null>;
|
|
237
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<UiChartFrameComponent, never>;
|
|
238
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<UiChartFrameComponent, "ui-chart-frame", never, {
|
|
239
|
+
"options": {
|
|
240
|
+
"alias": "options";
|
|
241
|
+
"required": true;
|
|
242
|
+
"isSignal": true;
|
|
243
|
+
};
|
|
244
|
+
"ariaLabel": {
|
|
245
|
+
"alias": "ariaLabel";
|
|
246
|
+
"required": true;
|
|
247
|
+
"isSignal": true;
|
|
248
|
+
};
|
|
249
|
+
"categories": {
|
|
250
|
+
"alias": "categories";
|
|
251
|
+
"required": true;
|
|
252
|
+
"isSignal": true;
|
|
253
|
+
};
|
|
254
|
+
"series": {
|
|
255
|
+
"alias": "series";
|
|
256
|
+
"required": true;
|
|
257
|
+
"isSignal": true;
|
|
258
|
+
};
|
|
259
|
+
"legendItems": {
|
|
260
|
+
"alias": "legendItems";
|
|
261
|
+
"required": true;
|
|
262
|
+
"isSignal": true;
|
|
263
|
+
};
|
|
264
|
+
"legendNote": {
|
|
265
|
+
"alias": "legendNote";
|
|
266
|
+
"required": false;
|
|
267
|
+
"isSignal": true;
|
|
268
|
+
};
|
|
269
|
+
"hiddenSeries": {
|
|
270
|
+
"alias": "hiddenSeries";
|
|
271
|
+
"required": false;
|
|
272
|
+
"isSignal": true;
|
|
273
|
+
};
|
|
274
|
+
"valueFormatter": {
|
|
275
|
+
"alias": "valueFormatter";
|
|
276
|
+
"required": true;
|
|
277
|
+
"isSignal": true;
|
|
278
|
+
};
|
|
279
|
+
"categoryLabel": {
|
|
280
|
+
"alias": "categoryLabel";
|
|
281
|
+
"required": true;
|
|
282
|
+
"isSignal": true;
|
|
283
|
+
};
|
|
284
|
+
"height": {
|
|
285
|
+
"alias": "height";
|
|
286
|
+
"required": true;
|
|
287
|
+
"isSignal": true;
|
|
288
|
+
};
|
|
289
|
+
"emptyText": {
|
|
290
|
+
"alias": "emptyText";
|
|
291
|
+
"required": true;
|
|
292
|
+
"isSignal": true;
|
|
293
|
+
};
|
|
294
|
+
"loading": {
|
|
295
|
+
"alias": "loading";
|
|
296
|
+
"required": false;
|
|
297
|
+
"isSignal": true;
|
|
298
|
+
};
|
|
299
|
+
"empty": {
|
|
300
|
+
"alias": "empty";
|
|
301
|
+
"required": false;
|
|
302
|
+
"isSignal": true;
|
|
303
|
+
};
|
|
304
|
+
"showTable": {
|
|
305
|
+
"alias": "showTable";
|
|
306
|
+
"required": false;
|
|
307
|
+
"isSignal": true;
|
|
308
|
+
};
|
|
309
|
+
}, {
|
|
310
|
+
"hiddenSeries": "hiddenSeriesChange";
|
|
311
|
+
}, never, never, true, never>;
|
|
312
|
+
}
|
|
313
|
+
/**
|
|
314
|
+
* The numbers behind a chart as a table. Hidden visually by default so screen
|
|
315
|
+
* readers still get the data, `visible` shows it for everyone.
|
|
316
|
+
*/
|
|
317
|
+
export declare class UiChartTableComponent {
|
|
318
|
+
readonly caption: import("@angular/core").InputSignal<string>;
|
|
319
|
+
readonly categories: import("@angular/core").InputSignal<string[]>;
|
|
320
|
+
readonly series: import("@angular/core").InputSignal<ChartSeries[]>;
|
|
321
|
+
readonly valueFormatter: import("@angular/core").InputSignal<ChartValueFormatter>;
|
|
322
|
+
readonly categoryLabel: import("@angular/core").InputSignal<string>;
|
|
323
|
+
readonly visible: import("@angular/core").InputSignalWithTransform<boolean, unknown>;
|
|
324
|
+
protected format(value: number | null | undefined): string;
|
|
325
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<UiChartTableComponent, never>;
|
|
326
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<UiChartTableComponent, "ui-chart-table", never, {
|
|
327
|
+
"caption": {
|
|
328
|
+
"alias": "caption";
|
|
329
|
+
"required": true;
|
|
330
|
+
"isSignal": true;
|
|
331
|
+
};
|
|
332
|
+
"categories": {
|
|
333
|
+
"alias": "categories";
|
|
334
|
+
"required": true;
|
|
335
|
+
"isSignal": true;
|
|
336
|
+
};
|
|
337
|
+
"series": {
|
|
338
|
+
"alias": "series";
|
|
339
|
+
"required": true;
|
|
340
|
+
"isSignal": true;
|
|
341
|
+
};
|
|
342
|
+
"valueFormatter": {
|
|
343
|
+
"alias": "valueFormatter";
|
|
344
|
+
"required": true;
|
|
345
|
+
"isSignal": true;
|
|
346
|
+
};
|
|
347
|
+
"categoryLabel": {
|
|
348
|
+
"alias": "categoryLabel";
|
|
349
|
+
"required": false;
|
|
350
|
+
"isSignal": true;
|
|
351
|
+
};
|
|
352
|
+
"visible": {
|
|
353
|
+
"alias": "visible";
|
|
354
|
+
"required": false;
|
|
355
|
+
"isSignal": true;
|
|
356
|
+
};
|
|
357
|
+
}, {}, never, never, true, never>;
|
|
358
|
+
}
|
|
359
|
+
/**
|
|
360
|
+
* A row of colour keys naming what each colour means. Charts use it above
|
|
361
|
+
* the plot, but it works next to anything coloured by series.
|
|
362
|
+
*/
|
|
363
|
+
export declare class UiChartLegendComponent {
|
|
364
|
+
readonly items: import("@angular/core").InputSignal<ChartLegendItem[]>;
|
|
365
|
+
/** Names of items switched off, bound two-way when `toggleable`. */
|
|
366
|
+
readonly hidden: import("@angular/core").ModelSignal<string[]>;
|
|
367
|
+
/** Lets each item be clicked to hide or show its series. */
|
|
368
|
+
readonly toggleable: import("@angular/core").InputSignalWithTransform<boolean, unknown>;
|
|
369
|
+
/** The item being hovered or focused, null when it leaves. Charts fade the other series. */
|
|
370
|
+
readonly focusChange: import("@angular/core").OutputEmitterRef<string | null>;
|
|
371
|
+
private readonly hovered;
|
|
372
|
+
private readonly focused;
|
|
373
|
+
private readonly pointedAt;
|
|
374
|
+
protected readonly visibleCount: import("@angular/core").Signal<number>;
|
|
375
|
+
constructor();
|
|
376
|
+
protected hover(name: string | null): void;
|
|
377
|
+
protected focus(name: string | null): void;
|
|
378
|
+
protected isHidden(item: ChartLegendItem): boolean;
|
|
379
|
+
protected isLocked(item: ChartLegendItem): boolean;
|
|
380
|
+
protected toggle(item: ChartLegendItem): void;
|
|
381
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<UiChartLegendComponent, never>;
|
|
382
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<UiChartLegendComponent, "ui-chart-legend", never, {
|
|
383
|
+
"items": {
|
|
384
|
+
"alias": "items";
|
|
385
|
+
"required": true;
|
|
386
|
+
"isSignal": true;
|
|
387
|
+
};
|
|
388
|
+
"hidden": {
|
|
389
|
+
"alias": "hidden";
|
|
390
|
+
"required": false;
|
|
391
|
+
"isSignal": true;
|
|
392
|
+
};
|
|
393
|
+
"toggleable": {
|
|
394
|
+
"alias": "toggleable";
|
|
395
|
+
"required": false;
|
|
396
|
+
"isSignal": true;
|
|
397
|
+
};
|
|
398
|
+
}, {
|
|
399
|
+
"hidden": "hiddenChange";
|
|
400
|
+
"focusChange": "focusChange";
|
|
401
|
+
}, never, never, true, never>;
|
|
402
|
+
}
|
|
403
|
+
/**
|
|
404
|
+
* Lines for showing how values change over something ordered, usually time.
|
|
405
|
+
* Hovering anywhere shows every series at that point.
|
|
406
|
+
*/
|
|
407
|
+
export declare class UiLineChartComponent extends UiAxisChartBase {
|
|
408
|
+
protected readonly supportsDashes = true;
|
|
409
|
+
readonly curve: import("@angular/core").InputSignal<"straight" | "smooth" | "stepline">;
|
|
410
|
+
/** Draws a dot on every point, not just the hovered one. Handy with few points. */
|
|
411
|
+
readonly showPoints: import("@angular/core").InputSignalWithTransform<boolean, unknown>;
|
|
412
|
+
protected readonly chartOptions: import("@angular/core").Signal<ApexCharts.ApexOptions>;
|
|
413
|
+
private tooltipOrder;
|
|
414
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<UiLineChartComponent, never>;
|
|
415
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<UiLineChartComponent, "ui-line-chart", never, {
|
|
416
|
+
"curve": {
|
|
417
|
+
"alias": "curve";
|
|
418
|
+
"required": false;
|
|
419
|
+
"isSignal": true;
|
|
420
|
+
};
|
|
421
|
+
"showPoints": {
|
|
422
|
+
"alias": "showPoints";
|
|
423
|
+
"required": false;
|
|
424
|
+
"isSignal": true;
|
|
425
|
+
};
|
|
426
|
+
}, {}, never, never, true, never>;
|
|
427
|
+
}
|
|
428
|
+
/** How points are joined, straight segments, a smooth curve, or steps. */
|
|
429
|
+
export declare const LineChartCurves: readonly ["straight", "smooth", "stepline"];
|
|
430
|
+
/** @see {@link LineChartCurves} */
|
|
431
|
+
export type LineChartCurve = typeof LineChartCurves[number];
|
|
432
|
+
/** Native type values ui-input supports. File/checkbox/radio/range need their own components. */
|
|
433
|
+
export declare const InputTypes: readonly ["text", "email", "tel", "url", "search", "password", "number", "date", "time", "datetime-local", "month", "week", "color"];
|
|
434
|
+
/** @see {@link InputTypes} */
|
|
435
|
+
export type InputType = typeof InputTypes[number];
|
|
436
|
+
/** Native inputmode values, hinting at the virtual keyboard to show. */
|
|
437
|
+
export declare const InputModes: readonly ["none", "text", "decimal", "numeric", "tel", "search", "email", "url"];
|
|
438
|
+
/** @see {@link InputModes} */
|
|
439
|
+
export type InputMode = typeof InputModes[number];
|
|
440
|
+
/** true is valid, false is invalid, null is not yet validated. */
|
|
441
|
+
export type InputValidation = boolean | null;
|
|
442
|
+
/** Native aria-autocomplete values, for inputs that suggest as you type. */
|
|
443
|
+
export declare const InputAriaAutocompletes: readonly ["none", "inline", "list", "both"];
|
|
444
|
+
/** @see {@link InputAriaAutocompletes} */
|
|
445
|
+
export type InputAriaAutocomplete = typeof InputAriaAutocompletes[number];
|
|
446
|
+
/** Native aria-haspopup values, for inputs that open something. */
|
|
447
|
+
export declare const InputAriaHasPopups: readonly ["listbox", "dialog", "grid", "menu", "tree"];
|
|
448
|
+
/** @see {@link InputAriaHasPopups} */
|
|
449
|
+
export type InputAriaHasPopup = typeof InputAriaHasPopups[number];
|
|
450
|
+
export declare class UiCheckboxComponent {
|
|
451
|
+
readonly value: import("@angular/core").ModelSignal<boolean>;
|
|
452
|
+
readonly id: import("@angular/core").InputSignal<string>;
|
|
453
|
+
readonly name: import("@angular/core").InputSignal<string>;
|
|
454
|
+
readonly required: import("@angular/core").InputSignalWithTransform<boolean, unknown>;
|
|
455
|
+
readonly disabled: import("@angular/core").InputSignalWithTransform<boolean, unknown>;
|
|
456
|
+
readonly indeterminate: import("@angular/core").InputSignalWithTransform<boolean, unknown>;
|
|
457
|
+
/** true/false shows valid/invalid styling. null means not validated yet. */
|
|
458
|
+
readonly validationState: import("@angular/core").ModelSignal<InputValidation>;
|
|
459
|
+
readonly classes: import("@angular/core").InputSignal<string>;
|
|
460
|
+
readonly generatedClasses: import("@angular/core").Signal<string>;
|
|
461
|
+
toggle(): void;
|
|
462
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<UiCheckboxComponent, never>;
|
|
463
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<UiCheckboxComponent, "ui-checkbox", never, {
|
|
464
|
+
"value": {
|
|
465
|
+
"alias": "value";
|
|
466
|
+
"required": true;
|
|
467
|
+
"isSignal": true;
|
|
468
|
+
};
|
|
469
|
+
"id": {
|
|
470
|
+
"alias": "id";
|
|
471
|
+
"required": false;
|
|
472
|
+
"isSignal": true;
|
|
473
|
+
};
|
|
474
|
+
"name": {
|
|
475
|
+
"alias": "name";
|
|
476
|
+
"required": false;
|
|
477
|
+
"isSignal": true;
|
|
478
|
+
};
|
|
479
|
+
"required": {
|
|
480
|
+
"alias": "required";
|
|
481
|
+
"required": false;
|
|
482
|
+
"isSignal": true;
|
|
483
|
+
};
|
|
484
|
+
"disabled": {
|
|
485
|
+
"alias": "disabled";
|
|
486
|
+
"required": false;
|
|
487
|
+
"isSignal": true;
|
|
488
|
+
};
|
|
489
|
+
"indeterminate": {
|
|
490
|
+
"alias": "indeterminate";
|
|
491
|
+
"required": false;
|
|
492
|
+
"isSignal": true;
|
|
493
|
+
};
|
|
494
|
+
"validationState": {
|
|
495
|
+
"alias": "validationState";
|
|
496
|
+
"required": false;
|
|
497
|
+
"isSignal": true;
|
|
498
|
+
};
|
|
499
|
+
"classes": {
|
|
500
|
+
"alias": "classes";
|
|
501
|
+
"required": false;
|
|
502
|
+
"isSignal": true;
|
|
503
|
+
};
|
|
504
|
+
}, {
|
|
505
|
+
"value": "valueChange";
|
|
506
|
+
"validationState": "validationStateChange";
|
|
507
|
+
}, never, never, true, never>;
|
|
508
|
+
}
|
|
509
|
+
/** Why a file was turned away by a file picker. */
|
|
510
|
+
export declare const FileRejectionReasons: readonly ["type", "size"];
|
|
511
|
+
/** @see {@link FileRejectionReasons} */
|
|
512
|
+
export type FileRejectionReason = typeof FileRejectionReasons[number];
|
|
513
|
+
export interface FileRejection {
|
|
514
|
+
file: File;
|
|
515
|
+
reason: FileRejectionReason;
|
|
516
|
+
}
|
|
517
|
+
export interface FileSelection {
|
|
518
|
+
accepted: File[];
|
|
519
|
+
rejected: FileRejection[];
|
|
520
|
+
}
|
|
521
|
+
export declare class UiDropzoneComponent {
|
|
522
|
+
readonly value: import("@angular/core").ModelSignal<File[]>;
|
|
523
|
+
readonly id: import("@angular/core").InputSignal<string>;
|
|
524
|
+
readonly accept: import("@angular/core").InputSignal<string>;
|
|
525
|
+
readonly multiple: import("@angular/core").InputSignalWithTransform<boolean, unknown>;
|
|
526
|
+
readonly disabled: import("@angular/core").InputSignalWithTransform<boolean, unknown>;
|
|
527
|
+
readonly ariaLabel: import("@angular/core").InputSignal<string>;
|
|
528
|
+
readonly describedBy: import("@angular/core").InputSignal<string>;
|
|
529
|
+
/** Max size per file in bytes. */
|
|
530
|
+
readonly maxSize: import("@angular/core").InputSignal<number | null>;
|
|
531
|
+
readonly title: import("@angular/core").InputSignal<string>;
|
|
532
|
+
readonly hint: import("@angular/core").InputSignal<string>;
|
|
533
|
+
readonly icon: import("@angular/core").InputSignal<string>;
|
|
534
|
+
readonly rejected: import("@angular/core").OutputEmitterRef<FileRejection[]>;
|
|
535
|
+
private readonly picker;
|
|
536
|
+
private dragDepth;
|
|
537
|
+
protected readonly isDragging: import("@angular/core").WritableSignal<boolean>;
|
|
538
|
+
protected readonly hasRejection: import("@angular/core").WritableSignal<boolean>;
|
|
539
|
+
protected readonly displayTitle: import("@angular/core").Signal<string>;
|
|
540
|
+
protected readonly files: import("@angular/core").Signal<{
|
|
541
|
+
name: string;
|
|
542
|
+
size: string;
|
|
543
|
+
}[]>;
|
|
544
|
+
protected openPicker(): void;
|
|
545
|
+
protected handleKeydown(event: KeyboardEvent): void;
|
|
546
|
+
protected handlePick(event: Event): void;
|
|
547
|
+
protected handleDragEnter(event: DragEvent): void;
|
|
548
|
+
protected handleDragOver(event: DragEvent): void;
|
|
549
|
+
protected handleDragLeave(): void;
|
|
550
|
+
protected handleDrop(event: DragEvent): void;
|
|
551
|
+
protected clear(): void;
|
|
552
|
+
private addFiles;
|
|
553
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<UiDropzoneComponent, never>;
|
|
554
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<UiDropzoneComponent, "ui-dropzone", never, {
|
|
555
|
+
"value": {
|
|
556
|
+
"alias": "value";
|
|
557
|
+
"required": false;
|
|
558
|
+
"isSignal": true;
|
|
559
|
+
};
|
|
560
|
+
"id": {
|
|
561
|
+
"alias": "id";
|
|
562
|
+
"required": false;
|
|
563
|
+
"isSignal": true;
|
|
564
|
+
};
|
|
565
|
+
"accept": {
|
|
566
|
+
"alias": "accept";
|
|
567
|
+
"required": false;
|
|
568
|
+
"isSignal": true;
|
|
569
|
+
};
|
|
570
|
+
"multiple": {
|
|
571
|
+
"alias": "multiple";
|
|
572
|
+
"required": false;
|
|
573
|
+
"isSignal": true;
|
|
574
|
+
};
|
|
575
|
+
"disabled": {
|
|
576
|
+
"alias": "disabled";
|
|
577
|
+
"required": false;
|
|
578
|
+
"isSignal": true;
|
|
579
|
+
};
|
|
580
|
+
"ariaLabel": {
|
|
581
|
+
"alias": "ariaLabel";
|
|
582
|
+
"required": false;
|
|
583
|
+
"isSignal": true;
|
|
584
|
+
};
|
|
585
|
+
"describedBy": {
|
|
586
|
+
"alias": "describedBy";
|
|
587
|
+
"required": false;
|
|
588
|
+
"isSignal": true;
|
|
589
|
+
};
|
|
590
|
+
"maxSize": {
|
|
591
|
+
"alias": "maxSize";
|
|
592
|
+
"required": false;
|
|
593
|
+
"isSignal": true;
|
|
594
|
+
};
|
|
595
|
+
"title": {
|
|
596
|
+
"alias": "title";
|
|
597
|
+
"required": false;
|
|
598
|
+
"isSignal": true;
|
|
599
|
+
};
|
|
600
|
+
"hint": {
|
|
601
|
+
"alias": "hint";
|
|
602
|
+
"required": false;
|
|
603
|
+
"isSignal": true;
|
|
604
|
+
};
|
|
605
|
+
"icon": {
|
|
606
|
+
"alias": "icon";
|
|
607
|
+
"required": false;
|
|
608
|
+
"isSignal": true;
|
|
609
|
+
};
|
|
610
|
+
}, {
|
|
611
|
+
"value": "valueChange";
|
|
612
|
+
"rejected": "rejected";
|
|
613
|
+
}, never, never, true, never>;
|
|
614
|
+
}
|
|
615
|
+
export declare class UiFieldComponent {
|
|
616
|
+
readonly label: import("@angular/core").InputSignal<string>;
|
|
617
|
+
readonly hint: import("@angular/core").InputSignal<string>;
|
|
618
|
+
/**
|
|
619
|
+
* Shows a "*" marker next to the label.
|
|
620
|
+
*/
|
|
621
|
+
readonly required: import("@angular/core").InputSignalWithTransform<boolean, unknown>;
|
|
622
|
+
/**
|
|
623
|
+
* An error message, shown instead of `hint` when present.
|
|
624
|
+
*/
|
|
625
|
+
readonly error: import("@angular/core").InputSignal<string>;
|
|
626
|
+
readonly for: import("@angular/core").InputSignal<string>;
|
|
627
|
+
readonly hintId: import("@angular/core").InputSignal<string>;
|
|
628
|
+
readonly errorId: import("@angular/core").InputSignal<string>;
|
|
629
|
+
protected get forAttr(): string | null;
|
|
630
|
+
protected get hintAttr(): string | null;
|
|
631
|
+
protected get errorAttr(): string | null;
|
|
632
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<UiFieldComponent, never>;
|
|
633
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<UiFieldComponent, "ui-field", never, {
|
|
634
|
+
"label": {
|
|
635
|
+
"alias": "label";
|
|
636
|
+
"required": false;
|
|
637
|
+
"isSignal": true;
|
|
638
|
+
};
|
|
639
|
+
"hint": {
|
|
640
|
+
"alias": "hint";
|
|
641
|
+
"required": false;
|
|
642
|
+
"isSignal": true;
|
|
643
|
+
};
|
|
644
|
+
"required": {
|
|
645
|
+
"alias": "required";
|
|
646
|
+
"required": false;
|
|
647
|
+
"isSignal": true;
|
|
648
|
+
};
|
|
649
|
+
"error": {
|
|
650
|
+
"alias": "error";
|
|
651
|
+
"required": false;
|
|
652
|
+
"isSignal": true;
|
|
653
|
+
};
|
|
654
|
+
"for": {
|
|
655
|
+
"alias": "for";
|
|
656
|
+
"required": false;
|
|
657
|
+
"isSignal": true;
|
|
658
|
+
};
|
|
659
|
+
"hintId": {
|
|
660
|
+
"alias": "hintId";
|
|
661
|
+
"required": false;
|
|
662
|
+
"isSignal": true;
|
|
663
|
+
};
|
|
664
|
+
"errorId": {
|
|
665
|
+
"alias": "errorId";
|
|
666
|
+
"required": false;
|
|
667
|
+
"isSignal": true;
|
|
668
|
+
};
|
|
669
|
+
}, {}, never, ["*"], true, never>;
|
|
670
|
+
}
|
|
671
|
+
export declare class UiInputComponent<ValueType = string> {
|
|
672
|
+
readonly value: import("@angular/core").ModelSignal<ValueType>;
|
|
673
|
+
readonly classes: import("@angular/core").InputSignal<string>;
|
|
674
|
+
readonly type: import("@angular/core").InputSignal<"number" | "color" | "text" | "search" | "time" | "email" | "tel" | "url" | "password" | "date" | "datetime-local" | "month" | "week">;
|
|
675
|
+
readonly id: import("@angular/core").InputSignal<string>;
|
|
676
|
+
readonly name: import("@angular/core").InputSignal<string>;
|
|
677
|
+
readonly placeholder: import("@angular/core").InputSignal<string>;
|
|
678
|
+
readonly autocomplete: import("@angular/core").InputSignal<string>;
|
|
679
|
+
readonly inputmode: import("@angular/core").InputSignal<"" | "none" | "text" | "search" | "numeric" | "email" | "tel" | "url" | "decimal">;
|
|
680
|
+
readonly required: import("@angular/core").InputSignalWithTransform<boolean, unknown>;
|
|
681
|
+
readonly disabled: import("@angular/core").InputSignalWithTransform<boolean, unknown>;
|
|
682
|
+
readonly readonly: import("@angular/core").InputSignalWithTransform<boolean, unknown>;
|
|
683
|
+
/** true/false shows valid/invalid styling. null means not validated yet. */
|
|
684
|
+
readonly validationState: import("@angular/core").ModelSignal<InputValidation>;
|
|
685
|
+
readonly min: import("@angular/core").InputSignal<string | number>;
|
|
686
|
+
readonly max: import("@angular/core").InputSignal<string | number>;
|
|
687
|
+
readonly step: import("@angular/core").InputSignal<string | number>;
|
|
688
|
+
readonly pattern: import("@angular/core").InputSignal<string>;
|
|
689
|
+
readonly minlength: import("@angular/core").InputSignal<number | null>;
|
|
690
|
+
readonly maxlength: import("@angular/core").InputSignal<number | null>;
|
|
691
|
+
readonly autofocus: import("@angular/core").InputSignalWithTransform<boolean, unknown>;
|
|
692
|
+
readonly spellcheck: import("@angular/core").InputSignalWithTransform<boolean, unknown>;
|
|
693
|
+
readonly list: import("@angular/core").InputSignal<string>;
|
|
694
|
+
readonly ariaLabel: import("@angular/core").InputSignal<string>;
|
|
695
|
+
readonly describedBy: import("@angular/core").InputSignal<string>;
|
|
696
|
+
readonly inputRole: import("@angular/core").InputSignal<string>;
|
|
697
|
+
readonly ariaExpanded: import("@angular/core").InputSignal<boolean | null>;
|
|
698
|
+
readonly ariaControls: import("@angular/core").InputSignal<string>;
|
|
699
|
+
readonly ariaActiveDescendant: import("@angular/core").InputSignal<string | null>;
|
|
700
|
+
readonly ariaAutocomplete: import("@angular/core").InputSignal<"" | "none" | "inline" | "list" | "both">;
|
|
701
|
+
readonly ariaHasPopup: import("@angular/core").InputSignal<"" | "dialog" | "menu" | "listbox" | "grid" | "tree">;
|
|
702
|
+
readonly focused: import("@angular/core").OutputEmitterRef<FocusEvent>;
|
|
703
|
+
readonly blurred: import("@angular/core").OutputEmitterRef<FocusEvent>;
|
|
704
|
+
readonly leadingElement: import("@angular/core").Signal<TemplateRef<unknown> | undefined>;
|
|
705
|
+
readonly trailingElement: import("@angular/core").Signal<TemplateRef<unknown> | undefined>;
|
|
706
|
+
readonly generatedClasses: import("@angular/core").Signal<string>;
|
|
707
|
+
protected handleInput(event: Event): void;
|
|
708
|
+
protected handleFocus(event: FocusEvent): void;
|
|
709
|
+
protected handleBlur(event: FocusEvent): void;
|
|
710
|
+
private parseValue;
|
|
711
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<UiInputComponent<any>, never>;
|
|
712
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<UiInputComponent<any>, "ui-input", never, {
|
|
713
|
+
"value": {
|
|
714
|
+
"alias": "value";
|
|
715
|
+
"required": true;
|
|
716
|
+
"isSignal": true;
|
|
717
|
+
};
|
|
718
|
+
"classes": {
|
|
719
|
+
"alias": "classes";
|
|
720
|
+
"required": false;
|
|
721
|
+
"isSignal": true;
|
|
722
|
+
};
|
|
723
|
+
"type": {
|
|
724
|
+
"alias": "type";
|
|
725
|
+
"required": false;
|
|
726
|
+
"isSignal": true;
|
|
727
|
+
};
|
|
728
|
+
"id": {
|
|
729
|
+
"alias": "id";
|
|
730
|
+
"required": false;
|
|
731
|
+
"isSignal": true;
|
|
732
|
+
};
|
|
733
|
+
"name": {
|
|
734
|
+
"alias": "name";
|
|
735
|
+
"required": false;
|
|
736
|
+
"isSignal": true;
|
|
737
|
+
};
|
|
738
|
+
"placeholder": {
|
|
739
|
+
"alias": "placeholder";
|
|
740
|
+
"required": false;
|
|
741
|
+
"isSignal": true;
|
|
742
|
+
};
|
|
743
|
+
"autocomplete": {
|
|
744
|
+
"alias": "autocomplete";
|
|
745
|
+
"required": false;
|
|
746
|
+
"isSignal": true;
|
|
747
|
+
};
|
|
748
|
+
"inputmode": {
|
|
749
|
+
"alias": "inputmode";
|
|
750
|
+
"required": false;
|
|
751
|
+
"isSignal": true;
|
|
752
|
+
};
|
|
753
|
+
"required": {
|
|
754
|
+
"alias": "required";
|
|
755
|
+
"required": false;
|
|
756
|
+
"isSignal": true;
|
|
757
|
+
};
|
|
758
|
+
"disabled": {
|
|
759
|
+
"alias": "disabled";
|
|
760
|
+
"required": false;
|
|
761
|
+
"isSignal": true;
|
|
762
|
+
};
|
|
763
|
+
"readonly": {
|
|
764
|
+
"alias": "readonly";
|
|
765
|
+
"required": false;
|
|
766
|
+
"isSignal": true;
|
|
767
|
+
};
|
|
768
|
+
"validationState": {
|
|
769
|
+
"alias": "validationState";
|
|
770
|
+
"required": false;
|
|
771
|
+
"isSignal": true;
|
|
772
|
+
};
|
|
773
|
+
"min": {
|
|
774
|
+
"alias": "min";
|
|
775
|
+
"required": false;
|
|
776
|
+
"isSignal": true;
|
|
777
|
+
};
|
|
778
|
+
"max": {
|
|
779
|
+
"alias": "max";
|
|
780
|
+
"required": false;
|
|
781
|
+
"isSignal": true;
|
|
782
|
+
};
|
|
783
|
+
"step": {
|
|
784
|
+
"alias": "step";
|
|
785
|
+
"required": false;
|
|
786
|
+
"isSignal": true;
|
|
787
|
+
};
|
|
788
|
+
"pattern": {
|
|
789
|
+
"alias": "pattern";
|
|
790
|
+
"required": false;
|
|
791
|
+
"isSignal": true;
|
|
792
|
+
};
|
|
793
|
+
"minlength": {
|
|
794
|
+
"alias": "minlength";
|
|
795
|
+
"required": false;
|
|
796
|
+
"isSignal": true;
|
|
797
|
+
};
|
|
798
|
+
"maxlength": {
|
|
799
|
+
"alias": "maxlength";
|
|
800
|
+
"required": false;
|
|
801
|
+
"isSignal": true;
|
|
802
|
+
};
|
|
803
|
+
"autofocus": {
|
|
804
|
+
"alias": "autofocus";
|
|
805
|
+
"required": false;
|
|
806
|
+
"isSignal": true;
|
|
807
|
+
};
|
|
808
|
+
"spellcheck": {
|
|
809
|
+
"alias": "spellcheck";
|
|
810
|
+
"required": false;
|
|
811
|
+
"isSignal": true;
|
|
812
|
+
};
|
|
813
|
+
"list": {
|
|
814
|
+
"alias": "list";
|
|
815
|
+
"required": false;
|
|
816
|
+
"isSignal": true;
|
|
817
|
+
};
|
|
818
|
+
"ariaLabel": {
|
|
819
|
+
"alias": "ariaLabel";
|
|
820
|
+
"required": false;
|
|
821
|
+
"isSignal": true;
|
|
822
|
+
};
|
|
823
|
+
"describedBy": {
|
|
824
|
+
"alias": "describedBy";
|
|
825
|
+
"required": false;
|
|
826
|
+
"isSignal": true;
|
|
827
|
+
};
|
|
828
|
+
"inputRole": {
|
|
829
|
+
"alias": "inputRole";
|
|
830
|
+
"required": false;
|
|
831
|
+
"isSignal": true;
|
|
832
|
+
};
|
|
833
|
+
"ariaExpanded": {
|
|
834
|
+
"alias": "ariaExpanded";
|
|
835
|
+
"required": false;
|
|
836
|
+
"isSignal": true;
|
|
837
|
+
};
|
|
838
|
+
"ariaControls": {
|
|
839
|
+
"alias": "ariaControls";
|
|
840
|
+
"required": false;
|
|
841
|
+
"isSignal": true;
|
|
842
|
+
};
|
|
843
|
+
"ariaActiveDescendant": {
|
|
844
|
+
"alias": "ariaActiveDescendant";
|
|
845
|
+
"required": false;
|
|
846
|
+
"isSignal": true;
|
|
847
|
+
};
|
|
848
|
+
"ariaAutocomplete": {
|
|
849
|
+
"alias": "ariaAutocomplete";
|
|
850
|
+
"required": false;
|
|
851
|
+
"isSignal": true;
|
|
852
|
+
};
|
|
853
|
+
"ariaHasPopup": {
|
|
854
|
+
"alias": "ariaHasPopup";
|
|
855
|
+
"required": false;
|
|
856
|
+
"isSignal": true;
|
|
857
|
+
};
|
|
858
|
+
}, {
|
|
859
|
+
"value": "valueChange";
|
|
860
|
+
"validationState": "validationStateChange";
|
|
861
|
+
"focused": "focused";
|
|
862
|
+
"blurred": "blurred";
|
|
863
|
+
}, ["leadingElement", "trailingElement"], never, true, never>;
|
|
864
|
+
}
|
|
865
|
+
/**
|
|
866
|
+
* A static and non-interactable text or symbol that can be combined with
|
|
867
|
+
* a `ui-input` inside of a `ui-input-group`. Example: this could represent
|
|
868
|
+
* a currency symbol or unit of measurement.
|
|
869
|
+
*/
|
|
870
|
+
export declare class UiInputAddonComponent {
|
|
871
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<UiInputAddonComponent, never>;
|
|
872
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<UiInputAddonComponent, "ui-input-addon", never, {}, {}, never, ["*"], true, never>;
|
|
873
|
+
}
|
|
874
|
+
export declare class UiInputGroupComponent {
|
|
875
|
+
readonly inputs: import("@angular/core").Signal<readonly UiInputComponent<any>[]>;
|
|
876
|
+
/** true/false shows valid/invalid styling. null means not validated yet. */
|
|
877
|
+
readonly validationState: import("@angular/core").ModelSignal<InputValidation>;
|
|
878
|
+
constructor();
|
|
879
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<UiInputGroupComponent, never>;
|
|
880
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<UiInputGroupComponent, "ui-input-group", never, {
|
|
881
|
+
"validationState": {
|
|
882
|
+
"alias": "validationState";
|
|
883
|
+
"required": false;
|
|
884
|
+
"isSignal": true;
|
|
885
|
+
};
|
|
886
|
+
}, {
|
|
887
|
+
"validationState": "validationStateChange";
|
|
888
|
+
}, ["inputs"], ["*"], true, never>;
|
|
889
|
+
}
|
|
890
|
+
export declare class UiRadioComponent<ValueType = unknown> {
|
|
891
|
+
readonly value: import("@angular/core").ModelSignal<ValueType>;
|
|
892
|
+
readonly option: import("@angular/core").InputSignal<ValueType>;
|
|
893
|
+
readonly id: import("@angular/core").InputSignal<string>;
|
|
894
|
+
readonly name: import("@angular/core").InputSignal<string>;
|
|
895
|
+
readonly required: import("@angular/core").InputSignalWithTransform<boolean, unknown>;
|
|
896
|
+
readonly disabled: import("@angular/core").InputSignalWithTransform<boolean, unknown>;
|
|
897
|
+
/** true/false shows valid/invalid styling. null means not validated yet. */
|
|
898
|
+
readonly validationState: import("@angular/core").ModelSignal<InputValidation>;
|
|
899
|
+
readonly compareWith: import("@angular/core").InputSignal<(a: ValueType, b: ValueType) => boolean>;
|
|
900
|
+
readonly checked: import("@angular/core").Signal<boolean>;
|
|
901
|
+
select(): void;
|
|
902
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<UiRadioComponent<any>, never>;
|
|
903
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<UiRadioComponent<any>, "ui-radio", never, {
|
|
904
|
+
"value": {
|
|
905
|
+
"alias": "value";
|
|
906
|
+
"required": true;
|
|
907
|
+
"isSignal": true;
|
|
908
|
+
};
|
|
909
|
+
"option": {
|
|
910
|
+
"alias": "option";
|
|
911
|
+
"required": true;
|
|
912
|
+
"isSignal": true;
|
|
913
|
+
};
|
|
914
|
+
"id": {
|
|
915
|
+
"alias": "id";
|
|
916
|
+
"required": false;
|
|
917
|
+
"isSignal": true;
|
|
918
|
+
};
|
|
919
|
+
"name": {
|
|
920
|
+
"alias": "name";
|
|
921
|
+
"required": false;
|
|
922
|
+
"isSignal": true;
|
|
923
|
+
};
|
|
924
|
+
"required": {
|
|
925
|
+
"alias": "required";
|
|
926
|
+
"required": false;
|
|
927
|
+
"isSignal": true;
|
|
928
|
+
};
|
|
929
|
+
"disabled": {
|
|
930
|
+
"alias": "disabled";
|
|
931
|
+
"required": false;
|
|
932
|
+
"isSignal": true;
|
|
933
|
+
};
|
|
934
|
+
"validationState": {
|
|
935
|
+
"alias": "validationState";
|
|
936
|
+
"required": false;
|
|
937
|
+
"isSignal": true;
|
|
938
|
+
};
|
|
939
|
+
"compareWith": {
|
|
940
|
+
"alias": "compareWith";
|
|
941
|
+
"required": false;
|
|
942
|
+
"isSignal": true;
|
|
943
|
+
};
|
|
944
|
+
}, {
|
|
945
|
+
"value": "valueChange";
|
|
946
|
+
"validationState": "validationStateChange";
|
|
947
|
+
}, never, never, true, never>;
|
|
948
|
+
}
|
|
949
|
+
/** Defines if and when a `ui-overlay` should close when the user clicks. */
|
|
950
|
+
export type UiOverlayCloseBehaviour = 'none' | 'whenClickOutside' | 'whenClickAnywhere';
|
|
951
|
+
export interface UiOverlayOptions {
|
|
952
|
+
placement: Placement;
|
|
953
|
+
offset: number;
|
|
954
|
+
viewportPadding: number;
|
|
955
|
+
}
|
|
956
|
+
export interface SelectDataSourceParameters {
|
|
957
|
+
query: string;
|
|
958
|
+
page: number;
|
|
959
|
+
size: number;
|
|
960
|
+
}
|
|
961
|
+
export interface SelectDataSourceContent<Model> {
|
|
962
|
+
items: Model[];
|
|
963
|
+
hasMore: boolean;
|
|
964
|
+
}
|
|
965
|
+
export interface SelectDataSource<Model> {
|
|
966
|
+
load(params: SelectDataSourceParameters): Observable<SelectDataSourceContent<Model>>;
|
|
967
|
+
}
|
|
968
|
+
export declare class SelectLocalDataSource<Model> implements SelectDataSource<Model> {
|
|
969
|
+
private readonly items;
|
|
970
|
+
private readonly search;
|
|
971
|
+
constructor(items: Model[], search: (item: Model, query: string) => boolean);
|
|
972
|
+
load(params: SelectDataSourceParameters): Observable<SelectDataSourceContent<Model>>;
|
|
973
|
+
}
|
|
974
|
+
export declare class SelectRemoteDataSource<Model> implements SelectDataSource<Model> {
|
|
975
|
+
private readonly fetch;
|
|
976
|
+
constructor(fetch: (params: SelectDataSourceParameters) => Observable<SelectDataSourceContent<Model>>);
|
|
977
|
+
load(params: SelectDataSourceParameters): Observable<SelectDataSourceContent<Model>>;
|
|
978
|
+
}
|
|
979
|
+
export type SearchMode = 'none' | 'inline' | 'dropdown';
|
|
980
|
+
/** How a multiple select shows its selection when closed. */
|
|
981
|
+
export declare const SelectMultipleDisplays: readonly ["text", "tags"];
|
|
982
|
+
/** @see {@link SelectMultipleDisplays} */
|
|
983
|
+
export type SelectMultipleDisplay = typeof SelectMultipleDisplays[number];
|
|
984
|
+
/** Context for a projected `#option` template. */
|
|
985
|
+
export interface SelectOptionContext<Model> {
|
|
986
|
+
$implicit: Model;
|
|
987
|
+
selected: boolean;
|
|
988
|
+
active: boolean;
|
|
989
|
+
}
|
|
990
|
+
/** Context for a projected `#trigger` template, single select only. */
|
|
991
|
+
export interface SelectTriggerContext<Model> {
|
|
992
|
+
$implicit: Model;
|
|
993
|
+
}
|
|
994
|
+
/** One line in the open list. Groups are headings, the rest can be picked. */
|
|
995
|
+
export type SelectRow<Model> = {
|
|
996
|
+
kind: 'group';
|
|
997
|
+
id: string;
|
|
998
|
+
label: string;
|
|
999
|
+
} | {
|
|
1000
|
+
kind: 'clear';
|
|
1001
|
+
id: string;
|
|
1002
|
+
index: number;
|
|
1003
|
+
} | {
|
|
1004
|
+
kind: 'create';
|
|
1005
|
+
id: string;
|
|
1006
|
+
index: number;
|
|
1007
|
+
query: string;
|
|
1008
|
+
} | {
|
|
1009
|
+
kind: 'item';
|
|
1010
|
+
id: string;
|
|
1011
|
+
index: number;
|
|
1012
|
+
item: Model;
|
|
1013
|
+
label: string;
|
|
1014
|
+
selected: boolean;
|
|
1015
|
+
};
|
|
1016
|
+
export declare class UiSelectComponent<Model = unknown> {
|
|
1017
|
+
readonly isOpen: import("@angular/core").WritableSignal<boolean>;
|
|
1018
|
+
readonly placement: import("@angular/core").InputSignal<Placement>;
|
|
1019
|
+
readonly closeBehaviour: import("@angular/core").InputSignal<UiOverlayCloseBehaviour>;
|
|
1020
|
+
readonly dataSource: import("@angular/core").InputSignal<SelectDataSource<Model>>;
|
|
1021
|
+
readonly items: import("@angular/core").WritableSignal<Model[]>;
|
|
1022
|
+
readonly placeholder: import("@angular/core").InputSignal<string>;
|
|
1023
|
+
/** Goes on the trigger (or the inline search box), pass it to ui-field's `for`. */
|
|
1024
|
+
readonly id: import("@angular/core").InputSignal<string>;
|
|
1025
|
+
readonly describedBy: import("@angular/core").InputSignal<string>;
|
|
1026
|
+
readonly pageSize: import("@angular/core").InputSignal<number>;
|
|
1027
|
+
readonly searchMode: import("@angular/core").InputSignal<SearchMode>;
|
|
1028
|
+
readonly disabled: import("@angular/core").InputSignalWithTransform<boolean, unknown>;
|
|
1029
|
+
readonly validationState: import("@angular/core").ModelSignal<InputValidation>;
|
|
1030
|
+
readonly clearable: import("@angular/core").InputSignal<boolean>;
|
|
1031
|
+
readonly clearLabel: import("@angular/core").InputSignal<string>;
|
|
1032
|
+
/**
|
|
1033
|
+
* Offers a "Create" row when a search matches nothing. Needs a
|
|
1034
|
+
* searchMode, the parent handles `create` and adds the new item.
|
|
1035
|
+
*/
|
|
1036
|
+
readonly creatable: import("@angular/core").InputSignalWithTransform<boolean, unknown>;
|
|
1037
|
+
readonly createLabel: import("@angular/core").InputSignal<(query: string) => string>;
|
|
1038
|
+
/** Puts a heading above each run of items in the same group. Expects items sorted by group. */
|
|
1039
|
+
readonly groupBy: import("@angular/core").InputSignal<((item: Model) => string | null) | null>;
|
|
1040
|
+
/** Scrolls the selected option into view when the list opens. */
|
|
1041
|
+
readonly scrollToSelected: import("@angular/core").InputSignalWithTransform<boolean, unknown>;
|
|
1042
|
+
/** Lets several items be picked, bound through `selectedItems`. */
|
|
1043
|
+
readonly multiple: import("@angular/core").InputSignalWithTransform<boolean, unknown>;
|
|
1044
|
+
readonly multipleDisplay: import("@angular/core").InputSignal<"text" | "tags">;
|
|
1045
|
+
/** In text display, swaps the list of names for a count past this many. 0 always counts. */
|
|
1046
|
+
readonly counterAfter: import("@angular/core").InputSignal<number | null>;
|
|
1047
|
+
readonly counterLabel: import("@angular/core").InputSignal<(count: number) => string>;
|
|
1048
|
+
readonly compareWith: import("@angular/core").InputSignal<(a: Model, b: Model) => boolean>;
|
|
1049
|
+
readonly displayWith: import("@angular/core").InputSignal<(item: Model) => string>;
|
|
1050
|
+
readonly selectionChange: import("@angular/core").OutputEmitterRef<Model | null>;
|
|
1051
|
+
/** Emits the search text when the "Create" row is picked. */
|
|
1052
|
+
readonly create: import("@angular/core").OutputEmitterRef<string>;
|
|
1053
|
+
readonly selectedItem: import("@angular/core").ModelSignal<Model | null>;
|
|
1054
|
+
readonly selectedItems: import("@angular/core").ModelSignal<Model[]>;
|
|
1055
|
+
readonly query: import("@angular/core").WritableSignal<string>;
|
|
1056
|
+
readonly loading: import("@angular/core").WritableSignal<boolean>;
|
|
1057
|
+
readonly hasMore: import("@angular/core").WritableSignal<boolean>;
|
|
1058
|
+
readonly optionTemplate: import("@angular/core").Signal<TemplateRef<SelectOptionContext<Model>> | undefined>;
|
|
1059
|
+
readonly triggerTemplate: import("@angular/core").Signal<TemplateRef<SelectTriggerContext<Model>> | undefined>;
|
|
1060
|
+
/** Index into the pickable rows, the one keyboard focus sits on. */
|
|
1061
|
+
readonly activeIndex: import("@angular/core").WritableSignal<number>;
|
|
1062
|
+
readonly listId: string;
|
|
1063
|
+
readonly hasSelection: import("@angular/core").Signal<boolean>;
|
|
1064
|
+
readonly triggerLabel: import("@angular/core").Signal<string>;
|
|
1065
|
+
/** Tags only replace the trigger text when there's no inline search box. */
|
|
1066
|
+
readonly showTags: import("@angular/core").Signal<boolean>;
|
|
1067
|
+
/** The text to create from, or null when there's nothing to offer. */
|
|
1068
|
+
readonly createQuery: import("@angular/core").Signal<string | null>;
|
|
1069
|
+
readonly rows: import("@angular/core").Signal<SelectRow<Model>[]>;
|
|
1070
|
+
private readonly pickable;
|
|
1071
|
+
readonly activeId: import("@angular/core").Signal<string | null>;
|
|
1072
|
+
private page;
|
|
1073
|
+
private readonly load$;
|
|
1074
|
+
private readonly host;
|
|
1075
|
+
private readonly injector;
|
|
1076
|
+
private readonly destroyRef;
|
|
1077
|
+
private readonly cdr;
|
|
1078
|
+
constructor();
|
|
1079
|
+
private fetchPage;
|
|
1080
|
+
private applyResult;
|
|
1081
|
+
open(): void;
|
|
1082
|
+
toggle(): void;
|
|
1083
|
+
select(item: Model): void;
|
|
1084
|
+
isSelected(item: Model): boolean;
|
|
1085
|
+
toggleItem(item: Model): void;
|
|
1086
|
+
removeItem(item: Model): void;
|
|
1087
|
+
clear(): void;
|
|
1088
|
+
onItemClick(item: Model): void;
|
|
1089
|
+
onCreate(): void;
|
|
1090
|
+
onKeydown(event: KeyboardEvent): void;
|
|
1091
|
+
onFocusOut(event: FocusEvent): void;
|
|
1092
|
+
setActive(index: number): void;
|
|
1093
|
+
loadFirstPage(): void;
|
|
1094
|
+
loadNextPage(): void;
|
|
1095
|
+
onQueryChange(query: string): void;
|
|
1096
|
+
onScroll(scrollContainer: HTMLElement): void;
|
|
1097
|
+
private pickActive;
|
|
1098
|
+
private moveActive;
|
|
1099
|
+
private scrollActiveIntoView;
|
|
1100
|
+
private focusTrigger;
|
|
1101
|
+
private searchInput;
|
|
1102
|
+
private rowId;
|
|
1103
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<UiSelectComponent<any>, never>;
|
|
1104
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<UiSelectComponent<any>, "ui-select", never, {
|
|
1105
|
+
"placement": {
|
|
1106
|
+
"alias": "placement";
|
|
1107
|
+
"required": false;
|
|
1108
|
+
"isSignal": true;
|
|
1109
|
+
};
|
|
1110
|
+
"closeBehaviour": {
|
|
1111
|
+
"alias": "closeBehaviour";
|
|
1112
|
+
"required": false;
|
|
1113
|
+
"isSignal": true;
|
|
1114
|
+
};
|
|
1115
|
+
"dataSource": {
|
|
1116
|
+
"alias": "dataSource";
|
|
1117
|
+
"required": true;
|
|
1118
|
+
"isSignal": true;
|
|
1119
|
+
};
|
|
1120
|
+
"placeholder": {
|
|
1121
|
+
"alias": "placeholder";
|
|
1122
|
+
"required": false;
|
|
1123
|
+
"isSignal": true;
|
|
1124
|
+
};
|
|
1125
|
+
"id": {
|
|
1126
|
+
"alias": "id";
|
|
1127
|
+
"required": false;
|
|
1128
|
+
"isSignal": true;
|
|
1129
|
+
};
|
|
1130
|
+
"describedBy": {
|
|
1131
|
+
"alias": "describedBy";
|
|
1132
|
+
"required": false;
|
|
1133
|
+
"isSignal": true;
|
|
1134
|
+
};
|
|
1135
|
+
"pageSize": {
|
|
1136
|
+
"alias": "pageSize";
|
|
1137
|
+
"required": false;
|
|
1138
|
+
"isSignal": true;
|
|
1139
|
+
};
|
|
1140
|
+
"searchMode": {
|
|
1141
|
+
"alias": "searchMode";
|
|
1142
|
+
"required": false;
|
|
1143
|
+
"isSignal": true;
|
|
1144
|
+
};
|
|
1145
|
+
"disabled": {
|
|
1146
|
+
"alias": "disabled";
|
|
1147
|
+
"required": false;
|
|
1148
|
+
"isSignal": true;
|
|
1149
|
+
};
|
|
1150
|
+
"validationState": {
|
|
1151
|
+
"alias": "validationState";
|
|
1152
|
+
"required": false;
|
|
1153
|
+
"isSignal": true;
|
|
1154
|
+
};
|
|
1155
|
+
"clearable": {
|
|
1156
|
+
"alias": "clearable";
|
|
1157
|
+
"required": false;
|
|
1158
|
+
"isSignal": true;
|
|
1159
|
+
};
|
|
1160
|
+
"clearLabel": {
|
|
1161
|
+
"alias": "clearLabel";
|
|
1162
|
+
"required": false;
|
|
1163
|
+
"isSignal": true;
|
|
1164
|
+
};
|
|
1165
|
+
"creatable": {
|
|
1166
|
+
"alias": "creatable";
|
|
1167
|
+
"required": false;
|
|
1168
|
+
"isSignal": true;
|
|
1169
|
+
};
|
|
1170
|
+
"createLabel": {
|
|
1171
|
+
"alias": "createLabel";
|
|
1172
|
+
"required": false;
|
|
1173
|
+
"isSignal": true;
|
|
1174
|
+
};
|
|
1175
|
+
"groupBy": {
|
|
1176
|
+
"alias": "groupBy";
|
|
1177
|
+
"required": false;
|
|
1178
|
+
"isSignal": true;
|
|
1179
|
+
};
|
|
1180
|
+
"scrollToSelected": {
|
|
1181
|
+
"alias": "scrollToSelected";
|
|
1182
|
+
"required": false;
|
|
1183
|
+
"isSignal": true;
|
|
1184
|
+
};
|
|
1185
|
+
"multiple": {
|
|
1186
|
+
"alias": "multiple";
|
|
1187
|
+
"required": false;
|
|
1188
|
+
"isSignal": true;
|
|
1189
|
+
};
|
|
1190
|
+
"multipleDisplay": {
|
|
1191
|
+
"alias": "multipleDisplay";
|
|
1192
|
+
"required": false;
|
|
1193
|
+
"isSignal": true;
|
|
1194
|
+
};
|
|
1195
|
+
"counterAfter": {
|
|
1196
|
+
"alias": "counterAfter";
|
|
1197
|
+
"required": false;
|
|
1198
|
+
"isSignal": true;
|
|
1199
|
+
};
|
|
1200
|
+
"counterLabel": {
|
|
1201
|
+
"alias": "counterLabel";
|
|
1202
|
+
"required": false;
|
|
1203
|
+
"isSignal": true;
|
|
1204
|
+
};
|
|
1205
|
+
"compareWith": {
|
|
1206
|
+
"alias": "compareWith";
|
|
1207
|
+
"required": false;
|
|
1208
|
+
"isSignal": true;
|
|
1209
|
+
};
|
|
1210
|
+
"displayWith": {
|
|
1211
|
+
"alias": "displayWith";
|
|
1212
|
+
"required": false;
|
|
1213
|
+
"isSignal": true;
|
|
1214
|
+
};
|
|
1215
|
+
"selectedItem": {
|
|
1216
|
+
"alias": "selectedItem";
|
|
1217
|
+
"required": false;
|
|
1218
|
+
"isSignal": true;
|
|
1219
|
+
};
|
|
1220
|
+
"selectedItems": {
|
|
1221
|
+
"alias": "selectedItems";
|
|
1222
|
+
"required": false;
|
|
1223
|
+
"isSignal": true;
|
|
1224
|
+
};
|
|
1225
|
+
}, {
|
|
1226
|
+
"validationState": "validationStateChange";
|
|
1227
|
+
"selectionChange": "selectionChange";
|
|
1228
|
+
"create": "create";
|
|
1229
|
+
"selectedItem": "selectedItemChange";
|
|
1230
|
+
"selectedItems": "selectedItemsChange";
|
|
1231
|
+
}, ["optionTemplate", "triggerTemplate"], never, true, never>;
|
|
1232
|
+
}
|
|
1233
|
+
/** Native resize values for the textarea element. */
|
|
1234
|
+
export declare const TextareaResizeOptions: readonly ["none", "both", "horizontal", "vertical"];
|
|
1235
|
+
/** @see {@link TextareaResizeOptions} */
|
|
1236
|
+
export type TextareaResize = typeof TextareaResizeOptions[number];
|
|
1237
|
+
/** true is valid, false is invalid, null is not yet validated. */
|
|
1238
|
+
export type TextareaValidation = boolean | null;
|
|
1239
|
+
export declare class UiTextareaComponent {
|
|
1240
|
+
readonly value: import("@angular/core").ModelSignal<string>;
|
|
1241
|
+
readonly classes: import("@angular/core").InputSignal<string>;
|
|
1242
|
+
readonly id: import("@angular/core").InputSignal<string>;
|
|
1243
|
+
readonly name: import("@angular/core").InputSignal<string>;
|
|
1244
|
+
readonly placeholder: import("@angular/core").InputSignal<string>;
|
|
1245
|
+
readonly rows: import("@angular/core").InputSignal<number>;
|
|
1246
|
+
readonly resize: import("@angular/core").InputSignal<"none" | "vertical" | "horizontal" | "both">;
|
|
1247
|
+
readonly required: import("@angular/core").InputSignalWithTransform<boolean, unknown>;
|
|
1248
|
+
readonly disabled: import("@angular/core").InputSignalWithTransform<boolean, unknown>;
|
|
1249
|
+
readonly readonly: import("@angular/core").InputSignalWithTransform<boolean, unknown>;
|
|
1250
|
+
/** true/false shows valid/invalid styling. null means not validated yet. */
|
|
1251
|
+
readonly validationState: import("@angular/core").ModelSignal<TextareaValidation>;
|
|
1252
|
+
readonly minlength: import("@angular/core").InputSignal<number | null>;
|
|
1253
|
+
readonly maxlength: import("@angular/core").InputSignal<number | null>;
|
|
1254
|
+
readonly autofocus: import("@angular/core").InputSignalWithTransform<boolean, unknown>;
|
|
1255
|
+
readonly spellcheck: import("@angular/core").InputSignalWithTransform<boolean, unknown>;
|
|
1256
|
+
readonly ariaLabel: import("@angular/core").InputSignal<string>;
|
|
1257
|
+
readonly describedBy: import("@angular/core").InputSignal<string>;
|
|
1258
|
+
readonly focused: import("@angular/core").OutputEmitterRef<FocusEvent>;
|
|
1259
|
+
readonly blurred: import("@angular/core").OutputEmitterRef<FocusEvent>;
|
|
1260
|
+
readonly generatedClasses: import("@angular/core").Signal<string>;
|
|
1261
|
+
protected handleInput(event: Event): void;
|
|
1262
|
+
protected handleFocus(event: FocusEvent): void;
|
|
1263
|
+
protected handleBlur(event: FocusEvent): void;
|
|
1264
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<UiTextareaComponent, never>;
|
|
1265
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<UiTextareaComponent, "ui-textarea", never, {
|
|
1266
|
+
"value": {
|
|
1267
|
+
"alias": "value";
|
|
1268
|
+
"required": true;
|
|
1269
|
+
"isSignal": true;
|
|
1270
|
+
};
|
|
1271
|
+
"classes": {
|
|
1272
|
+
"alias": "classes";
|
|
1273
|
+
"required": false;
|
|
1274
|
+
"isSignal": true;
|
|
1275
|
+
};
|
|
1276
|
+
"id": {
|
|
1277
|
+
"alias": "id";
|
|
1278
|
+
"required": false;
|
|
1279
|
+
"isSignal": true;
|
|
1280
|
+
};
|
|
1281
|
+
"name": {
|
|
1282
|
+
"alias": "name";
|
|
1283
|
+
"required": false;
|
|
1284
|
+
"isSignal": true;
|
|
1285
|
+
};
|
|
1286
|
+
"placeholder": {
|
|
1287
|
+
"alias": "placeholder";
|
|
1288
|
+
"required": false;
|
|
1289
|
+
"isSignal": true;
|
|
1290
|
+
};
|
|
1291
|
+
"rows": {
|
|
1292
|
+
"alias": "rows";
|
|
1293
|
+
"required": false;
|
|
1294
|
+
"isSignal": true;
|
|
1295
|
+
};
|
|
1296
|
+
"resize": {
|
|
1297
|
+
"alias": "resize";
|
|
1298
|
+
"required": false;
|
|
1299
|
+
"isSignal": true;
|
|
1300
|
+
};
|
|
1301
|
+
"required": {
|
|
1302
|
+
"alias": "required";
|
|
1303
|
+
"required": false;
|
|
1304
|
+
"isSignal": true;
|
|
1305
|
+
};
|
|
1306
|
+
"disabled": {
|
|
1307
|
+
"alias": "disabled";
|
|
1308
|
+
"required": false;
|
|
1309
|
+
"isSignal": true;
|
|
1310
|
+
};
|
|
1311
|
+
"readonly": {
|
|
1312
|
+
"alias": "readonly";
|
|
1313
|
+
"required": false;
|
|
1314
|
+
"isSignal": true;
|
|
1315
|
+
};
|
|
1316
|
+
"validationState": {
|
|
1317
|
+
"alias": "validationState";
|
|
1318
|
+
"required": false;
|
|
1319
|
+
"isSignal": true;
|
|
1320
|
+
};
|
|
1321
|
+
"minlength": {
|
|
1322
|
+
"alias": "minlength";
|
|
1323
|
+
"required": false;
|
|
1324
|
+
"isSignal": true;
|
|
1325
|
+
};
|
|
1326
|
+
"maxlength": {
|
|
1327
|
+
"alias": "maxlength";
|
|
1328
|
+
"required": false;
|
|
1329
|
+
"isSignal": true;
|
|
1330
|
+
};
|
|
1331
|
+
"autofocus": {
|
|
1332
|
+
"alias": "autofocus";
|
|
1333
|
+
"required": false;
|
|
1334
|
+
"isSignal": true;
|
|
1335
|
+
};
|
|
1336
|
+
"spellcheck": {
|
|
1337
|
+
"alias": "spellcheck";
|
|
1338
|
+
"required": false;
|
|
1339
|
+
"isSignal": true;
|
|
1340
|
+
};
|
|
1341
|
+
"ariaLabel": {
|
|
1342
|
+
"alias": "ariaLabel";
|
|
1343
|
+
"required": false;
|
|
1344
|
+
"isSignal": true;
|
|
1345
|
+
};
|
|
1346
|
+
"describedBy": {
|
|
1347
|
+
"alias": "describedBy";
|
|
1348
|
+
"required": false;
|
|
1349
|
+
"isSignal": true;
|
|
1350
|
+
};
|
|
1351
|
+
}, {
|
|
1352
|
+
"value": "valueChange";
|
|
1353
|
+
"validationState": "validationStateChange";
|
|
1354
|
+
"focused": "focused";
|
|
1355
|
+
"blurred": "blurred";
|
|
1356
|
+
}, never, never, true, never>;
|
|
1357
|
+
}
|
|
1358
|
+
export declare class UiAlertComponent {
|
|
1359
|
+
readonly appearance: import("@angular/core").InputSignal<"soft" | "bordered">;
|
|
1360
|
+
readonly intent: import("@angular/core").InputSignal<string>;
|
|
1361
|
+
readonly classes: import("@angular/core").InputSignal<string>;
|
|
1362
|
+
readonly icon: import("@angular/core").Signal<TemplateRef<unknown> | undefined>;
|
|
1363
|
+
readonly generatedClasses: import("@angular/core").Signal<string>;
|
|
1364
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<UiAlertComponent, never>;
|
|
1365
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<UiAlertComponent, "ui-alert", never, {
|
|
1366
|
+
"appearance": {
|
|
1367
|
+
"alias": "appearance";
|
|
1368
|
+
"required": false;
|
|
1369
|
+
"isSignal": true;
|
|
1370
|
+
};
|
|
1371
|
+
"intent": {
|
|
1372
|
+
"alias": "intent";
|
|
1373
|
+
"required": false;
|
|
1374
|
+
"isSignal": true;
|
|
1375
|
+
};
|
|
1376
|
+
"classes": {
|
|
1377
|
+
"alias": "classes";
|
|
1378
|
+
"required": false;
|
|
1379
|
+
"isSignal": true;
|
|
1380
|
+
};
|
|
1381
|
+
}, {}, ["icon"], ["*"], true, never>;
|
|
1382
|
+
}
|
|
1383
|
+
export declare const AlertIntents: string[];
|
|
1384
|
+
export declare const AlertAppearances: readonly ["soft", "bordered"];
|
|
1385
|
+
export type AlertIntent = typeof AlertIntents[number];
|
|
1386
|
+
export type AlertAppearance = typeof AlertAppearances[number];
|
|
1387
|
+
export declare class UiBadgeComponent {
|
|
1388
|
+
readonly appearance: import("@angular/core").InputSignal<"solid" | "outline" | "soft">;
|
|
1389
|
+
readonly intent: import("@angular/core").InputSignal<"primary" | "secondary" | "success" | "warning" | "danger">;
|
|
1390
|
+
readonly size: import("@angular/core").InputSignal<"xs" | "sm" | "md" | "lg">;
|
|
1391
|
+
readonly classes: import("@angular/core").InputSignal<string>;
|
|
1392
|
+
readonly generatedClasses: import("@angular/core").Signal<string>;
|
|
1393
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<UiBadgeComponent, never>;
|
|
1394
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<UiBadgeComponent, "ui-badge", never, {
|
|
1395
|
+
"appearance": {
|
|
1396
|
+
"alias": "appearance";
|
|
1397
|
+
"required": false;
|
|
1398
|
+
"isSignal": true;
|
|
1399
|
+
};
|
|
1400
|
+
"intent": {
|
|
1401
|
+
"alias": "intent";
|
|
1402
|
+
"required": false;
|
|
1403
|
+
"isSignal": true;
|
|
1404
|
+
};
|
|
1405
|
+
"size": {
|
|
1406
|
+
"alias": "size";
|
|
1407
|
+
"required": false;
|
|
1408
|
+
"isSignal": true;
|
|
1409
|
+
};
|
|
1410
|
+
"classes": {
|
|
1411
|
+
"alias": "classes";
|
|
1412
|
+
"required": false;
|
|
1413
|
+
"isSignal": true;
|
|
1414
|
+
};
|
|
1415
|
+
}, {}, never, ["*"], true, never>;
|
|
1416
|
+
}
|
|
1417
|
+
export declare const BadgeIntents: readonly ["primary", "secondary", "success", "warning", "danger"];
|
|
1418
|
+
export declare const BadgeAppearances: readonly ["solid", "outline", "soft"];
|
|
1419
|
+
export declare const BadgeSizes: readonly ["xs", "sm", "md", "lg"];
|
|
1420
|
+
export type BadgeIntent = typeof BadgeIntents[number];
|
|
1421
|
+
export type BadgeAppearance = typeof BadgeAppearances[number];
|
|
1422
|
+
export type BadgeSize = typeof BadgeSizes[number];
|
|
1423
|
+
/**
|
|
1424
|
+
* A general-purpose button.
|
|
1425
|
+
*/
|
|
1426
|
+
export declare class UiButtonComponent {
|
|
1427
|
+
readonly appearance: import("@angular/core").InputSignal<"solid" | "none" | "link" | "outline" | "ghost" | "white">;
|
|
1428
|
+
readonly intent: import("@angular/core").InputSignal<"none" | "primary" | "secondary" | "success" | "warning" | "danger">;
|
|
1429
|
+
readonly size: import("@angular/core").InputSignal<"sm" | "md" | "lg">;
|
|
1430
|
+
readonly classes: import("@angular/core").InputSignal<string>;
|
|
1431
|
+
readonly type: import("@angular/core").InputSignal<"button" | "reset" | "submit">;
|
|
1432
|
+
readonly ariaLabel: import("@angular/core").InputSignal<string>;
|
|
1433
|
+
readonly disabled: import("@angular/core").InputSignal<boolean>;
|
|
1434
|
+
readonly loading: import("@angular/core").InputSignal<boolean>;
|
|
1435
|
+
/**
|
|
1436
|
+
* Whether the underlying `<button>` element should be disabled - true when
|
|
1437
|
+
* `disabled` is set explicitly, or implicitly while `loading` is true.
|
|
1438
|
+
*/
|
|
1439
|
+
readonly isDisabled: import("@angular/core").Signal<boolean>;
|
|
1440
|
+
readonly generatedClasses: import("@angular/core").Signal<string>;
|
|
1441
|
+
private readonly intentAndAppearanceClasses;
|
|
1442
|
+
private readonly sizeClasses;
|
|
1443
|
+
private readonly textClasses;
|
|
1444
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<UiButtonComponent, never>;
|
|
1445
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<UiButtonComponent, "ui-button", never, {
|
|
1446
|
+
"appearance": {
|
|
1447
|
+
"alias": "appearance";
|
|
1448
|
+
"required": false;
|
|
1449
|
+
"isSignal": true;
|
|
1450
|
+
};
|
|
1451
|
+
"intent": {
|
|
1452
|
+
"alias": "intent";
|
|
1453
|
+
"required": false;
|
|
1454
|
+
"isSignal": true;
|
|
1455
|
+
};
|
|
1456
|
+
"size": {
|
|
1457
|
+
"alias": "size";
|
|
1458
|
+
"required": false;
|
|
1459
|
+
"isSignal": true;
|
|
1460
|
+
};
|
|
1461
|
+
"classes": {
|
|
1462
|
+
"alias": "classes";
|
|
1463
|
+
"required": false;
|
|
1464
|
+
"isSignal": true;
|
|
1465
|
+
};
|
|
1466
|
+
"type": {
|
|
1467
|
+
"alias": "type";
|
|
1468
|
+
"required": false;
|
|
1469
|
+
"isSignal": true;
|
|
1470
|
+
};
|
|
1471
|
+
"ariaLabel": {
|
|
1472
|
+
"alias": "ariaLabel";
|
|
1473
|
+
"required": false;
|
|
1474
|
+
"isSignal": true;
|
|
1475
|
+
};
|
|
1476
|
+
"disabled": {
|
|
1477
|
+
"alias": "disabled";
|
|
1478
|
+
"required": false;
|
|
1479
|
+
"isSignal": true;
|
|
1480
|
+
};
|
|
1481
|
+
"loading": {
|
|
1482
|
+
"alias": "loading";
|
|
1483
|
+
"required": false;
|
|
1484
|
+
"isSignal": true;
|
|
1485
|
+
};
|
|
1486
|
+
}, {}, never, ["*"], true, never>;
|
|
1487
|
+
}
|
|
1488
|
+
/**
|
|
1489
|
+
* The semantic colour of a button. `"none"` opts out of intent/appearance
|
|
1490
|
+
* styling entirely - see `UiButtonComponent.intent`.
|
|
1491
|
+
*/
|
|
1492
|
+
export declare const ButtonIntents: readonly ["primary", "secondary", "success", "warning", "danger", "none"];
|
|
1493
|
+
/**
|
|
1494
|
+
* The visual treatment of a button (fill, outline, etc.), combined with its
|
|
1495
|
+
* `intent` to select a variant class. `"none"` opts out of intent/appearance
|
|
1496
|
+
* styling entirely - see `UiButtonComponent.appearance`.
|
|
1497
|
+
*/
|
|
1498
|
+
export declare const ButtonAppearances: readonly ["solid", "outline", "ghost", "white", "link", "none"];
|
|
1499
|
+
/** The size of a button, controlling its padding and typography scale. */
|
|
1500
|
+
export declare const ButtonSizes: readonly ["sm", "md", "lg"];
|
|
1501
|
+
/** The native `type` attribute a button can render with. */
|
|
1502
|
+
export declare const ButtonTypes: readonly ["button", "submit", "reset"];
|
|
1503
|
+
/** @see {@link ButtonIntents} */
|
|
1504
|
+
export type ButtonIntent = typeof ButtonIntents[number];
|
|
1505
|
+
/** @see {@link ButtonAppearances} */
|
|
1506
|
+
export type ButtonAppearance = typeof ButtonAppearances[number];
|
|
1507
|
+
/** @see {@link ButtonSizes} */
|
|
1508
|
+
export type ButtonSize = typeof ButtonSizes[number];
|
|
1509
|
+
/** @see {@link ButtonTypes} */
|
|
1510
|
+
export type ButtonType = typeof ButtonTypes[number];
|
|
1511
|
+
/**
|
|
1512
|
+
* @example
|
|
1513
|
+
* ```html
|
|
1514
|
+
* <ui-button-group>
|
|
1515
|
+
* <ui-button intent="secondary" appearance="white">First</ui-button>
|
|
1516
|
+
* <ui-button intent="secondary" appearance="white">Second</ui-button>
|
|
1517
|
+
* <ui-button intent="secondary" appearance="white">Last</ui-button>
|
|
1518
|
+
* </ui-button-group>
|
|
1519
|
+
* ```
|
|
1520
|
+
*/
|
|
1521
|
+
export declare class UiButtonGroupComponent {
|
|
1522
|
+
readonly buttons: import("@angular/core").Signal<readonly UiButtonComponent[]>;
|
|
1523
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<UiButtonGroupComponent, never>;
|
|
1524
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<UiButtonGroupComponent, "ui-button-group", never, {}, {}, ["buttons"], ["*"], true, never>;
|
|
1525
|
+
}
|
|
1526
|
+
/** Which day each calendar row starts on. 0 is Sunday, 1 is Monday. */
|
|
1527
|
+
export declare const WeekStarts: readonly [0, 1];
|
|
1528
|
+
/** @see {@link WeekStarts} */
|
|
1529
|
+
export type WeekStart = typeof WeekStarts[number];
|
|
1530
|
+
/** A date-only ISO string, e.g. "2026-09-29". */
|
|
1531
|
+
export type IsoDate = string;
|
|
1532
|
+
export interface CalendarDay {
|
|
1533
|
+
iso: IsoDate;
|
|
1534
|
+
day: number;
|
|
1535
|
+
label: string;
|
|
1536
|
+
isOutside: boolean;
|
|
1537
|
+
isToday: boolean;
|
|
1538
|
+
isSelected: boolean;
|
|
1539
|
+
isDisabled: boolean;
|
|
1540
|
+
isInRange: boolean;
|
|
1541
|
+
isRangeStart: boolean;
|
|
1542
|
+
isRangeEnd: boolean;
|
|
1543
|
+
}
|
|
1544
|
+
/** A local date and time ISO string, e.g. "2026-09-29T14:30". */
|
|
1545
|
+
export type IsoDateTime = string;
|
|
1546
|
+
/** Whether a calendar picks one date or a start and end. */
|
|
1547
|
+
export declare const CalendarModes: readonly ["single", "range"];
|
|
1548
|
+
/** @see {@link CalendarModes} */
|
|
1549
|
+
export type CalendarMode = typeof CalendarModes[number];
|
|
1550
|
+
export interface DateRange {
|
|
1551
|
+
start: IsoDate | null;
|
|
1552
|
+
end: IsoDate | null;
|
|
1553
|
+
}
|
|
1554
|
+
export declare class UiCalendarComponent {
|
|
1555
|
+
private readonly host;
|
|
1556
|
+
private readonly injector;
|
|
1557
|
+
readonly mode: import("@angular/core").InputSignal<"single" | "range">;
|
|
1558
|
+
/** The picked date in single mode. */
|
|
1559
|
+
readonly value: import("@angular/core").ModelSignal<string | null>;
|
|
1560
|
+
/** The picked start and end in range mode. */
|
|
1561
|
+
readonly range: import("@angular/core").ModelSignal<DateRange>;
|
|
1562
|
+
readonly min: import("@angular/core").InputSignal<string | null>;
|
|
1563
|
+
readonly max: import("@angular/core").InputSignal<string | null>;
|
|
1564
|
+
readonly isDateDisabled: import("@angular/core").InputSignal<(date: IsoDate) => boolean>;
|
|
1565
|
+
readonly weekStart: import("@angular/core").InputSignal<0 | 1>;
|
|
1566
|
+
readonly locale: import("@angular/core").InputSignal<string>;
|
|
1567
|
+
protected readonly today: string;
|
|
1568
|
+
private readonly anchorDate;
|
|
1569
|
+
private readonly activeDate;
|
|
1570
|
+
private readonly hoveredDate;
|
|
1571
|
+
protected readonly viewMonth: import("@angular/core").WritableSignal<number>;
|
|
1572
|
+
protected readonly viewYear: import("@angular/core").WritableSignal<number>;
|
|
1573
|
+
protected readonly monthNames: import("@angular/core").Signal<string[]>;
|
|
1574
|
+
protected readonly weekdays: import("@angular/core").Signal<string[]>;
|
|
1575
|
+
protected readonly monthSource: import("@angular/core").Signal<SelectLocalDataSource<number>>;
|
|
1576
|
+
protected readonly yearSource: import("@angular/core").Signal<SelectLocalDataSource<number>>;
|
|
1577
|
+
protected readonly displayMonth: (month: number) => string;
|
|
1578
|
+
protected readonly days: import("@angular/core").Signal<CalendarDay[]>;
|
|
1579
|
+
private readonly rangeBounds;
|
|
1580
|
+
/** Only one day is tabbable, arrow keys move between the rest. */
|
|
1581
|
+
protected readonly tabbableDate: import("@angular/core").Signal<string>;
|
|
1582
|
+
protected readonly canGoBack: import("@angular/core").Signal<boolean>;
|
|
1583
|
+
protected readonly canGoForward: import("@angular/core").Signal<boolean>;
|
|
1584
|
+
/** Moves focus onto the active day, e.g. when a datepicker opens. */
|
|
1585
|
+
focusActiveDate(): void;
|
|
1586
|
+
protected showMonth(offset: number): void;
|
|
1587
|
+
protected select(day: CalendarDay): void;
|
|
1588
|
+
protected preview(date: IsoDate | null): void;
|
|
1589
|
+
protected handleKeydown(event: KeyboardEvent): void;
|
|
1590
|
+
private keyTarget;
|
|
1591
|
+
private isUnavailable;
|
|
1592
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<UiCalendarComponent, never>;
|
|
1593
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<UiCalendarComponent, "ui-calendar", never, {
|
|
1594
|
+
"mode": {
|
|
1595
|
+
"alias": "mode";
|
|
1596
|
+
"required": false;
|
|
1597
|
+
"isSignal": true;
|
|
1598
|
+
};
|
|
1599
|
+
"value": {
|
|
1600
|
+
"alias": "value";
|
|
1601
|
+
"required": false;
|
|
1602
|
+
"isSignal": true;
|
|
1603
|
+
};
|
|
1604
|
+
"range": {
|
|
1605
|
+
"alias": "range";
|
|
1606
|
+
"required": false;
|
|
1607
|
+
"isSignal": true;
|
|
1608
|
+
};
|
|
1609
|
+
"min": {
|
|
1610
|
+
"alias": "min";
|
|
1611
|
+
"required": false;
|
|
1612
|
+
"isSignal": true;
|
|
1613
|
+
};
|
|
1614
|
+
"max": {
|
|
1615
|
+
"alias": "max";
|
|
1616
|
+
"required": false;
|
|
1617
|
+
"isSignal": true;
|
|
1618
|
+
};
|
|
1619
|
+
"isDateDisabled": {
|
|
1620
|
+
"alias": "isDateDisabled";
|
|
1621
|
+
"required": false;
|
|
1622
|
+
"isSignal": true;
|
|
1623
|
+
};
|
|
1624
|
+
"weekStart": {
|
|
1625
|
+
"alias": "weekStart";
|
|
1626
|
+
"required": false;
|
|
1627
|
+
"isSignal": true;
|
|
1628
|
+
};
|
|
1629
|
+
"locale": {
|
|
1630
|
+
"alias": "locale";
|
|
1631
|
+
"required": false;
|
|
1632
|
+
"isSignal": true;
|
|
1633
|
+
};
|
|
1634
|
+
}, {
|
|
1635
|
+
"value": "valueChange";
|
|
1636
|
+
"range": "rangeChange";
|
|
1637
|
+
}, never, never, true, never>;
|
|
1638
|
+
}
|
|
1639
|
+
export declare class UiContainerComponent {
|
|
1640
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<UiContainerComponent, never>;
|
|
1641
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<UiContainerComponent, "ui-container", never, {}, {}, never, ["*"], true, never>;
|
|
1642
|
+
}
|
|
1643
|
+
export declare class UiDrawerComponent {
|
|
1644
|
+
readonly isOpen: import("@angular/core").WritableSignal<boolean>;
|
|
1645
|
+
readonly enableBackdrop: import("@angular/core").InputSignal<boolean>;
|
|
1646
|
+
readonly label: import("@angular/core").InputSignal<string>;
|
|
1647
|
+
readonly subLabel: import("@angular/core").InputSignal<string>;
|
|
1648
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<UiDrawerComponent, never>;
|
|
1649
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<UiDrawerComponent, "ui-drawer", never, {
|
|
1650
|
+
"enableBackdrop": {
|
|
1651
|
+
"alias": "enableBackdrop";
|
|
1652
|
+
"required": false;
|
|
1653
|
+
"isSignal": true;
|
|
1654
|
+
};
|
|
1655
|
+
"label": {
|
|
1656
|
+
"alias": "label";
|
|
1657
|
+
"required": false;
|
|
1658
|
+
"isSignal": true;
|
|
1659
|
+
};
|
|
1660
|
+
"subLabel": {
|
|
1661
|
+
"alias": "subLabel";
|
|
1662
|
+
"required": false;
|
|
1663
|
+
"isSignal": true;
|
|
1664
|
+
};
|
|
1665
|
+
}, {}, never, never, true, never>;
|
|
1666
|
+
}
|
|
1667
|
+
export declare class UiDropdownDirective {
|
|
1668
|
+
readonly element: ElementRef<any>;
|
|
1669
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<UiDropdownDirective, never>;
|
|
1670
|
+
static ɵdir: i0.ɵɵDirectiveDeclaration<UiDropdownDirective, "[uiDropdownContent]", never, {}, {}, never, never, true, never>;
|
|
1671
|
+
}
|
|
1672
|
+
export type DropdownMatchWidth = 'minWidth' | 'maxWidth' | 'both';
|
|
1673
|
+
export declare class UiDropdownComponent {
|
|
1674
|
+
protected readonly anchor: ElementRef<any>;
|
|
1675
|
+
readonly content: import("@angular/core").Signal<UiDropdownDirective | undefined>;
|
|
1676
|
+
readonly isOpen: import("@angular/core").InputSignal<WritableSignal<boolean>>;
|
|
1677
|
+
readonly placement: import("@angular/core").InputSignal<Placement>;
|
|
1678
|
+
readonly closeBehaviour: import("@angular/core").InputSignal<UiOverlayCloseBehaviour>;
|
|
1679
|
+
readonly offset: import("@angular/core").InputSignal<number>;
|
|
1680
|
+
readonly viewportPadding: import("@angular/core").InputSignal<number>;
|
|
1681
|
+
/** Gives the floating content a min-width matching the dropdown's own width. */
|
|
1682
|
+
readonly matchWidth: import("@angular/core").InputSignal<DropdownMatchWidth | null>;
|
|
1683
|
+
readonly toggle: () => void;
|
|
1684
|
+
readonly close: () => void;
|
|
1685
|
+
readonly open: () => void;
|
|
1686
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<UiDropdownComponent, never>;
|
|
1687
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<UiDropdownComponent, "ui-dropdown", ["uiDropdown"], {
|
|
1688
|
+
"isOpen": {
|
|
1689
|
+
"alias": "isOpen";
|
|
1690
|
+
"required": true;
|
|
1691
|
+
"isSignal": true;
|
|
1692
|
+
};
|
|
1693
|
+
"placement": {
|
|
1694
|
+
"alias": "placement";
|
|
1695
|
+
"required": false;
|
|
1696
|
+
"isSignal": true;
|
|
1697
|
+
};
|
|
1698
|
+
"closeBehaviour": {
|
|
1699
|
+
"alias": "closeBehaviour";
|
|
1700
|
+
"required": false;
|
|
1701
|
+
"isSignal": true;
|
|
1702
|
+
};
|
|
1703
|
+
"offset": {
|
|
1704
|
+
"alias": "offset";
|
|
1705
|
+
"required": false;
|
|
1706
|
+
"isSignal": true;
|
|
1707
|
+
};
|
|
1708
|
+
"viewportPadding": {
|
|
1709
|
+
"alias": "viewportPadding";
|
|
1710
|
+
"required": false;
|
|
1711
|
+
"isSignal": true;
|
|
1712
|
+
};
|
|
1713
|
+
"matchWidth": {
|
|
1714
|
+
"alias": "matchWidth";
|
|
1715
|
+
"required": false;
|
|
1716
|
+
"isSignal": true;
|
|
1717
|
+
};
|
|
1718
|
+
}, {}, ["content"], ["*"], true, never>;
|
|
1719
|
+
}
|
|
1720
|
+
export declare class UiKpiComponent {
|
|
1721
|
+
readonly title: import("@angular/core").InputSignal<string>;
|
|
1722
|
+
readonly value: import("@angular/core").InputSignal<string>;
|
|
1723
|
+
readonly hint: import("@angular/core").InputSignal<string>;
|
|
1724
|
+
readonly icon: import("@angular/core").InputSignal<string | undefined>;
|
|
1725
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<UiKpiComponent, never>;
|
|
1726
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<UiKpiComponent, "ui-kpi", never, {
|
|
1727
|
+
"title": {
|
|
1728
|
+
"alias": "title";
|
|
1729
|
+
"required": false;
|
|
1730
|
+
"isSignal": true;
|
|
1731
|
+
};
|
|
1732
|
+
"value": {
|
|
1733
|
+
"alias": "value";
|
|
1734
|
+
"required": false;
|
|
1735
|
+
"isSignal": true;
|
|
1736
|
+
};
|
|
1737
|
+
"hint": {
|
|
1738
|
+
"alias": "hint";
|
|
1739
|
+
"required": false;
|
|
1740
|
+
"isSignal": true;
|
|
1741
|
+
};
|
|
1742
|
+
"icon": {
|
|
1743
|
+
"alias": "icon";
|
|
1744
|
+
"required": false;
|
|
1745
|
+
"isSignal": true;
|
|
1746
|
+
};
|
|
1747
|
+
}, {}, never, ["[kpi-value]", "[kpi-badge]"], true, never>;
|
|
1748
|
+
}
|
|
1749
|
+
export declare class UiLoadingComponent {
|
|
1750
|
+
readonly type: import("@angular/core").InputSignal<"spinner" | "throbber" | "pulse-ring" | "pulse-dot" | "wave" | "equaliser" | "terminal" | "blinking-caret" | "shimmer-text" | "loading-dots" | "bouncing-dots" | "fading-dots">;
|
|
1751
|
+
protected readonly hasText: import("@angular/core").Signal<boolean>;
|
|
1752
|
+
protected readonly throbberSpokes: number[];
|
|
1753
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<UiLoadingComponent, never>;
|
|
1754
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<UiLoadingComponent, "ui-loading", never, {
|
|
1755
|
+
"type": {
|
|
1756
|
+
"alias": "type";
|
|
1757
|
+
"required": false;
|
|
1758
|
+
"isSignal": true;
|
|
1759
|
+
};
|
|
1760
|
+
}, {}, never, never, true, never>;
|
|
1761
|
+
}
|
|
1762
|
+
export declare const UI_LOADING_TYPES: ["spinner", "throbber", "pulse-ring", "pulse-dot", "wave", "equaliser", "terminal", "blinking-caret", "shimmer-text", "loading-dots", "bouncing-dots", "fading-dots"];
|
|
1763
|
+
export type UiLoadingType = typeof UI_LOADING_TYPES[number];
|
|
1764
|
+
export declare class UiModalComponent {
|
|
1765
|
+
readonly isOpen: import("@angular/core").ModelSignal<boolean>;
|
|
1766
|
+
readonly closeBehaviour: import("@angular/core").InputSignal<UiOverlayCloseBehaviour>;
|
|
1767
|
+
readonly title: import("@angular/core").InputSignal<string>;
|
|
1768
|
+
readonly classes: import("@angular/core").InputSignal<string>;
|
|
1769
|
+
readonly headerElement: import("@angular/core").Signal<TemplateRef<unknown> | undefined>;
|
|
1770
|
+
readonly footerElement: import("@angular/core").Signal<TemplateRef<unknown> | undefined>;
|
|
1771
|
+
readonly panelElement: import("@angular/core").Signal<ElementRef<any> | undefined>;
|
|
1772
|
+
readonly generatedClasses: import("@angular/core").Signal<string>;
|
|
1773
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<UiModalComponent, never>;
|
|
1774
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<UiModalComponent, "ui-modal", never, {
|
|
1775
|
+
"isOpen": {
|
|
1776
|
+
"alias": "isOpen";
|
|
1777
|
+
"required": true;
|
|
1778
|
+
"isSignal": true;
|
|
1779
|
+
};
|
|
1780
|
+
"closeBehaviour": {
|
|
1781
|
+
"alias": "closeBehaviour";
|
|
1782
|
+
"required": false;
|
|
1783
|
+
"isSignal": true;
|
|
1784
|
+
};
|
|
1785
|
+
"title": {
|
|
1786
|
+
"alias": "title";
|
|
1787
|
+
"required": false;
|
|
1788
|
+
"isSignal": true;
|
|
1789
|
+
};
|
|
1790
|
+
"classes": {
|
|
1791
|
+
"alias": "classes";
|
|
1792
|
+
"required": false;
|
|
1793
|
+
"isSignal": true;
|
|
1794
|
+
};
|
|
1795
|
+
}, {
|
|
1796
|
+
"isOpen": "isOpenChange";
|
|
1797
|
+
}, ["headerElement", "footerElement"], ["*"], true, never>;
|
|
1798
|
+
}
|
|
1799
|
+
/**
|
|
1800
|
+
* Formats a money value, e.g. -42.1 as "-£42.10".
|
|
1801
|
+
*/
|
|
1802
|
+
export declare class UiMoneyComponent {
|
|
1803
|
+
readonly value: import("@angular/core").InputSignal<number | null>;
|
|
1804
|
+
readonly currency: import("@angular/core").InputSignal<string>;
|
|
1805
|
+
readonly locale: import("@angular/core").InputSignal<string>;
|
|
1806
|
+
readonly signDisplay: import("@angular/core").InputSignal<"auto" | "always" | "exceptZero" | "never">;
|
|
1807
|
+
/** Green for money in, red for money out. */
|
|
1808
|
+
readonly colourBySign: import("@angular/core").InputSignalWithTransform<boolean, unknown>;
|
|
1809
|
+
/** Short form like "£12K", the full amount goes in the title. */
|
|
1810
|
+
readonly compact: import("@angular/core").InputSignalWithTransform<boolean, unknown>;
|
|
1811
|
+
/** Shown when there's no value. */
|
|
1812
|
+
readonly placeholder: import("@angular/core").InputSignal<string>;
|
|
1813
|
+
readonly classes: import("@angular/core").InputSignal<string>;
|
|
1814
|
+
private readonly amount;
|
|
1815
|
+
protected readonly formatted: import("@angular/core").Signal<string>;
|
|
1816
|
+
protected readonly title: import("@angular/core").Signal<string | null>;
|
|
1817
|
+
readonly generatedClasses: import("@angular/core").Signal<string>;
|
|
1818
|
+
private readonly signClass;
|
|
1819
|
+
private format;
|
|
1820
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<UiMoneyComponent, never>;
|
|
1821
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<UiMoneyComponent, "ui-money", never, {
|
|
1822
|
+
"value": {
|
|
1823
|
+
"alias": "value";
|
|
1824
|
+
"required": true;
|
|
1825
|
+
"isSignal": true;
|
|
1826
|
+
};
|
|
1827
|
+
"currency": {
|
|
1828
|
+
"alias": "currency";
|
|
1829
|
+
"required": false;
|
|
1830
|
+
"isSignal": true;
|
|
1831
|
+
};
|
|
1832
|
+
"locale": {
|
|
1833
|
+
"alias": "locale";
|
|
1834
|
+
"required": false;
|
|
1835
|
+
"isSignal": true;
|
|
1836
|
+
};
|
|
1837
|
+
"signDisplay": {
|
|
1838
|
+
"alias": "signDisplay";
|
|
1839
|
+
"required": false;
|
|
1840
|
+
"isSignal": true;
|
|
1841
|
+
};
|
|
1842
|
+
"colourBySign": {
|
|
1843
|
+
"alias": "colourBySign";
|
|
1844
|
+
"required": false;
|
|
1845
|
+
"isSignal": true;
|
|
1846
|
+
};
|
|
1847
|
+
"compact": {
|
|
1848
|
+
"alias": "compact";
|
|
1849
|
+
"required": false;
|
|
1850
|
+
"isSignal": true;
|
|
1851
|
+
};
|
|
1852
|
+
"placeholder": {
|
|
1853
|
+
"alias": "placeholder";
|
|
1854
|
+
"required": false;
|
|
1855
|
+
"isSignal": true;
|
|
1856
|
+
};
|
|
1857
|
+
"classes": {
|
|
1858
|
+
"alias": "classes";
|
|
1859
|
+
"required": false;
|
|
1860
|
+
"isSignal": true;
|
|
1861
|
+
};
|
|
1862
|
+
}, {}, never, never, true, never>;
|
|
1863
|
+
}
|
|
1864
|
+
/** Intl signDisplay values, controls when a + or - is shown. */
|
|
1865
|
+
export declare const MoneySignDisplays: readonly ["auto", "always", "exceptZero", "never"];
|
|
1866
|
+
/** @see {@link MoneySignDisplays} */
|
|
1867
|
+
export type MoneySignDisplay = typeof MoneySignDisplays[number];
|
|
1868
|
+
/** A page index, or a gap between page numbers. */
|
|
1869
|
+
export type PaginationItem = number | 'ellipsis';
|
|
1870
|
+
export declare class UiPaginationComponent {
|
|
1871
|
+
readonly page: import("@angular/core").ModelSignal<number>;
|
|
1872
|
+
readonly totalPages: import("@angular/core").InputSignal<number>;
|
|
1873
|
+
readonly classes: import("@angular/core").InputSignal<string>;
|
|
1874
|
+
readonly generatedClasses: import("@angular/core").Signal<string>;
|
|
1875
|
+
readonly isFirstPage: import("@angular/core").Signal<boolean>;
|
|
1876
|
+
readonly isLastPage: import("@angular/core").Signal<boolean>;
|
|
1877
|
+
readonly items: import("@angular/core").Signal<PaginationItem[]>;
|
|
1878
|
+
pageLabel(page: number): string;
|
|
1879
|
+
goToPage(page: number): void;
|
|
1880
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<UiPaginationComponent, never>;
|
|
1881
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<UiPaginationComponent, "ui-pagination", never, {
|
|
1882
|
+
"page": {
|
|
1883
|
+
"alias": "page";
|
|
1884
|
+
"required": false;
|
|
1885
|
+
"isSignal": true;
|
|
1886
|
+
};
|
|
1887
|
+
"totalPages": {
|
|
1888
|
+
"alias": "totalPages";
|
|
1889
|
+
"required": true;
|
|
1890
|
+
"isSignal": true;
|
|
1891
|
+
};
|
|
1892
|
+
"classes": {
|
|
1893
|
+
"alias": "classes";
|
|
1894
|
+
"required": false;
|
|
1895
|
+
"isSignal": true;
|
|
1896
|
+
};
|
|
1897
|
+
}, {
|
|
1898
|
+
"page": "pageChange";
|
|
1899
|
+
}, never, never, true, never>;
|
|
1900
|
+
}
|
|
1901
|
+
/** Same names as badges, so a status reads the same wherever it shows. */
|
|
1902
|
+
export declare const ProgressIntents: readonly ["primary", "secondary", "success", "warning", "danger"];
|
|
1903
|
+
/** @see {@link ProgressIntents} */
|
|
1904
|
+
export type ProgressIntent = typeof ProgressIntents[number];
|
|
1905
|
+
/** Track thickness, md matches Preline's default and xl fits a label inside. */
|
|
1906
|
+
export declare const ProgressSizes: readonly ["sm", "md", "lg", "xl"];
|
|
1907
|
+
/** @see {@link ProgressSizes} */
|
|
1908
|
+
export type ProgressSize = typeof ProgressSizes[number];
|
|
1909
|
+
/** Where the value label goes, if anywhere. */
|
|
1910
|
+
export declare const ProgressLabelPositions: readonly ["none", "inside", "end", "top", "floating"];
|
|
1911
|
+
/** @see {@link ProgressLabelPositions} */
|
|
1912
|
+
export type ProgressLabelPosition = typeof ProgressLabelPositions[number];
|
|
1913
|
+
/** rounded: both ends round, square: no rounding, straight: square track with a round fill. */
|
|
1914
|
+
export declare const ProgressShapes: readonly ["rounded", "square", "straight"];
|
|
1915
|
+
/** @see {@link ProgressShapes} */
|
|
1916
|
+
export type ProgressShape = typeof ProgressShapes[number];
|
|
1917
|
+
export declare const ProgressOrientations: readonly ["horizontal", "vertical"];
|
|
1918
|
+
/** @see {@link ProgressOrientations} */
|
|
1919
|
+
export type ProgressOrientation = typeof ProgressOrientations[number];
|
|
1920
|
+
/** One part of a stacked bar, e.g. spending in one category. */
|
|
1921
|
+
export interface ProgressSegment {
|
|
1922
|
+
value: number;
|
|
1923
|
+
intent?: ProgressIntent;
|
|
1924
|
+
label?: string;
|
|
1925
|
+
}
|
|
1926
|
+
interface SegmentView {
|
|
1927
|
+
percent: number;
|
|
1928
|
+
intent: ProgressIntent;
|
|
1929
|
+
label: string;
|
|
1930
|
+
}
|
|
1931
|
+
/**
|
|
1932
|
+
* A progress bar. Leave `value` null for work of unknown length, a value over
|
|
1933
|
+
* `max` fills the bar but the label still shows the real amount.
|
|
1934
|
+
*/
|
|
1935
|
+
export declare class UiProgressComponent {
|
|
1936
|
+
readonly value: import("@angular/core").InputSignal<number | null>;
|
|
1937
|
+
readonly max: import("@angular/core").InputSignal<number>;
|
|
1938
|
+
readonly intent: import("@angular/core").InputSignal<"primary" | "secondary" | "success" | "warning" | "danger">;
|
|
1939
|
+
readonly size: import("@angular/core").InputSignal<"sm" | "md" | "lg" | "xl">;
|
|
1940
|
+
readonly shape: import("@angular/core").InputSignal<"square" | "straight" | "rounded">;
|
|
1941
|
+
readonly orientation: import("@angular/core").InputSignal<"vertical" | "horizontal">;
|
|
1942
|
+
readonly title: import("@angular/core").InputSignal<string>;
|
|
1943
|
+
readonly labelPosition: import("@angular/core").InputSignal<"top" | "none" | "end" | "floating" | "inside">;
|
|
1944
|
+
readonly labelWith: import("@angular/core").InputSignal<(value: number, max: number) => string>;
|
|
1945
|
+
/** Splits the bar into this many blocks. */
|
|
1946
|
+
readonly steps: import("@angular/core").InputSignal<number | null>;
|
|
1947
|
+
/** Several fills stacked in one track, each with its own colour. */
|
|
1948
|
+
readonly segments: import("@angular/core").InputSignal<ProgressSegment[] | null>;
|
|
1949
|
+
/** Needed when there's no visible title. */
|
|
1950
|
+
readonly ariaLabel: import("@angular/core").InputSignal<string>;
|
|
1951
|
+
protected readonly isIndeterminate: import("@angular/core").Signal<boolean>;
|
|
1952
|
+
protected readonly total: import("@angular/core").Signal<number>;
|
|
1953
|
+
/** 0 to 100, what the bar actually draws. */
|
|
1954
|
+
protected readonly fillPercent: import("@angular/core").Signal<number>;
|
|
1955
|
+
protected readonly label: import("@angular/core").Signal<string>;
|
|
1956
|
+
protected readonly segmentViews: import("@angular/core").Signal<SegmentView[]>;
|
|
1957
|
+
protected readonly stepStates: import("@angular/core").Signal<boolean[]>;
|
|
1958
|
+
protected readonly floatingOffset: import("@angular/core").Signal<string>;
|
|
1959
|
+
protected readonly isVertical: import("@angular/core").Signal<boolean>;
|
|
1960
|
+
protected readonly rootClasses: import("@angular/core").Signal<string>;
|
|
1961
|
+
protected fillClasses(intent: ProgressIntent): string;
|
|
1962
|
+
private clampPercent;
|
|
1963
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<UiProgressComponent, never>;
|
|
1964
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<UiProgressComponent, "ui-progress", never, {
|
|
1965
|
+
"value": {
|
|
1966
|
+
"alias": "value";
|
|
1967
|
+
"required": false;
|
|
1968
|
+
"isSignal": true;
|
|
1969
|
+
};
|
|
1970
|
+
"max": {
|
|
1971
|
+
"alias": "max";
|
|
1972
|
+
"required": false;
|
|
1973
|
+
"isSignal": true;
|
|
1974
|
+
};
|
|
1975
|
+
"intent": {
|
|
1976
|
+
"alias": "intent";
|
|
1977
|
+
"required": false;
|
|
1978
|
+
"isSignal": true;
|
|
1979
|
+
};
|
|
1980
|
+
"size": {
|
|
1981
|
+
"alias": "size";
|
|
1982
|
+
"required": false;
|
|
1983
|
+
"isSignal": true;
|
|
1984
|
+
};
|
|
1985
|
+
"shape": {
|
|
1986
|
+
"alias": "shape";
|
|
1987
|
+
"required": false;
|
|
1988
|
+
"isSignal": true;
|
|
1989
|
+
};
|
|
1990
|
+
"orientation": {
|
|
1991
|
+
"alias": "orientation";
|
|
1992
|
+
"required": false;
|
|
1993
|
+
"isSignal": true;
|
|
1994
|
+
};
|
|
1995
|
+
"title": {
|
|
1996
|
+
"alias": "title";
|
|
1997
|
+
"required": false;
|
|
1998
|
+
"isSignal": true;
|
|
1999
|
+
};
|
|
2000
|
+
"labelPosition": {
|
|
2001
|
+
"alias": "labelPosition";
|
|
2002
|
+
"required": false;
|
|
2003
|
+
"isSignal": true;
|
|
2004
|
+
};
|
|
2005
|
+
"labelWith": {
|
|
2006
|
+
"alias": "labelWith";
|
|
2007
|
+
"required": false;
|
|
2008
|
+
"isSignal": true;
|
|
2009
|
+
};
|
|
2010
|
+
"steps": {
|
|
2011
|
+
"alias": "steps";
|
|
2012
|
+
"required": false;
|
|
2013
|
+
"isSignal": true;
|
|
2014
|
+
};
|
|
2015
|
+
"segments": {
|
|
2016
|
+
"alias": "segments";
|
|
2017
|
+
"required": false;
|
|
2018
|
+
"isSignal": true;
|
|
2019
|
+
};
|
|
2020
|
+
"ariaLabel": {
|
|
2021
|
+
"alias": "ariaLabel";
|
|
2022
|
+
"required": false;
|
|
2023
|
+
"isSignal": true;
|
|
2024
|
+
};
|
|
2025
|
+
}, {}, never, never, true, never>;
|
|
2026
|
+
}
|
|
2027
|
+
/**
|
|
2028
|
+
* A placeholder shown while content loads. Size it with classes on the
|
|
2029
|
+
* element, e.g. `class="w-48"` for text or `class="size-12"` for a circle.
|
|
2030
|
+
*/
|
|
2031
|
+
export declare class UiSkeletonComponent {
|
|
2032
|
+
readonly shape: import("@angular/core").InputSignal<"text" | "circle" | "rect">;
|
|
2033
|
+
readonly animated: import("@angular/core").InputSignalWithTransform<boolean, unknown>;
|
|
2034
|
+
/** Text only, stacks this many lines with a shorter last one. */
|
|
2035
|
+
readonly lines: import("@angular/core").InputSignalWithTransform<number, unknown>;
|
|
2036
|
+
readonly classes: import("@angular/core").InputSignal<string>;
|
|
2037
|
+
protected readonly lineIndexes: import("@angular/core").Signal<number[]>;
|
|
2038
|
+
readonly generatedClasses: import("@angular/core").Signal<string>;
|
|
2039
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<UiSkeletonComponent, never>;
|
|
2040
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<UiSkeletonComponent, "ui-skeleton", never, {
|
|
2041
|
+
"shape": {
|
|
2042
|
+
"alias": "shape";
|
|
2043
|
+
"required": false;
|
|
2044
|
+
"isSignal": true;
|
|
2045
|
+
};
|
|
2046
|
+
"animated": {
|
|
2047
|
+
"alias": "animated";
|
|
2048
|
+
"required": false;
|
|
2049
|
+
"isSignal": true;
|
|
2050
|
+
};
|
|
2051
|
+
"lines": {
|
|
2052
|
+
"alias": "lines";
|
|
2053
|
+
"required": false;
|
|
2054
|
+
"isSignal": true;
|
|
2055
|
+
};
|
|
2056
|
+
"classes": {
|
|
2057
|
+
"alias": "classes";
|
|
2058
|
+
"required": false;
|
|
2059
|
+
"isSignal": true;
|
|
2060
|
+
};
|
|
2061
|
+
}, {}, never, never, true, never>;
|
|
2062
|
+
}
|
|
2063
|
+
/** What a skeleton stands in for, lines of text, an avatar or a block. */
|
|
2064
|
+
export declare const SkeletonShapes: readonly ["text", "circle", "rect"];
|
|
2065
|
+
/** @see {@link SkeletonShapes} */
|
|
2066
|
+
export type SkeletonShape = typeof SkeletonShapes[number];
|
|
2067
|
+
export declare class UiTabDirective {
|
|
2068
|
+
label: import("@angular/core").InputSignal<string>;
|
|
2069
|
+
disabled: import("@angular/core").InputSignal<boolean>;
|
|
2070
|
+
active: import("@angular/core").ModelSignal<boolean>;
|
|
2071
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<UiTabDirective, never>;
|
|
2072
|
+
static ɵdir: i0.ɵɵDirectiveDeclaration<UiTabDirective, "[uiTab]", never, {
|
|
2073
|
+
"label": {
|
|
2074
|
+
"alias": "uiTab";
|
|
2075
|
+
"required": true;
|
|
2076
|
+
"isSignal": true;
|
|
2077
|
+
};
|
|
2078
|
+
"disabled": {
|
|
2079
|
+
"alias": "disabled";
|
|
2080
|
+
"required": false;
|
|
2081
|
+
"isSignal": true;
|
|
2082
|
+
};
|
|
2083
|
+
"active": {
|
|
2084
|
+
"alias": "active";
|
|
2085
|
+
"required": false;
|
|
2086
|
+
"isSignal": true;
|
|
2087
|
+
};
|
|
2088
|
+
}, {
|
|
2089
|
+
"active": "activeChange";
|
|
2090
|
+
}, never, never, true, never>;
|
|
2091
|
+
}
|
|
2092
|
+
export type TabButtonAppearance = 'solid' | 'underline';
|
|
2093
|
+
export declare class UiTabComponent {
|
|
2094
|
+
readonly tabs: import("@angular/core").Signal<readonly UiTabDirective[]>;
|
|
2095
|
+
readonly selectedIndex: import("@angular/core").WritableSignal<number>;
|
|
2096
|
+
readonly actions: import("@angular/core").Signal<TemplateRef<unknown> | undefined>;
|
|
2097
|
+
readonly appearance: import("@angular/core").InputSignal<TabButtonAppearance>;
|
|
2098
|
+
readonly generatedButtonClasses: import("@angular/core").Signal<string>;
|
|
2099
|
+
constructor();
|
|
2100
|
+
select(index: number): void;
|
|
2101
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<UiTabComponent, never>;
|
|
2102
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<UiTabComponent, "ui-tab", never, {
|
|
2103
|
+
"appearance": {
|
|
2104
|
+
"alias": "appearance";
|
|
2105
|
+
"required": false;
|
|
2106
|
+
"isSignal": true;
|
|
2107
|
+
};
|
|
2108
|
+
}, {}, ["tabs", "actions"], ["*"], true, never>;
|
|
2109
|
+
}
|
|
2110
|
+
export type TableSortDirection = 'asc' | 'desc';
|
|
2111
|
+
export interface TableSortState {
|
|
2112
|
+
columnId: string;
|
|
2113
|
+
direction: TableSortDirection;
|
|
2114
|
+
}
|
|
2115
|
+
export type TableColumnDisplayType = 'text' | 'number' | 'currency' | 'date' | 'time' | 'icon';
|
|
2116
|
+
export type TableColumnPin = 'left' | 'right';
|
|
2117
|
+
export interface TableColumnFilterOption {
|
|
2118
|
+
label: string;
|
|
2119
|
+
value: unknown;
|
|
2120
|
+
}
|
|
2121
|
+
export interface TableColumn<Row> {
|
|
2122
|
+
/** unique key, used for sorting/filtering/visibility/pinning/reordering */
|
|
2123
|
+
id: string;
|
|
2124
|
+
header: string;
|
|
2125
|
+
accessor: (row: Row) => unknown;
|
|
2126
|
+
/** how the cell value is formatted for display, defaults to plain text */
|
|
2127
|
+
displayType?: TableColumnDisplayType;
|
|
2128
|
+
/** ISO currency code, used when displayType is 'currency' */
|
|
2129
|
+
currency?: string;
|
|
2130
|
+
sortable?: boolean;
|
|
2131
|
+
filterable?: boolean;
|
|
2132
|
+
/** when set, the filter renders as a select instead of a free-text contains filter */
|
|
2133
|
+
filterOptions?: TableColumnFilterOption[];
|
|
2134
|
+
/** fix the column to one side of the scroll area, needs width to compute its offset */
|
|
2135
|
+
pin?: TableColumnPin;
|
|
2136
|
+
resizable?: boolean;
|
|
2137
|
+
width?: number;
|
|
2138
|
+
minWidth?: number;
|
|
2139
|
+
/** false excludes the column from the drag-to-reorder behaviour */
|
|
2140
|
+
reorderable?: boolean;
|
|
2141
|
+
/** false excludes the column from the visibility toggle menu */
|
|
2142
|
+
hideable?: boolean;
|
|
2143
|
+
}
|
|
2144
|
+
export interface TableRowAction<Row> {
|
|
2145
|
+
id: string;
|
|
2146
|
+
label: string;
|
|
2147
|
+
icon: string;
|
|
2148
|
+
onClick: (row: Row) => void;
|
|
2149
|
+
disabled?: (row: Row) => boolean;
|
|
2150
|
+
}
|
|
2151
|
+
export interface TableDataSourceParameters {
|
|
2152
|
+
page: number;
|
|
2153
|
+
/** 0 or less means "no limit", used when the table isn't paginated */
|
|
2154
|
+
size: number;
|
|
2155
|
+
query: string;
|
|
2156
|
+
sort: TableSortState | null;
|
|
2157
|
+
filters: Record<string, unknown>;
|
|
2158
|
+
}
|
|
2159
|
+
export interface TableDataSourceContent<Row> {
|
|
2160
|
+
items: Row[];
|
|
2161
|
+
total: number;
|
|
2162
|
+
}
|
|
2163
|
+
export interface TableDataSource<Row> {
|
|
2164
|
+
load(params: TableDataSourceParameters): Observable<TableDataSourceContent<Row>>;
|
|
2165
|
+
}
|
|
2166
|
+
export interface TableLocalDataSourceOptions<Row> {
|
|
2167
|
+
search?: (item: Row, query: string) => boolean;
|
|
2168
|
+
sortValue?: (item: Row, columnId: string) => unknown;
|
|
2169
|
+
filter?: (item: Row, filters: Record<string, unknown>) => boolean;
|
|
2170
|
+
}
|
|
2171
|
+
export declare class TableLocalDataSource<Row> implements TableDataSource<Row> {
|
|
2172
|
+
private readonly items;
|
|
2173
|
+
private readonly options;
|
|
2174
|
+
constructor(items: Row[], options?: TableLocalDataSourceOptions<Row>);
|
|
2175
|
+
load(params: TableDataSourceParameters): Observable<TableDataSourceContent<Row>>;
|
|
2176
|
+
}
|
|
2177
|
+
export declare class TableRemoteDataSource<Row> implements TableDataSource<Row> {
|
|
2178
|
+
private readonly fetch;
|
|
2179
|
+
constructor(fetch: (params: TableDataSourceParameters) => Observable<TableDataSourceContent<Row>>);
|
|
2180
|
+
load(params: TableDataSourceParameters): Observable<TableDataSourceContent<Row>>;
|
|
2181
|
+
}
|
|
2182
|
+
interface ColumnDragPreview {
|
|
2183
|
+
label: string;
|
|
2184
|
+
x: number;
|
|
2185
|
+
y: number;
|
|
2186
|
+
width: number;
|
|
2187
|
+
height: number;
|
|
2188
|
+
}
|
|
2189
|
+
export declare class UiTableComponent<Row = unknown> implements OnInit, OnDestroy {
|
|
2190
|
+
readonly classes: import("@angular/core").InputSignal<string>;
|
|
2191
|
+
readonly columns: import("@angular/core").InputSignal<TableColumn<Row>[]>;
|
|
2192
|
+
readonly dataSource: import("@angular/core").InputSignal<TableDataSource<Row>>;
|
|
2193
|
+
readonly emptyMessage: import("@angular/core").InputSignal<string>;
|
|
2194
|
+
readonly errorMessage: import("@angular/core").InputSignal<string>;
|
|
2195
|
+
readonly rowId: import("@angular/core").InputSignal<(row: Row, index: number) => unknown>;
|
|
2196
|
+
readonly selectable: import("@angular/core").InputSignalWithTransform<boolean, unknown>;
|
|
2197
|
+
readonly searchable: import("@angular/core").InputSignalWithTransform<boolean, unknown>;
|
|
2198
|
+
readonly searchPlaceholder: import("@angular/core").InputSignal<string>;
|
|
2199
|
+
readonly paginated: import("@angular/core").InputSignalWithTransform<boolean, unknown>;
|
|
2200
|
+
readonly pageSize: import("@angular/core").InputSignal<number>;
|
|
2201
|
+
readonly toggleableColumns: import("@angular/core").InputSignalWithTransform<boolean, unknown>;
|
|
2202
|
+
readonly reorderableColumns: import("@angular/core").InputSignalWithTransform<boolean, unknown>;
|
|
2203
|
+
readonly reorderableRows: import("@angular/core").InputSignalWithTransform<boolean, unknown>;
|
|
2204
|
+
readonly stickyHeader: import("@angular/core").InputSignalWithTransform<boolean, unknown>;
|
|
2205
|
+
readonly actions: import("@angular/core").InputSignal<TableRowAction<Row>[]>;
|
|
2206
|
+
readonly sort: import("@angular/core").ModelSignal<TableSortState | null>;
|
|
2207
|
+
readonly selectedRowIds: import("@angular/core").ModelSignal<Set<unknown>>;
|
|
2208
|
+
readonly selectionChange: import("@angular/core").OutputEmitterRef<Row[]>;
|
|
2209
|
+
readonly rowsReordered: import("@angular/core").OutputEmitterRef<Row[]>;
|
|
2210
|
+
readonly rows: import("@angular/core").WritableSignal<Row[]>;
|
|
2211
|
+
readonly total: import("@angular/core").WritableSignal<number>;
|
|
2212
|
+
readonly loading: import("@angular/core").WritableSignal<boolean>;
|
|
2213
|
+
readonly error: import("@angular/core").WritableSignal<boolean>;
|
|
2214
|
+
readonly query: import("@angular/core").WritableSignal<string>;
|
|
2215
|
+
readonly filters: import("@angular/core").WritableSignal<Record<string, unknown>>;
|
|
2216
|
+
protected readonly currentPage: import("@angular/core").WritableSignal<number>;
|
|
2217
|
+
protected readonly hiddenColumnIds: import("@angular/core").WritableSignal<Set<string>>;
|
|
2218
|
+
protected readonly columnOrderIds: import("@angular/core").WritableSignal<string[] | null>;
|
|
2219
|
+
protected readonly columnWidths: import("@angular/core").WritableSignal<Record<string, number>>;
|
|
2220
|
+
protected readonly columnMenuOpen: import("@angular/core").WritableSignal<boolean>;
|
|
2221
|
+
protected readonly filterMenuOpen: import("@angular/core").WritableSignal<boolean>;
|
|
2222
|
+
protected readonly draggedColumnId: import("@angular/core").WritableSignal<string | null>;
|
|
2223
|
+
protected readonly dragOverColumnId: import("@angular/core").WritableSignal<string | null>;
|
|
2224
|
+
protected readonly dragPreview: import("@angular/core").WritableSignal<ColumnDragPreview | null>;
|
|
2225
|
+
protected readonly draggedRowIndex: import("@angular/core").WritableSignal<number | null>;
|
|
2226
|
+
readonly isEmpty: import("@angular/core").Signal<boolean>;
|
|
2227
|
+
readonly generatedClasses: import("@angular/core").Signal<string>;
|
|
2228
|
+
protected readonly orderedColumns: import("@angular/core").Signal<TableColumn<Row>[]>;
|
|
2229
|
+
protected readonly hideableColumns: import("@angular/core").Signal<TableColumn<Row>[]>;
|
|
2230
|
+
protected readonly visibleColumns: import("@angular/core").Signal<TableColumn<Row>[]>;
|
|
2231
|
+
protected readonly renderColumns: import("@angular/core").Signal<TableColumn<Row>[]>;
|
|
2232
|
+
protected readonly filterableColumns: import("@angular/core").Signal<TableColumn<Row>[]>;
|
|
2233
|
+
protected readonly hasFilterableColumns: import("@angular/core").Signal<boolean>;
|
|
2234
|
+
protected readonly activeFilterCount: import("@angular/core").Signal<number>;
|
|
2235
|
+
protected readonly hasActions: import("@angular/core").Signal<boolean>;
|
|
2236
|
+
protected readonly actionsColumnWidth: import("@angular/core").Signal<number>;
|
|
2237
|
+
protected readonly totalPages: import("@angular/core").Signal<number>;
|
|
2238
|
+
protected readonly resultsLabel: import("@angular/core").Signal<string>;
|
|
2239
|
+
protected readonly allSelected: import("@angular/core").Signal<boolean>;
|
|
2240
|
+
protected readonly someSelected: import("@angular/core").Signal<boolean>;
|
|
2241
|
+
private readonly leftOffsets;
|
|
2242
|
+
private readonly rightOffsets;
|
|
2243
|
+
private readonly load$;
|
|
2244
|
+
private readonly destroyRef;
|
|
2245
|
+
private readonly cdr;
|
|
2246
|
+
private resizeState;
|
|
2247
|
+
private columnDragState;
|
|
2248
|
+
private readonly filterDataSources;
|
|
2249
|
+
constructor();
|
|
2250
|
+
ngOnInit(): void;
|
|
2251
|
+
ngOnDestroy(): void;
|
|
2252
|
+
reload(): void;
|
|
2253
|
+
protected cellValue(column: TableColumn<Row>, row: Row): unknown;
|
|
2254
|
+
protected cellIconValue(column: TableColumn<Row>, row: Row): string;
|
|
2255
|
+
protected formattedCellValue(column: TableColumn<Row>, row: Row): string;
|
|
2256
|
+
protected onQueryChange(value: string): void;
|
|
2257
|
+
protected filterValue(columnId: string): string;
|
|
2258
|
+
protected onFilterInput(columnId: string, value: string): void;
|
|
2259
|
+
protected filterDataSource(column: TableColumn<Row>): SelectDataSource<TableColumnFilterOption>;
|
|
2260
|
+
protected selectedFilterOption(column: TableColumn<Row>): TableColumnFilterOption | null;
|
|
2261
|
+
protected filterOptionLabel(option: TableColumnFilterOption): string;
|
|
2262
|
+
protected onFilterSelect(columnId: string, option: TableColumnFilterOption | null): void;
|
|
2263
|
+
protected clearFilters(): void;
|
|
2264
|
+
protected toggleSort(column: TableColumn<Row>): void;
|
|
2265
|
+
protected sortIcon(column: TableColumn<Row>): string;
|
|
2266
|
+
protected goToPage(page: number): void;
|
|
2267
|
+
protected isColumnVisible(column: TableColumn<Row>): boolean;
|
|
2268
|
+
protected toggleColumnVisibility(column: TableColumn<Row>): void;
|
|
2269
|
+
protected isRowSelected(row: Row, index: number): boolean;
|
|
2270
|
+
protected toggleRow(row: Row, index: number): void;
|
|
2271
|
+
protected toggleSelectAll(): void;
|
|
2272
|
+
protected columnWidth(column: TableColumn<Row>): number;
|
|
2273
|
+
protected isPinned(column: TableColumn<Row>): boolean;
|
|
2274
|
+
protected leftOffset(column: TableColumn<Row>): number | null;
|
|
2275
|
+
protected rightOffset(column: TableColumn<Row>): number | null;
|
|
2276
|
+
protected startResize(event: PointerEvent, column: TableColumn<Row>): void;
|
|
2277
|
+
protected canReorderRows(): boolean;
|
|
2278
|
+
protected onColumnDragStart(event: PointerEvent, column: TableColumn<Row>): void;
|
|
2279
|
+
protected onRowDragStart(event: DragEvent, index: number): void;
|
|
2280
|
+
protected onRowDragOver(event: DragEvent): void;
|
|
2281
|
+
protected onRowDrop(event: DragEvent, index: number): void;
|
|
2282
|
+
private readonly onResizeMove;
|
|
2283
|
+
private readonly onResizeEnd;
|
|
2284
|
+
private readonly onColumnDragMove;
|
|
2285
|
+
private readonly onColumnDragEnd;
|
|
2286
|
+
private setFilter;
|
|
2287
|
+
private resetAndReload;
|
|
2288
|
+
private emitSelectionChange;
|
|
2289
|
+
private fetch;
|
|
2290
|
+
private applyResult;
|
|
2291
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<UiTableComponent<any>, never>;
|
|
2292
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<UiTableComponent<any>, "ui-table", never, {
|
|
2293
|
+
"classes": {
|
|
2294
|
+
"alias": "classes";
|
|
2295
|
+
"required": false;
|
|
2296
|
+
"isSignal": true;
|
|
2297
|
+
};
|
|
2298
|
+
"columns": {
|
|
2299
|
+
"alias": "columns";
|
|
2300
|
+
"required": true;
|
|
2301
|
+
"isSignal": true;
|
|
2302
|
+
};
|
|
2303
|
+
"dataSource": {
|
|
2304
|
+
"alias": "dataSource";
|
|
2305
|
+
"required": true;
|
|
2306
|
+
"isSignal": true;
|
|
2307
|
+
};
|
|
2308
|
+
"emptyMessage": {
|
|
2309
|
+
"alias": "emptyMessage";
|
|
2310
|
+
"required": false;
|
|
2311
|
+
"isSignal": true;
|
|
2312
|
+
};
|
|
2313
|
+
"errorMessage": {
|
|
2314
|
+
"alias": "errorMessage";
|
|
2315
|
+
"required": false;
|
|
2316
|
+
"isSignal": true;
|
|
2317
|
+
};
|
|
2318
|
+
"rowId": {
|
|
2319
|
+
"alias": "rowId";
|
|
2320
|
+
"required": false;
|
|
2321
|
+
"isSignal": true;
|
|
2322
|
+
};
|
|
2323
|
+
"selectable": {
|
|
2324
|
+
"alias": "selectable";
|
|
2325
|
+
"required": false;
|
|
2326
|
+
"isSignal": true;
|
|
2327
|
+
};
|
|
2328
|
+
"searchable": {
|
|
2329
|
+
"alias": "searchable";
|
|
2330
|
+
"required": false;
|
|
2331
|
+
"isSignal": true;
|
|
2332
|
+
};
|
|
2333
|
+
"searchPlaceholder": {
|
|
2334
|
+
"alias": "searchPlaceholder";
|
|
2335
|
+
"required": false;
|
|
2336
|
+
"isSignal": true;
|
|
2337
|
+
};
|
|
2338
|
+
"paginated": {
|
|
2339
|
+
"alias": "paginated";
|
|
2340
|
+
"required": false;
|
|
2341
|
+
"isSignal": true;
|
|
2342
|
+
};
|
|
2343
|
+
"pageSize": {
|
|
2344
|
+
"alias": "pageSize";
|
|
2345
|
+
"required": false;
|
|
2346
|
+
"isSignal": true;
|
|
2347
|
+
};
|
|
2348
|
+
"toggleableColumns": {
|
|
2349
|
+
"alias": "toggleableColumns";
|
|
2350
|
+
"required": false;
|
|
2351
|
+
"isSignal": true;
|
|
2352
|
+
};
|
|
2353
|
+
"reorderableColumns": {
|
|
2354
|
+
"alias": "reorderableColumns";
|
|
2355
|
+
"required": false;
|
|
2356
|
+
"isSignal": true;
|
|
2357
|
+
};
|
|
2358
|
+
"reorderableRows": {
|
|
2359
|
+
"alias": "reorderableRows";
|
|
2360
|
+
"required": false;
|
|
2361
|
+
"isSignal": true;
|
|
2362
|
+
};
|
|
2363
|
+
"stickyHeader": {
|
|
2364
|
+
"alias": "stickyHeader";
|
|
2365
|
+
"required": false;
|
|
2366
|
+
"isSignal": true;
|
|
2367
|
+
};
|
|
2368
|
+
"actions": {
|
|
2369
|
+
"alias": "actions";
|
|
2370
|
+
"required": false;
|
|
2371
|
+
"isSignal": true;
|
|
2372
|
+
};
|
|
2373
|
+
"sort": {
|
|
2374
|
+
"alias": "sort";
|
|
2375
|
+
"required": false;
|
|
2376
|
+
"isSignal": true;
|
|
2377
|
+
};
|
|
2378
|
+
"selectedRowIds": {
|
|
2379
|
+
"alias": "selectedRowIds";
|
|
2380
|
+
"required": false;
|
|
2381
|
+
"isSignal": true;
|
|
2382
|
+
};
|
|
2383
|
+
}, {
|
|
2384
|
+
"sort": "sortChange";
|
|
2385
|
+
"selectedRowIds": "selectedRowIdsChange";
|
|
2386
|
+
"selectionChange": "selectionChange";
|
|
2387
|
+
"rowsReordered": "rowsReordered";
|
|
2388
|
+
}, never, never, true, never>;
|
|
2389
|
+
}
|
|
2390
|
+
export declare class UiToastComponent {
|
|
2391
|
+
readonly intent: import("@angular/core").InputSignal<"success" | "warning" | "danger" | "info">;
|
|
2392
|
+
readonly classes: import("@angular/core").InputSignal<string>;
|
|
2393
|
+
readonly dismissable: import("@angular/core").InputSignalWithTransform<boolean, unknown>;
|
|
2394
|
+
/** ms before the toast dismisses itself, paused while hovered or focused. null never times out. */
|
|
2395
|
+
readonly timeoutMs: import("@angular/core").InputSignal<number | null>;
|
|
2396
|
+
readonly dismissed: import("@angular/core").OutputEmitterRef<void>;
|
|
2397
|
+
protected readonly icon: import("@angular/core").Signal<string>;
|
|
2398
|
+
protected readonly iconColour: import("@angular/core").Signal<string>;
|
|
2399
|
+
protected readonly role: import("@angular/core").Signal<"alert" | "status">;
|
|
2400
|
+
private hovered;
|
|
2401
|
+
private focused;
|
|
2402
|
+
private timer?;
|
|
2403
|
+
private startedAt;
|
|
2404
|
+
private remaining;
|
|
2405
|
+
constructor();
|
|
2406
|
+
protected setHovered(hovered: boolean): void;
|
|
2407
|
+
protected setFocused(focused: boolean): void;
|
|
2408
|
+
private updateTimer;
|
|
2409
|
+
private startTimer;
|
|
2410
|
+
private stopTimer;
|
|
2411
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<UiToastComponent, never>;
|
|
2412
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<UiToastComponent, "ui-toast", never, {
|
|
2413
|
+
"intent": {
|
|
2414
|
+
"alias": "intent";
|
|
2415
|
+
"required": false;
|
|
2416
|
+
"isSignal": true;
|
|
2417
|
+
};
|
|
2418
|
+
"classes": {
|
|
2419
|
+
"alias": "classes";
|
|
2420
|
+
"required": false;
|
|
2421
|
+
"isSignal": true;
|
|
2422
|
+
};
|
|
2423
|
+
"dismissable": {
|
|
2424
|
+
"alias": "dismissable";
|
|
2425
|
+
"required": false;
|
|
2426
|
+
"isSignal": true;
|
|
2427
|
+
};
|
|
2428
|
+
"timeoutMs": {
|
|
2429
|
+
"alias": "timeoutMs";
|
|
2430
|
+
"required": false;
|
|
2431
|
+
"isSignal": true;
|
|
2432
|
+
};
|
|
2433
|
+
}, {
|
|
2434
|
+
"dismissed": "dismissed";
|
|
2435
|
+
}, never, ["*"], true, never>;
|
|
2436
|
+
}
|
|
2437
|
+
export declare const ToastIntents: readonly ["info", "success", "warning", "danger"];
|
|
2438
|
+
export type ToastIntent = typeof ToastIntents[number];
|
|
2439
|
+
/** What a toast template receives: `let-data` for the context, `let-dismiss="dismiss"` to close it. */
|
|
2440
|
+
export interface ToastTemplateContext<ContextType = unknown> {
|
|
2441
|
+
$implicit: ContextType;
|
|
2442
|
+
dismiss: () => void;
|
|
2443
|
+
}
|
|
2444
|
+
export type ToastMessage<ContextType = unknown> = string | TemplateRef<ToastTemplateContext<ContextType>>;
|
|
2445
|
+
export interface Toast {
|
|
2446
|
+
id: number;
|
|
2447
|
+
message: ToastMessage;
|
|
2448
|
+
templateContext: ToastTemplateContext;
|
|
2449
|
+
intent: ToastIntent;
|
|
2450
|
+
dismissable: boolean;
|
|
2451
|
+
timeoutMs?: number | null;
|
|
2452
|
+
}
|
|
2453
|
+
export type ToastOptions<ContextType = unknown> = Partial<Pick<Toast, 'intent' | 'dismissable' | 'timeoutMs'>> & {
|
|
2454
|
+
context?: ContextType;
|
|
2455
|
+
};
|
|
2456
|
+
export declare class UiToastService {
|
|
2457
|
+
private readonly _toasts;
|
|
2458
|
+
private nextId;
|
|
2459
|
+
readonly toasts: import("@angular/core").Signal<Toast[]>;
|
|
2460
|
+
show<ContextType>(message: ToastMessage<ContextType>, options?: ToastOptions<ContextType>): number;
|
|
2461
|
+
dismiss(id: number): void;
|
|
2462
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<UiToastService, never>;
|
|
2463
|
+
static ɵprov: i0.ɵɵInjectableDeclaration<any>;
|
|
2464
|
+
}
|
|
2465
|
+
export declare class UiToasterComponent {
|
|
2466
|
+
readonly position: import("@angular/core").InputSignal<"top-left" | "top-center" | "top-right" | "bottom-left" | "bottom-center" | "bottom-right">;
|
|
2467
|
+
readonly timeoutMs: import("@angular/core").InputSignal<number | null>;
|
|
2468
|
+
protected readonly toastService: UiToastService;
|
|
2469
|
+
protected readonly positionClasses: import("@angular/core").Signal<string>;
|
|
2470
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<UiToasterComponent, never>;
|
|
2471
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<UiToasterComponent, "ui-toaster", never, {
|
|
2472
|
+
"position": {
|
|
2473
|
+
"alias": "position";
|
|
2474
|
+
"required": false;
|
|
2475
|
+
"isSignal": true;
|
|
2476
|
+
};
|
|
2477
|
+
"timeoutMs": {
|
|
2478
|
+
"alias": "timeoutMs";
|
|
2479
|
+
"required": false;
|
|
2480
|
+
"isSignal": true;
|
|
2481
|
+
};
|
|
2482
|
+
}, {}, never, never, true, never>;
|
|
2483
|
+
}
|
|
2484
|
+
export declare const ToasterPositions: readonly ["top-left", "top-center", "top-right", "bottom-left", "bottom-center", "bottom-right"];
|
|
2485
|
+
export type ToasterPosition = typeof ToasterPositions[number];
|
|
2486
|
+
export type UiTooltipTrigger = 'hover' | 'focus' | 'click' | 'manual';
|
|
2487
|
+
export declare class UiTooltipComponent {
|
|
2488
|
+
protected readonly anchor: ElementRef<any>;
|
|
2489
|
+
protected readonly content: import("@angular/core").Signal<ElementRef<any> | undefined>;
|
|
2490
|
+
readonly text: import("@angular/core").InputSignal<string>;
|
|
2491
|
+
readonly placement: import("@angular/core").InputSignal<Placement>;
|
|
2492
|
+
readonly trigger: import("@angular/core").InputSignal<UiTooltipTrigger>;
|
|
2493
|
+
readonly classes: import("@angular/core").InputSignal<string>;
|
|
2494
|
+
readonly isOpen: import("@angular/core").InputSignal<WritableSignal<boolean>>;
|
|
2495
|
+
protected readonly closeBehaviour: import("@angular/core").Signal<UiOverlayCloseBehaviour>;
|
|
2496
|
+
protected readonly generatedClasses: import("@angular/core").Signal<string>;
|
|
2497
|
+
protected onHover(isHovering: boolean): void;
|
|
2498
|
+
protected onFocus(isFocused: boolean): void;
|
|
2499
|
+
protected onClick(): void;
|
|
2500
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<UiTooltipComponent, never>;
|
|
2501
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<UiTooltipComponent, "ui-tooltip", ["uiTooltip"], {
|
|
2502
|
+
"text": {
|
|
2503
|
+
"alias": "text";
|
|
2504
|
+
"required": true;
|
|
2505
|
+
"isSignal": true;
|
|
2506
|
+
};
|
|
2507
|
+
"placement": {
|
|
2508
|
+
"alias": "placement";
|
|
2509
|
+
"required": false;
|
|
2510
|
+
"isSignal": true;
|
|
2511
|
+
};
|
|
2512
|
+
"trigger": {
|
|
2513
|
+
"alias": "trigger";
|
|
2514
|
+
"required": false;
|
|
2515
|
+
"isSignal": true;
|
|
2516
|
+
};
|
|
2517
|
+
"classes": {
|
|
2518
|
+
"alias": "classes";
|
|
2519
|
+
"required": false;
|
|
2520
|
+
"isSignal": true;
|
|
2521
|
+
};
|
|
2522
|
+
"isOpen": {
|
|
2523
|
+
"alias": "isOpen";
|
|
2524
|
+
"required": false;
|
|
2525
|
+
"isSignal": true;
|
|
2526
|
+
};
|
|
2527
|
+
}, {}, never, ["*"], true, never>;
|
|
2528
|
+
}
|
|
2529
|
+
export declare class UiLayoutComponent {
|
|
2530
|
+
readonly sidebar: import("@angular/core").Signal<TemplateRef<unknown> | undefined>;
|
|
2531
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<UiLayoutComponent, never>;
|
|
2532
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<UiLayoutComponent, "ui-layout", never, {}, {}, ["sidebar"], ["*"], true, never>;
|
|
2533
|
+
}
|
|
2534
|
+
export declare class UiOverlayComponent {
|
|
2535
|
+
private readonly positioner;
|
|
2536
|
+
readonly content: import("@angular/core").InputSignal<ElementRef<HTMLInputElement> | undefined>;
|
|
2537
|
+
readonly anchor: import("@angular/core").InputSignal<ElementRef<HTMLElement> | undefined>;
|
|
2538
|
+
readonly closeBehaviour: import("@angular/core").InputSignal<UiOverlayCloseBehaviour>;
|
|
2539
|
+
readonly isOpen: import("@angular/core").InputSignal<WritableSignal<boolean>>;
|
|
2540
|
+
readonly placement: import("@angular/core").InputSignal<Placement>;
|
|
2541
|
+
readonly offset: import("@angular/core").InputSignal<number>;
|
|
2542
|
+
readonly viewportPadding: import("@angular/core").InputSignal<number>;
|
|
2543
|
+
/** Forces this element to match the width of its anchor element. */
|
|
2544
|
+
readonly matchWidth: import("@angular/core").InputSignal<DropdownMatchWidth | null>;
|
|
2545
|
+
constructor();
|
|
2546
|
+
private readonly close;
|
|
2547
|
+
private onDocumentClick;
|
|
2548
|
+
private onKeyDown;
|
|
2549
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<UiOverlayComponent, never>;
|
|
2550
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<UiOverlayComponent, "ui-overlay", ["uiOverlay"], {
|
|
2551
|
+
"content": {
|
|
2552
|
+
"alias": "content";
|
|
2553
|
+
"required": false;
|
|
2554
|
+
"isSignal": true;
|
|
2555
|
+
};
|
|
2556
|
+
"anchor": {
|
|
2557
|
+
"alias": "anchor";
|
|
2558
|
+
"required": false;
|
|
2559
|
+
"isSignal": true;
|
|
2560
|
+
};
|
|
2561
|
+
"closeBehaviour": {
|
|
2562
|
+
"alias": "closeBehaviour";
|
|
2563
|
+
"required": false;
|
|
2564
|
+
"isSignal": true;
|
|
2565
|
+
};
|
|
2566
|
+
"isOpen": {
|
|
2567
|
+
"alias": "isOpen";
|
|
2568
|
+
"required": true;
|
|
2569
|
+
"isSignal": true;
|
|
2570
|
+
};
|
|
2571
|
+
"placement": {
|
|
2572
|
+
"alias": "placement";
|
|
2573
|
+
"required": false;
|
|
2574
|
+
"isSignal": true;
|
|
2575
|
+
};
|
|
2576
|
+
"offset": {
|
|
2577
|
+
"alias": "offset";
|
|
2578
|
+
"required": false;
|
|
2579
|
+
"isSignal": true;
|
|
2580
|
+
};
|
|
2581
|
+
"viewportPadding": {
|
|
2582
|
+
"alias": "viewportPadding";
|
|
2583
|
+
"required": false;
|
|
2584
|
+
"isSignal": true;
|
|
2585
|
+
};
|
|
2586
|
+
"matchWidth": {
|
|
2587
|
+
"alias": "matchWidth";
|
|
2588
|
+
"required": false;
|
|
2589
|
+
"isSignal": true;
|
|
2590
|
+
};
|
|
2591
|
+
}, {}, never, ["*"], true, never>;
|
|
2592
|
+
}
|
|
2593
|
+
export declare class UiSidebarComponent {
|
|
2594
|
+
readonly isOpen: import("@angular/core").ModelSignal<boolean>;
|
|
2595
|
+
readonly toggle: () => void;
|
|
2596
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<UiSidebarComponent, never>;
|
|
2597
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<UiSidebarComponent, "ui-sidebar", ["uiSidebar"], {
|
|
2598
|
+
"isOpen": {
|
|
2599
|
+
"alias": "isOpen";
|
|
2600
|
+
"required": false;
|
|
2601
|
+
"isSignal": true;
|
|
2602
|
+
};
|
|
2603
|
+
}, {
|
|
2604
|
+
"isOpen": "isOpenChange";
|
|
2605
|
+
}, never, ["*"], true, never>;
|
|
2606
|
+
}
|
|
2607
|
+
export declare class UiSidebarItemComponent {
|
|
2608
|
+
private readonly sidebar;
|
|
2609
|
+
readonly label: import("@angular/core").InputSignal<string>;
|
|
2610
|
+
readonly icon: import("@angular/core").InputSignal<string>;
|
|
2611
|
+
readonly isCollapsed: import("@angular/core").Signal<boolean>;
|
|
2612
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<UiSidebarItemComponent, never>;
|
|
2613
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<UiSidebarItemComponent, "ui-sidebar-item", never, {
|
|
2614
|
+
"label": {
|
|
2615
|
+
"alias": "label";
|
|
2616
|
+
"required": true;
|
|
2617
|
+
"isSignal": true;
|
|
2618
|
+
};
|
|
2619
|
+
"icon": {
|
|
2620
|
+
"alias": "icon";
|
|
2621
|
+
"required": false;
|
|
2622
|
+
"isSignal": true;
|
|
2623
|
+
};
|
|
2624
|
+
}, {}, never, ["ui-badge"], true, never>;
|
|
2625
|
+
}
|
|
2626
|
+
export declare class UiColourComponent {
|
|
2627
|
+
readonly value: import("@angular/core").ModelSignal<string>;
|
|
2628
|
+
readonly id: import("@angular/core").InputSignal<string>;
|
|
2629
|
+
readonly disabled: import("@angular/core").InputSignalWithTransform<boolean, unknown>;
|
|
2630
|
+
private readonly picker;
|
|
2631
|
+
protected readonly isValid: import("@angular/core").Signal<boolean>;
|
|
2632
|
+
protected readonly pickerValue: import("@angular/core").Signal<string>;
|
|
2633
|
+
protected openPicker(): void;
|
|
2634
|
+
protected handlePick(event: Event): void;
|
|
2635
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<UiColourComponent, never>;
|
|
2636
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<UiColourComponent, "ui-colour", never, {
|
|
2637
|
+
"value": {
|
|
2638
|
+
"alias": "value";
|
|
2639
|
+
"required": false;
|
|
2640
|
+
"isSignal": true;
|
|
2641
|
+
};
|
|
2642
|
+
"id": {
|
|
2643
|
+
"alias": "id";
|
|
2644
|
+
"required": false;
|
|
2645
|
+
"isSignal": true;
|
|
2646
|
+
};
|
|
2647
|
+
"disabled": {
|
|
2648
|
+
"alias": "disabled";
|
|
2649
|
+
"required": false;
|
|
2650
|
+
"isSignal": true;
|
|
2651
|
+
};
|
|
2652
|
+
}, {
|
|
2653
|
+
"value": "valueChange";
|
|
2654
|
+
}, never, never, true, never>;
|
|
2655
|
+
}
|
|
2656
|
+
export declare class UiCounterComponent {
|
|
2657
|
+
readonly value: import("@angular/core").ModelSignal<number | null>;
|
|
2658
|
+
readonly step: import("@angular/core").InputSignal<number>;
|
|
2659
|
+
readonly max: import("@angular/core").InputSignal<number | undefined>;
|
|
2660
|
+
readonly min: import("@angular/core").InputSignal<number | undefined>;
|
|
2661
|
+
readonly placeholder: import("@angular/core").InputSignal<string>;
|
|
2662
|
+
readonly leadingElement: import("@angular/core").Signal<TemplateRef<unknown> | undefined>;
|
|
2663
|
+
readonly trailingElement: import("@angular/core").Signal<TemplateRef<unknown> | undefined>;
|
|
2664
|
+
onStepUp(): void;
|
|
2665
|
+
onStepDown(): void;
|
|
2666
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<UiCounterComponent, never>;
|
|
2667
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<UiCounterComponent, "ui-counter", never, {
|
|
2668
|
+
"value": {
|
|
2669
|
+
"alias": "value";
|
|
2670
|
+
"required": false;
|
|
2671
|
+
"isSignal": true;
|
|
2672
|
+
};
|
|
2673
|
+
"step": {
|
|
2674
|
+
"alias": "step";
|
|
2675
|
+
"required": false;
|
|
2676
|
+
"isSignal": true;
|
|
2677
|
+
};
|
|
2678
|
+
"max": {
|
|
2679
|
+
"alias": "max";
|
|
2680
|
+
"required": false;
|
|
2681
|
+
"isSignal": true;
|
|
2682
|
+
};
|
|
2683
|
+
"min": {
|
|
2684
|
+
"alias": "min";
|
|
2685
|
+
"required": false;
|
|
2686
|
+
"isSignal": true;
|
|
2687
|
+
};
|
|
2688
|
+
"placeholder": {
|
|
2689
|
+
"alias": "placeholder";
|
|
2690
|
+
"required": false;
|
|
2691
|
+
"isSignal": true;
|
|
2692
|
+
};
|
|
2693
|
+
}, {
|
|
2694
|
+
"value": "valueChange";
|
|
2695
|
+
}, ["leadingElement", "trailingElement"], never, true, never>;
|
|
2696
|
+
}
|
|
2697
|
+
/** A quick pick shown beside the calendar. The range is worked out when clicked. */
|
|
2698
|
+
export interface DateRangePreset {
|
|
2699
|
+
label: string;
|
|
2700
|
+
range: () => DateRange;
|
|
2701
|
+
}
|
|
2702
|
+
export declare class UiDateRangePickerComponent {
|
|
2703
|
+
private readonly host;
|
|
2704
|
+
private readonly injector;
|
|
2705
|
+
readonly value: import("@angular/core").ModelSignal<DateRange>;
|
|
2706
|
+
readonly id: import("@angular/core").InputSignal<string>;
|
|
2707
|
+
readonly placeholder: import("@angular/core").InputSignal<string>;
|
|
2708
|
+
readonly disabled: import("@angular/core").InputSignalWithTransform<boolean, unknown>;
|
|
2709
|
+
readonly clearable: import("@angular/core").InputSignalWithTransform<boolean, unknown>;
|
|
2710
|
+
readonly validationState: import("@angular/core").InputSignal<InputValidation>;
|
|
2711
|
+
readonly describedBy: import("@angular/core").InputSignal<string>;
|
|
2712
|
+
readonly min: import("@angular/core").InputSignal<string | null>;
|
|
2713
|
+
readonly max: import("@angular/core").InputSignal<string | null>;
|
|
2714
|
+
readonly isDateDisabled: import("@angular/core").InputSignal<(date: IsoDate) => boolean>;
|
|
2715
|
+
readonly weekStart: import("@angular/core").InputSignal<0 | 1>;
|
|
2716
|
+
readonly locale: import("@angular/core").InputSignal<string>;
|
|
2717
|
+
/** Intl options for the dates shown in the input. */
|
|
2718
|
+
readonly format: import("@angular/core").InputSignal<Intl.DateTimeFormatOptions>;
|
|
2719
|
+
/** Quick picks beside the calendar, see date-range-presets.ts for ready made ones. */
|
|
2720
|
+
readonly presets: import("@angular/core").InputSignal<DateRangePreset[]>;
|
|
2721
|
+
protected readonly isOpen: import("@angular/core").WritableSignal<boolean>;
|
|
2722
|
+
private readonly calendar;
|
|
2723
|
+
protected readonly hasValue: import("@angular/core").Signal<boolean>;
|
|
2724
|
+
protected readonly presetRanges: import("@angular/core").Signal<DateRange[]>;
|
|
2725
|
+
protected readonly activePreset: import("@angular/core").Signal<number>;
|
|
2726
|
+
protected readonly display: import("@angular/core").Signal<string>;
|
|
2727
|
+
protected toggle(): void;
|
|
2728
|
+
protected handleInputKeydown(event: KeyboardEvent): void;
|
|
2729
|
+
protected handleRange(range: DateRange): void;
|
|
2730
|
+
protected choosePreset(preset: DateRangePreset): void;
|
|
2731
|
+
protected handlePanelKeydown(event: KeyboardEvent): void;
|
|
2732
|
+
protected clear(event: Event): void;
|
|
2733
|
+
private clamp;
|
|
2734
|
+
private focusInput;
|
|
2735
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<UiDateRangePickerComponent, never>;
|
|
2736
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<UiDateRangePickerComponent, "ui-date-range-picker", never, {
|
|
2737
|
+
"value": {
|
|
2738
|
+
"alias": "value";
|
|
2739
|
+
"required": false;
|
|
2740
|
+
"isSignal": true;
|
|
2741
|
+
};
|
|
2742
|
+
"id": {
|
|
2743
|
+
"alias": "id";
|
|
2744
|
+
"required": false;
|
|
2745
|
+
"isSignal": true;
|
|
2746
|
+
};
|
|
2747
|
+
"placeholder": {
|
|
2748
|
+
"alias": "placeholder";
|
|
2749
|
+
"required": false;
|
|
2750
|
+
"isSignal": true;
|
|
2751
|
+
};
|
|
2752
|
+
"disabled": {
|
|
2753
|
+
"alias": "disabled";
|
|
2754
|
+
"required": false;
|
|
2755
|
+
"isSignal": true;
|
|
2756
|
+
};
|
|
2757
|
+
"clearable": {
|
|
2758
|
+
"alias": "clearable";
|
|
2759
|
+
"required": false;
|
|
2760
|
+
"isSignal": true;
|
|
2761
|
+
};
|
|
2762
|
+
"validationState": {
|
|
2763
|
+
"alias": "validationState";
|
|
2764
|
+
"required": false;
|
|
2765
|
+
"isSignal": true;
|
|
2766
|
+
};
|
|
2767
|
+
"describedBy": {
|
|
2768
|
+
"alias": "describedBy";
|
|
2769
|
+
"required": false;
|
|
2770
|
+
"isSignal": true;
|
|
2771
|
+
};
|
|
2772
|
+
"min": {
|
|
2773
|
+
"alias": "min";
|
|
2774
|
+
"required": false;
|
|
2775
|
+
"isSignal": true;
|
|
2776
|
+
};
|
|
2777
|
+
"max": {
|
|
2778
|
+
"alias": "max";
|
|
2779
|
+
"required": false;
|
|
2780
|
+
"isSignal": true;
|
|
2781
|
+
};
|
|
2782
|
+
"isDateDisabled": {
|
|
2783
|
+
"alias": "isDateDisabled";
|
|
2784
|
+
"required": false;
|
|
2785
|
+
"isSignal": true;
|
|
2786
|
+
};
|
|
2787
|
+
"weekStart": {
|
|
2788
|
+
"alias": "weekStart";
|
|
2789
|
+
"required": false;
|
|
2790
|
+
"isSignal": true;
|
|
2791
|
+
};
|
|
2792
|
+
"locale": {
|
|
2793
|
+
"alias": "locale";
|
|
2794
|
+
"required": false;
|
|
2795
|
+
"isSignal": true;
|
|
2796
|
+
};
|
|
2797
|
+
"format": {
|
|
2798
|
+
"alias": "format";
|
|
2799
|
+
"required": false;
|
|
2800
|
+
"isSignal": true;
|
|
2801
|
+
};
|
|
2802
|
+
"presets": {
|
|
2803
|
+
"alias": "presets";
|
|
2804
|
+
"required": false;
|
|
2805
|
+
"isSignal": true;
|
|
2806
|
+
};
|
|
2807
|
+
}, {
|
|
2808
|
+
"value": "valueChange";
|
|
2809
|
+
}, never, never, true, never>;
|
|
2810
|
+
}
|
|
2811
|
+
export declare function todayPreset(label?: string): DateRangePreset;
|
|
2812
|
+
/** The last `days` days, counting today. */
|
|
2813
|
+
export declare function lastDaysPreset(days: number, label?: string): DateRangePreset;
|
|
2814
|
+
export declare function thisWeekPreset(weekStart?: WeekStart, label?: string): DateRangePreset;
|
|
2815
|
+
/** A calendar month, 0 is this month, -1 is last month. */
|
|
2816
|
+
export declare function monthPreset(offset?: number, label?: string): DateRangePreset;
|
|
2817
|
+
/** A calendar year, 0 is this year, -1 is last year. */
|
|
2818
|
+
export declare function yearPreset(offset?: number, label?: string): DateRangePreset;
|
|
2819
|
+
/**
|
|
2820
|
+
* A financial year starting on the given day, e.g. the UK tax year is
|
|
2821
|
+
* `financialYearPreset(3, 6)` for 6 April. 0 is the current one, -1 the one before.
|
|
2822
|
+
*/
|
|
2823
|
+
export declare function financialYearPreset(startMonth: number, startDay: number, offset?: number, label?: string): DateRangePreset;
|
|
2824
|
+
/** A sensible starting set, pass your own list to change it. */
|
|
2825
|
+
export declare function defaultDateRangePresets(weekStart?: WeekStart): DateRangePreset[];
|
|
2826
|
+
export declare class UiDatepickerComponent {
|
|
2827
|
+
private readonly host;
|
|
2828
|
+
private readonly injector;
|
|
2829
|
+
/** "2026-09-29", or "2026-09-29T14:30" when `withTime` is on. */
|
|
2830
|
+
readonly value: import("@angular/core").ModelSignal<string | null>;
|
|
2831
|
+
readonly id: import("@angular/core").InputSignal<string>;
|
|
2832
|
+
readonly placeholder: import("@angular/core").InputSignal<string>;
|
|
2833
|
+
readonly disabled: import("@angular/core").InputSignalWithTransform<boolean, unknown>;
|
|
2834
|
+
readonly clearable: import("@angular/core").InputSignalWithTransform<boolean, unknown>;
|
|
2835
|
+
readonly validationState: import("@angular/core").InputSignal<InputValidation>;
|
|
2836
|
+
readonly describedBy: import("@angular/core").InputSignal<string>;
|
|
2837
|
+
readonly min: import("@angular/core").InputSignal<string | null>;
|
|
2838
|
+
readonly max: import("@angular/core").InputSignal<string | null>;
|
|
2839
|
+
readonly isDateDisabled: import("@angular/core").InputSignal<(date: IsoDate) => boolean>;
|
|
2840
|
+
readonly weekStart: import("@angular/core").InputSignal<0 | 1>;
|
|
2841
|
+
readonly locale: import("@angular/core").InputSignal<string>;
|
|
2842
|
+
readonly withTime: import("@angular/core").InputSignalWithTransform<boolean, unknown>;
|
|
2843
|
+
readonly minuteStep: import("@angular/core").InputSignal<number>;
|
|
2844
|
+
/** Time used when a date is picked before a time has been chosen. */
|
|
2845
|
+
readonly defaultTime: import("@angular/core").InputSignal<string>;
|
|
2846
|
+
/** Intl options for the value shown in the input. */
|
|
2847
|
+
readonly format: import("@angular/core").InputSignal<Intl.DateTimeFormatOptions | null>;
|
|
2848
|
+
protected readonly isOpen: import("@angular/core").WritableSignal<boolean>;
|
|
2849
|
+
private readonly calendar;
|
|
2850
|
+
protected readonly datePart: import("@angular/core").Signal<string | null>;
|
|
2851
|
+
protected readonly timePart: import("@angular/core").Signal<string>;
|
|
2852
|
+
protected readonly display: import("@angular/core").Signal<string>;
|
|
2853
|
+
protected toggle(): void;
|
|
2854
|
+
protected handleInputKeydown(event: KeyboardEvent): void;
|
|
2855
|
+
protected handlePick(date: IsoDate | null): void;
|
|
2856
|
+
protected handleTime(time: string): void;
|
|
2857
|
+
protected close(): void;
|
|
2858
|
+
protected handlePanelKeydown(event: KeyboardEvent): void;
|
|
2859
|
+
protected clear(event: Event): void;
|
|
2860
|
+
private focusInput;
|
|
2861
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<UiDatepickerComponent, never>;
|
|
2862
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<UiDatepickerComponent, "ui-datepicker", never, {
|
|
2863
|
+
"value": {
|
|
2864
|
+
"alias": "value";
|
|
2865
|
+
"required": false;
|
|
2866
|
+
"isSignal": true;
|
|
2867
|
+
};
|
|
2868
|
+
"id": {
|
|
2869
|
+
"alias": "id";
|
|
2870
|
+
"required": false;
|
|
2871
|
+
"isSignal": true;
|
|
2872
|
+
};
|
|
2873
|
+
"placeholder": {
|
|
2874
|
+
"alias": "placeholder";
|
|
2875
|
+
"required": false;
|
|
2876
|
+
"isSignal": true;
|
|
2877
|
+
};
|
|
2878
|
+
"disabled": {
|
|
2879
|
+
"alias": "disabled";
|
|
2880
|
+
"required": false;
|
|
2881
|
+
"isSignal": true;
|
|
2882
|
+
};
|
|
2883
|
+
"clearable": {
|
|
2884
|
+
"alias": "clearable";
|
|
2885
|
+
"required": false;
|
|
2886
|
+
"isSignal": true;
|
|
2887
|
+
};
|
|
2888
|
+
"validationState": {
|
|
2889
|
+
"alias": "validationState";
|
|
2890
|
+
"required": false;
|
|
2891
|
+
"isSignal": true;
|
|
2892
|
+
};
|
|
2893
|
+
"describedBy": {
|
|
2894
|
+
"alias": "describedBy";
|
|
2895
|
+
"required": false;
|
|
2896
|
+
"isSignal": true;
|
|
2897
|
+
};
|
|
2898
|
+
"min": {
|
|
2899
|
+
"alias": "min";
|
|
2900
|
+
"required": false;
|
|
2901
|
+
"isSignal": true;
|
|
2902
|
+
};
|
|
2903
|
+
"max": {
|
|
2904
|
+
"alias": "max";
|
|
2905
|
+
"required": false;
|
|
2906
|
+
"isSignal": true;
|
|
2907
|
+
};
|
|
2908
|
+
"isDateDisabled": {
|
|
2909
|
+
"alias": "isDateDisabled";
|
|
2910
|
+
"required": false;
|
|
2911
|
+
"isSignal": true;
|
|
2912
|
+
};
|
|
2913
|
+
"weekStart": {
|
|
2914
|
+
"alias": "weekStart";
|
|
2915
|
+
"required": false;
|
|
2916
|
+
"isSignal": true;
|
|
2917
|
+
};
|
|
2918
|
+
"locale": {
|
|
2919
|
+
"alias": "locale";
|
|
2920
|
+
"required": false;
|
|
2921
|
+
"isSignal": true;
|
|
2922
|
+
};
|
|
2923
|
+
"withTime": {
|
|
2924
|
+
"alias": "withTime";
|
|
2925
|
+
"required": false;
|
|
2926
|
+
"isSignal": true;
|
|
2927
|
+
};
|
|
2928
|
+
"minuteStep": {
|
|
2929
|
+
"alias": "minuteStep";
|
|
2930
|
+
"required": false;
|
|
2931
|
+
"isSignal": true;
|
|
2932
|
+
};
|
|
2933
|
+
"defaultTime": {
|
|
2934
|
+
"alias": "defaultTime";
|
|
2935
|
+
"required": false;
|
|
2936
|
+
"isSignal": true;
|
|
2937
|
+
};
|
|
2938
|
+
"format": {
|
|
2939
|
+
"alias": "format";
|
|
2940
|
+
"required": false;
|
|
2941
|
+
"isSignal": true;
|
|
2942
|
+
};
|
|
2943
|
+
}, {
|
|
2944
|
+
"value": "valueChange";
|
|
2945
|
+
}, never, never, true, never>;
|
|
2946
|
+
}
|
|
2947
|
+
export declare class UiDropdownButtonComponent {
|
|
2948
|
+
readonly intent: import("@angular/core").InputSignal<"none" | "primary" | "secondary" | "success" | "warning" | "danger">;
|
|
2949
|
+
readonly appearance: import("@angular/core").InputSignal<"solid" | "none" | "link" | "outline" | "ghost" | "white">;
|
|
2950
|
+
readonly icon: import("@angular/core").InputSignal<string>;
|
|
2951
|
+
readonly isOpen: import("@angular/core").ModelSignal<boolean>;
|
|
2952
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<UiDropdownButtonComponent, never>;
|
|
2953
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<UiDropdownButtonComponent, "ui-dropdown-button", never, {
|
|
2954
|
+
"intent": {
|
|
2955
|
+
"alias": "intent";
|
|
2956
|
+
"required": false;
|
|
2957
|
+
"isSignal": true;
|
|
2958
|
+
};
|
|
2959
|
+
"appearance": {
|
|
2960
|
+
"alias": "appearance";
|
|
2961
|
+
"required": false;
|
|
2962
|
+
"isSignal": true;
|
|
2963
|
+
};
|
|
2964
|
+
"icon": {
|
|
2965
|
+
"alias": "icon";
|
|
2966
|
+
"required": false;
|
|
2967
|
+
"isSignal": true;
|
|
2968
|
+
};
|
|
2969
|
+
"isOpen": {
|
|
2970
|
+
"alias": "isOpen";
|
|
2971
|
+
"required": true;
|
|
2972
|
+
"isSignal": true;
|
|
2973
|
+
};
|
|
2974
|
+
}, {
|
|
2975
|
+
"isOpen": "isOpenChange";
|
|
2976
|
+
}, never, ["*"], true, never>;
|
|
2977
|
+
}
|
|
2978
|
+
export interface DropdownMenuButton {
|
|
2979
|
+
label: string;
|
|
2980
|
+
icon?: string;
|
|
2981
|
+
onClick: () => void;
|
|
2982
|
+
}
|
|
2983
|
+
export interface DropdownMenuCategory {
|
|
2984
|
+
label: string;
|
|
2985
|
+
children: DropdownMenuButton[];
|
|
2986
|
+
}
|
|
2987
|
+
export interface DropdownMenuDivider {
|
|
2988
|
+
divider: true;
|
|
2989
|
+
}
|
|
2990
|
+
export type DropdownMenuItem = DropdownMenuButton | DropdownMenuCategory | DropdownMenuDivider;
|
|
2991
|
+
export declare class UiDropdownMenuComponent {
|
|
2992
|
+
readonly items: import("@angular/core").InputSignal<DropdownMenuItem[]>;
|
|
2993
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<UiDropdownMenuComponent, never>;
|
|
2994
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<UiDropdownMenuComponent, "ui-dropdown-menu", never, {
|
|
2995
|
+
"items": {
|
|
2996
|
+
"alias": "items";
|
|
2997
|
+
"required": true;
|
|
2998
|
+
"isSignal": true;
|
|
2999
|
+
};
|
|
3000
|
+
}, {}, never, never, true, never>;
|
|
3001
|
+
}
|
|
3002
|
+
export declare class UiFileInputComponent {
|
|
3003
|
+
readonly value: import("@angular/core").ModelSignal<File[]>;
|
|
3004
|
+
readonly id: import("@angular/core").InputSignal<string>;
|
|
3005
|
+
readonly accept: import("@angular/core").InputSignal<string>;
|
|
3006
|
+
readonly multiple: import("@angular/core").InputSignalWithTransform<boolean, unknown>;
|
|
3007
|
+
readonly disabled: import("@angular/core").InputSignalWithTransform<boolean, unknown>;
|
|
3008
|
+
readonly describedBy: import("@angular/core").InputSignal<string>;
|
|
3009
|
+
/** Max size per file in bytes. */
|
|
3010
|
+
readonly maxSize: import("@angular/core").InputSignal<number | null>;
|
|
3011
|
+
readonly placeholder: import("@angular/core").InputSignal<string>;
|
|
3012
|
+
readonly buttonLabel: import("@angular/core").InputSignal<string>;
|
|
3013
|
+
readonly rejected: import("@angular/core").OutputEmitterRef<FileRejection[]>;
|
|
3014
|
+
private readonly picker;
|
|
3015
|
+
protected readonly hasRejection: import("@angular/core").WritableSignal<boolean>;
|
|
3016
|
+
protected readonly summary: import("@angular/core").Signal<string>;
|
|
3017
|
+
protected openPicker(): void;
|
|
3018
|
+
protected handlePick(event: Event): void;
|
|
3019
|
+
protected clear(event: Event): void;
|
|
3020
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<UiFileInputComponent, never>;
|
|
3021
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<UiFileInputComponent, "ui-file-input", never, {
|
|
3022
|
+
"value": {
|
|
3023
|
+
"alias": "value";
|
|
3024
|
+
"required": false;
|
|
3025
|
+
"isSignal": true;
|
|
3026
|
+
};
|
|
3027
|
+
"id": {
|
|
3028
|
+
"alias": "id";
|
|
3029
|
+
"required": false;
|
|
3030
|
+
"isSignal": true;
|
|
3031
|
+
};
|
|
3032
|
+
"accept": {
|
|
3033
|
+
"alias": "accept";
|
|
3034
|
+
"required": false;
|
|
3035
|
+
"isSignal": true;
|
|
3036
|
+
};
|
|
3037
|
+
"multiple": {
|
|
3038
|
+
"alias": "multiple";
|
|
3039
|
+
"required": false;
|
|
3040
|
+
"isSignal": true;
|
|
3041
|
+
};
|
|
3042
|
+
"disabled": {
|
|
3043
|
+
"alias": "disabled";
|
|
3044
|
+
"required": false;
|
|
3045
|
+
"isSignal": true;
|
|
3046
|
+
};
|
|
3047
|
+
"describedBy": {
|
|
3048
|
+
"alias": "describedBy";
|
|
3049
|
+
"required": false;
|
|
3050
|
+
"isSignal": true;
|
|
3051
|
+
};
|
|
3052
|
+
"maxSize": {
|
|
3053
|
+
"alias": "maxSize";
|
|
3054
|
+
"required": false;
|
|
3055
|
+
"isSignal": true;
|
|
3056
|
+
};
|
|
3057
|
+
"placeholder": {
|
|
3058
|
+
"alias": "placeholder";
|
|
3059
|
+
"required": false;
|
|
3060
|
+
"isSignal": true;
|
|
3061
|
+
};
|
|
3062
|
+
"buttonLabel": {
|
|
3063
|
+
"alias": "buttonLabel";
|
|
3064
|
+
"required": false;
|
|
3065
|
+
"isSignal": true;
|
|
3066
|
+
};
|
|
3067
|
+
}, {
|
|
3068
|
+
"value": "valueChange";
|
|
3069
|
+
"rejected": "rejected";
|
|
3070
|
+
}, never, never, true, never>;
|
|
3071
|
+
}
|
|
3072
|
+
export declare class UiSwitchComponent {
|
|
3073
|
+
readonly value: import("@angular/core").ModelSignal<boolean>;
|
|
3074
|
+
readonly id: import("@angular/core").InputSignal<string>;
|
|
3075
|
+
readonly name: import("@angular/core").InputSignal<string>;
|
|
3076
|
+
readonly disabled: import("@angular/core").InputSignalWithTransform<boolean, unknown>;
|
|
3077
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<UiSwitchComponent, never>;
|
|
3078
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<UiSwitchComponent, "ui-switch", never, {
|
|
3079
|
+
"value": {
|
|
3080
|
+
"alias": "value";
|
|
3081
|
+
"required": true;
|
|
3082
|
+
"isSignal": true;
|
|
3083
|
+
};
|
|
3084
|
+
"id": {
|
|
3085
|
+
"alias": "id";
|
|
3086
|
+
"required": false;
|
|
3087
|
+
"isSignal": true;
|
|
3088
|
+
};
|
|
3089
|
+
"name": {
|
|
3090
|
+
"alias": "name";
|
|
3091
|
+
"required": false;
|
|
3092
|
+
"isSignal": true;
|
|
3093
|
+
};
|
|
3094
|
+
"disabled": {
|
|
3095
|
+
"alias": "disabled";
|
|
3096
|
+
"required": false;
|
|
3097
|
+
"isSignal": true;
|
|
3098
|
+
};
|
|
3099
|
+
}, {
|
|
3100
|
+
"value": "valueChange";
|
|
3101
|
+
}, never, ["*"], true, never>;
|
|
3102
|
+
}
|
|
3103
|
+
export declare class UiTimeSelectComponent {
|
|
3104
|
+
/** 24 hour "HH:mm" string. */
|
|
3105
|
+
readonly value: import("@angular/core").ModelSignal<string>;
|
|
3106
|
+
readonly minuteStep: import("@angular/core").InputSignal<number>;
|
|
3107
|
+
readonly disabled: import("@angular/core").InputSignalWithTransform<boolean, unknown>;
|
|
3108
|
+
protected readonly hours: import("@angular/core").Signal<number>;
|
|
3109
|
+
protected readonly minutes: import("@angular/core").Signal<number>;
|
|
3110
|
+
protected readonly hourSource: SelectLocalDataSource<number>;
|
|
3111
|
+
protected readonly minuteSource: import("@angular/core").Signal<SelectLocalDataSource<number>>;
|
|
3112
|
+
protected readonly pad: (value: number) => string;
|
|
3113
|
+
protected setHours(hours: number | null): void;
|
|
3114
|
+
protected setMinutes(minutes: number | null): void;
|
|
3115
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<UiTimeSelectComponent, never>;
|
|
3116
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<UiTimeSelectComponent, "ui-time-select", never, {
|
|
3117
|
+
"value": {
|
|
3118
|
+
"alias": "value";
|
|
3119
|
+
"required": false;
|
|
3120
|
+
"isSignal": true;
|
|
3121
|
+
};
|
|
3122
|
+
"minuteStep": {
|
|
3123
|
+
"alias": "minuteStep";
|
|
3124
|
+
"required": false;
|
|
3125
|
+
"isSignal": true;
|
|
3126
|
+
};
|
|
3127
|
+
"disabled": {
|
|
3128
|
+
"alias": "disabled";
|
|
3129
|
+
"required": false;
|
|
3130
|
+
"isSignal": true;
|
|
3131
|
+
};
|
|
3132
|
+
}, {
|
|
3133
|
+
"value": "valueChange";
|
|
3134
|
+
}, never, never, true, never>;
|
|
3135
|
+
}
|