@xiriframework/xiri-ng 0.2.44 → 0.2.46
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/fesm2022/xiriframework-xiri-ng.mjs +1251 -1024
- package/fesm2022/xiriframework-xiri-ng.mjs.map +1 -1
- package/package.json +10 -12
- package/skills/xiri-ng-expert/SKILL.md +2 -0
- package/skills/xiri-ng-expert/references/form-fields.md +16 -1
- package/types/xiriframework-xiri-ng.d.ts +377 -263
- package/types/xiriframework-xiri-ng.d.ts.map +1 -1
|
@@ -1,16 +1,19 @@
|
|
|
1
1
|
import * as _angular_core from '@angular/core';
|
|
2
2
|
import { PipeTransform, OnInit, OnDestroy, ChangeDetectorRef, TemplateRef, Type, Signal, WritableSignal, AfterViewInit, ElementRef, EnvironmentProviders } from '@angular/core';
|
|
3
|
+
import { UrlTree } from '@angular/router';
|
|
3
4
|
import * as _angular_forms from '@angular/forms';
|
|
4
|
-
import { FormControl, UntypedFormGroup, UntypedFormControl } from '@angular/forms';
|
|
5
|
+
import { ValidatorFn, FormControl, UntypedFormGroup, UntypedFormControl } from '@angular/forms';
|
|
5
6
|
import * as rxjs from 'rxjs';
|
|
6
7
|
import { Observable, Subject } from 'rxjs';
|
|
7
|
-
import
|
|
8
|
+
import * as _angular_material_paginator from '@angular/material/paginator';
|
|
8
9
|
import { MatPaginator } from '@angular/material/paginator';
|
|
10
|
+
import { MatTableDataSource, MatTable } from '@angular/material/table';
|
|
9
11
|
import { MatSort } from '@angular/material/sort';
|
|
10
12
|
import { SelectionModel } from '@angular/cdk/collections';
|
|
11
13
|
import { MatDialogRef } from '@angular/material/dialog';
|
|
12
14
|
import { MatStepper } from '@angular/material/stepper';
|
|
13
15
|
import { StepperSelectionEvent } from '@angular/cdk/stepper';
|
|
16
|
+
import { HttpResponse } from '@angular/common/http';
|
|
14
17
|
import { Locale } from 'date-fns';
|
|
15
18
|
import { MatSnackBarRef, TextOnlySnackBar } from '@angular/material/snack-bar';
|
|
16
19
|
|
|
@@ -25,17 +28,25 @@ declare class SafehtmlPipe implements PipeTransform {
|
|
|
25
28
|
static ɵpipe: _angular_core.ɵɵPipeDeclaration<SafehtmlPipe, "safeHtml", true>;
|
|
26
29
|
}
|
|
27
30
|
|
|
31
|
+
declare class XiriUrlPipe implements PipeTransform {
|
|
32
|
+
transform(url: string | null | undefined): UrlTree | null;
|
|
33
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<XiriUrlPipe, never>;
|
|
34
|
+
static ɵpipe: _angular_core.ɵɵPipeDeclaration<XiriUrlPipe, "xiriUrl", true>;
|
|
35
|
+
}
|
|
36
|
+
|
|
28
37
|
interface XiriFormValidator {
|
|
29
38
|
id: string;
|
|
30
39
|
name?: string;
|
|
31
|
-
validator:
|
|
40
|
+
validator: ValidatorFn;
|
|
32
41
|
message: string;
|
|
33
42
|
}
|
|
34
43
|
interface XiriFormFieldSelectOption {
|
|
35
|
-
id: number;
|
|
44
|
+
id: number | string;
|
|
36
45
|
name: string;
|
|
37
46
|
disabled?: boolean;
|
|
38
47
|
color?: XiriColor;
|
|
48
|
+
isGroup?: boolean;
|
|
49
|
+
children?: XiriFormFieldSelectOption[];
|
|
39
50
|
}
|
|
40
51
|
interface XiriTagChip {
|
|
41
52
|
label: string;
|
|
@@ -45,7 +56,7 @@ type XiriFormFieldConditionOperator = 'equals' | 'notEquals' | 'contains' | 'gre
|
|
|
45
56
|
interface XiriFormFieldCondition {
|
|
46
57
|
field: string;
|
|
47
58
|
operator: XiriFormFieldConditionOperator;
|
|
48
|
-
value?:
|
|
59
|
+
value?: unknown;
|
|
49
60
|
}
|
|
50
61
|
interface XiriFormField {
|
|
51
62
|
id: string;
|
|
@@ -60,10 +71,10 @@ interface XiriFormField {
|
|
|
60
71
|
iconPrefix?: string;
|
|
61
72
|
iconSuffix?: string;
|
|
62
73
|
locale?: string;
|
|
63
|
-
value?:
|
|
74
|
+
value?: unknown;
|
|
64
75
|
validations?: XiriFormValidator[];
|
|
65
76
|
list?: XiriFormFieldSelectOption[];
|
|
66
|
-
texts?:
|
|
77
|
+
texts?: Record<string, string>;
|
|
67
78
|
hide?: boolean;
|
|
68
79
|
required?: boolean;
|
|
69
80
|
disabled?: boolean;
|
|
@@ -76,17 +87,18 @@ interface XiriFormField {
|
|
|
76
87
|
url?: string;
|
|
77
88
|
search?: boolean;
|
|
78
89
|
serverSideSearch?: boolean;
|
|
79
|
-
params?:
|
|
90
|
+
params?: Record<string, unknown>;
|
|
80
91
|
rows?: number;
|
|
81
92
|
accept?: string;
|
|
82
93
|
pwdhide?: boolean;
|
|
83
94
|
icon?: string;
|
|
84
95
|
iconColor?: XiriColor;
|
|
96
|
+
question?: string;
|
|
85
97
|
done?: boolean;
|
|
86
98
|
showWhen?: XiriFormFieldCondition | XiriFormFieldCondition[];
|
|
87
99
|
control?: FormControl;
|
|
88
100
|
placeholder?: string;
|
|
89
|
-
array?:
|
|
101
|
+
array?: (string | number)[];
|
|
90
102
|
tree?: boolean;
|
|
91
103
|
}
|
|
92
104
|
|
|
@@ -94,11 +106,11 @@ type XiriFormFieldDisplay = 'full' | 'line' | 'small';
|
|
|
94
106
|
declare class XiriFormFieldsComponent implements OnInit {
|
|
95
107
|
private formBuilder;
|
|
96
108
|
private destroyRef;
|
|
97
|
-
form: _angular_core.InputSignal<XiriFormField[]>;
|
|
109
|
+
form: _angular_core.InputSignal<XiriFormField[] | null>;
|
|
98
110
|
display: _angular_core.InputSignal<XiriFormFieldDisplay>;
|
|
99
111
|
disabled: _angular_core.InputSignal<boolean>;
|
|
100
|
-
formChange: _angular_core.OutputEmitterRef<
|
|
101
|
-
check: _angular_core.InputSignal<Observable<void
|
|
112
|
+
formChange: _angular_core.OutputEmitterRef<UntypedFormGroup>;
|
|
113
|
+
check: _angular_core.InputSignal<Observable<void> | null>;
|
|
102
114
|
formGroup: UntypedFormGroup;
|
|
103
115
|
private lastValue;
|
|
104
116
|
private _fields;
|
|
@@ -107,7 +119,7 @@ declare class XiriFormFieldsComponent implements OnInit {
|
|
|
107
119
|
private _initialEmitDone;
|
|
108
120
|
constructor();
|
|
109
121
|
ngOnInit(): void;
|
|
110
|
-
fields: _angular_core.Signal<XiriFormField[]>;
|
|
122
|
+
fields: _angular_core.Signal<XiriFormField[] | null>;
|
|
111
123
|
private createControl;
|
|
112
124
|
private bindValidations;
|
|
113
125
|
private validateAllFormFields;
|
|
@@ -120,11 +132,11 @@ declare class XiriFormFieldsComponent implements OnInit {
|
|
|
120
132
|
static ɵcmp: _angular_core.ɵɵComponentDeclaration<XiriFormFieldsComponent, "xiri-form-fields", never, { "form": { "alias": "form"; "required": false; "isSignal": true; }; "display": { "alias": "display"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "check": { "alias": "check"; "required": false; "isSignal": true; }; }, { "formChange": "formChange"; }, never, never, true, never>;
|
|
121
133
|
}
|
|
122
134
|
|
|
123
|
-
type XiriSelectPredicate =
|
|
135
|
+
type XiriSelectPredicate = (filter: string, element: XiriFormFieldSelectOption) => boolean;
|
|
124
136
|
declare const DEFAULT_PREDICATE: XiriSelectPredicate;
|
|
125
|
-
type XiriSelectCompare =
|
|
137
|
+
type XiriSelectCompare = (a: XiriFormFieldSelectOption, b: XiriFormFieldSelectOption) => boolean;
|
|
126
138
|
declare const DEFAULT_COMPARE: XiriSelectCompare;
|
|
127
|
-
declare class XiriSelectDirective
|
|
139
|
+
declare class XiriSelectDirective implements OnInit, OnDestroy {
|
|
128
140
|
private dataService;
|
|
129
141
|
private cdr;
|
|
130
142
|
get formControl(): UntypedFormControl;
|
|
@@ -137,20 +149,20 @@ declare class XiriSelectDirective<T> {
|
|
|
137
149
|
searching: boolean;
|
|
138
150
|
/** Subject that emits when the component has been destroyed. */
|
|
139
151
|
protected _onDestroy: Subject<void>;
|
|
140
|
-
|
|
141
|
-
|
|
152
|
+
predicate: _angular_core.InputSignal<XiriSelectPredicate>;
|
|
153
|
+
compare: _angular_core.InputSignal<XiriSelectCompare>;
|
|
142
154
|
serverSideSearch: _angular_core.InputSignal<boolean>;
|
|
143
155
|
serverUrl: _angular_core.InputSignal<string>;
|
|
144
|
-
serverParams: _angular_core.InputSignal<
|
|
156
|
+
serverParams: _angular_core.InputSignal<Record<string, unknown>>;
|
|
145
157
|
/** list of _allValues */
|
|
146
158
|
private _allValues;
|
|
147
|
-
|
|
159
|
+
values: _angular_core.InputSignal<XiriFormFieldSelectOption[]>;
|
|
148
160
|
constructor();
|
|
149
161
|
ngOnInit(): void;
|
|
150
162
|
ngOnDestroy(): void;
|
|
151
163
|
private applyFilter;
|
|
152
|
-
static ɵfac: _angular_core.ɵɵFactoryDeclaration<XiriSelectDirective
|
|
153
|
-
static ɵdir: _angular_core.ɵɵDirectiveDeclaration<XiriSelectDirective
|
|
164
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<XiriSelectDirective, never>;
|
|
165
|
+
static ɵdir: _angular_core.ɵɵDirectiveDeclaration<XiriSelectDirective, "[xiriSelect]", ["xiriSelect"], { "predicate": { "alias": "predicate"; "required": false; "isSignal": true; }; "compare": { "alias": "compare"; "required": false; "isSignal": true; }; "serverSideSearch": { "alias": "serverSideSearch"; "required": false; "isSignal": true; }; "serverUrl": { "alias": "serverUrl"; "required": false; "isSignal": true; }; "serverParams": { "alias": "serverParams"; "required": false; "isSignal": true; }; "values": { "alias": "values"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
154
166
|
}
|
|
155
167
|
|
|
156
168
|
interface XiriButton {
|
|
@@ -171,32 +183,39 @@ interface XiriButton {
|
|
|
171
183
|
inline?: boolean;
|
|
172
184
|
disabled?: boolean;
|
|
173
185
|
autoLoad?: boolean;
|
|
174
|
-
data?: Record<string,
|
|
186
|
+
data?: Record<string, unknown>;
|
|
175
187
|
target?: string;
|
|
176
188
|
loading?: boolean;
|
|
177
189
|
filename?: string;
|
|
178
|
-
check?:
|
|
179
|
-
send?:
|
|
190
|
+
check?: string[];
|
|
191
|
+
send?: string[];
|
|
180
192
|
menuItems?: {
|
|
181
193
|
action: string;
|
|
182
194
|
url?: string;
|
|
183
195
|
icon?: string;
|
|
184
196
|
color?: string;
|
|
185
197
|
text?: string;
|
|
186
|
-
data?: Record<string,
|
|
198
|
+
data?: Record<string, unknown>;
|
|
187
199
|
}[];
|
|
188
200
|
}
|
|
189
201
|
interface XiriButtonResult {
|
|
190
202
|
button: XiriButton;
|
|
191
|
-
result:
|
|
203
|
+
result: unknown;
|
|
192
204
|
done: boolean;
|
|
193
205
|
loading: boolean;
|
|
194
206
|
}
|
|
207
|
+
interface XiriButtonResponse {
|
|
208
|
+
poll?: number;
|
|
209
|
+
pollUrl?: string;
|
|
210
|
+
text?: string;
|
|
211
|
+
button?: Partial<XiriButton>;
|
|
212
|
+
[key: string]: unknown;
|
|
213
|
+
}
|
|
195
214
|
declare class XiriButtonComponent implements OnDestroy {
|
|
196
215
|
button: _angular_core.InputSignal<XiriButton>;
|
|
197
216
|
disabled: _angular_core.InputSignal<boolean>;
|
|
198
|
-
filterData: _angular_core.InputSignal<
|
|
199
|
-
url: _angular_core.InputSignal<string>;
|
|
217
|
+
filterData: _angular_core.InputSignal<Record<string, unknown> | null | undefined>;
|
|
218
|
+
url: _angular_core.InputSignal<string | undefined>;
|
|
200
219
|
result: _angular_core.OutputEmitterRef<XiriButtonResult>;
|
|
201
220
|
private dialogRef?;
|
|
202
221
|
private destroyRef;
|
|
@@ -209,7 +228,7 @@ declare class XiriButtonComponent implements OnDestroy {
|
|
|
209
228
|
nextAt: number;
|
|
210
229
|
url: string;
|
|
211
230
|
text?: string;
|
|
212
|
-
}>;
|
|
231
|
+
} | null>;
|
|
213
232
|
private _now;
|
|
214
233
|
protected countdown: _angular_core.Signal<number>;
|
|
215
234
|
protected pollText: _angular_core.Signal<string>;
|
|
@@ -221,12 +240,12 @@ declare class XiriButtonComponent implements OnDestroy {
|
|
|
221
240
|
private downloadService;
|
|
222
241
|
private responseHandler;
|
|
223
242
|
_disabled: _angular_core.Signal<boolean>;
|
|
224
|
-
_url: _angular_core.Signal<string>;
|
|
243
|
+
_url: _angular_core.Signal<string | undefined>;
|
|
225
244
|
constructor();
|
|
226
245
|
clicked(event: MouseEvent): void;
|
|
227
246
|
private runAction;
|
|
228
247
|
private actionDialog;
|
|
229
|
-
openMenuDialog(event: MouseEvent, item:
|
|
248
|
+
openMenuDialog(event: MouseEvent, item: Record<string, unknown>): void;
|
|
230
249
|
private actionApi;
|
|
231
250
|
private processResult;
|
|
232
251
|
private startPolling;
|
|
@@ -278,8 +297,10 @@ interface XiriTableField {
|
|
|
278
297
|
editableSearchUrl?: string;
|
|
279
298
|
}
|
|
280
299
|
|
|
300
|
+
/** A single table row: a map of column id → cell value (value shapes vary by column format). */
|
|
301
|
+
type XiriRawTableRow = Record<string, unknown>;
|
|
281
302
|
interface XiriRawTableSettings {
|
|
282
|
-
data:
|
|
303
|
+
data: unknown;
|
|
283
304
|
fields?: XiriTableField[];
|
|
284
305
|
dense?: number;
|
|
285
306
|
forceMinWidth?: boolean;
|
|
@@ -288,9 +309,9 @@ interface XiriRawTableSettings {
|
|
|
288
309
|
declare class XiriRawTableComponent {
|
|
289
310
|
settings: _angular_core.InputSignal<XiriRawTableSettings>;
|
|
290
311
|
showHeader: _angular_core.Signal<boolean>;
|
|
291
|
-
displayedColumns:
|
|
312
|
+
displayedColumns: XiriTableField[];
|
|
292
313
|
columnsToDisplay: string[];
|
|
293
|
-
dataSource: MatTableDataSource<
|
|
314
|
+
dataSource: MatTableDataSource<XiriRawTableRow, _angular_material_paginator.MatPaginator>;
|
|
294
315
|
tableClass: string;
|
|
295
316
|
constructor();
|
|
296
317
|
private loadFields;
|
|
@@ -298,74 +319,15 @@ declare class XiriRawTableComponent {
|
|
|
298
319
|
static ɵcmp: _angular_core.ɵɵComponentDeclaration<XiriRawTableComponent, "xiri-raw-table", never, { "settings": { "alias": "settings"; "required": true; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
299
320
|
}
|
|
300
321
|
|
|
301
|
-
type
|
|
302
|
-
|
|
303
|
-
label: string;
|
|
304
|
-
color?: string;
|
|
322
|
+
type XiriTableCellValue = string | number | boolean | null | undefined | XiriTagChip | XiriTableCellValue[] | {
|
|
323
|
+
[key: string]: XiriTableCellValue;
|
|
305
324
|
};
|
|
306
|
-
|
|
307
|
-
|
|
308
|
-
|
|
309
|
-
|
|
310
|
-
|
|
311
|
-
row: any;
|
|
312
|
-
field: string;
|
|
313
|
-
}>;
|
|
314
|
-
editingChipsValues: _angular_core.WritableSignal<string[]>;
|
|
315
|
-
editableOptionsLoading: _angular_core.WritableSignal<boolean>;
|
|
316
|
-
loadedEditableOptions: _angular_core.WritableSignal<EditableOption[]>;
|
|
317
|
-
savingCell: _angular_core.WritableSignal<{
|
|
318
|
-
row: any;
|
|
319
|
-
field: string;
|
|
320
|
-
}>;
|
|
321
|
-
searchControl: FormControl<string>;
|
|
322
|
-
searching: _angular_core.WritableSignal<boolean>;
|
|
323
|
-
displayedOptions: _angular_core.WritableSignal<EditableOption[]>;
|
|
324
|
-
private editingOriginalValue;
|
|
325
|
-
private editableOptionsSub;
|
|
326
|
-
private optionCache;
|
|
327
|
-
private searchSub;
|
|
328
|
-
private searchReqSub;
|
|
329
|
-
private getEditUrl;
|
|
330
|
-
private getDisplayedColumns;
|
|
331
|
-
private abort$;
|
|
332
|
-
private onSaved;
|
|
333
|
-
private onDataUpdate;
|
|
334
|
-
private onCallReturn;
|
|
335
|
-
private get editUrl();
|
|
336
|
-
private get displayedColumns();
|
|
337
|
-
init(config: {
|
|
338
|
-
getEditUrl: () => string;
|
|
339
|
-
getDisplayedColumns: () => XiriTableField[];
|
|
340
|
-
abort$: Subject<void>;
|
|
341
|
-
onSaved: (row: any, fieldId: string) => void;
|
|
342
|
-
onDataUpdate: () => void;
|
|
343
|
-
onCallReturn: (result: any) => void;
|
|
344
|
-
}): void;
|
|
345
|
-
start(row: any, column: XiriTableField, skipSavingCheck?: boolean): void;
|
|
346
|
-
/** Sets up the search box + subscription for searchable inline-edit selects. */
|
|
347
|
-
private initSearch;
|
|
348
|
-
/** Runs the search: server-side POST when editableSearchUrl is set, otherwise local label filter. */
|
|
349
|
-
private runSearch;
|
|
350
|
-
private teardownSearch;
|
|
351
|
-
/** The unfiltered option list: static options on the column, or those loaded via editableOptionsUrl. */
|
|
352
|
-
private baseOptions;
|
|
353
|
-
cancel(): void;
|
|
354
|
-
save(row: any, column: XiriTableField): void;
|
|
355
|
-
isEditing(row: any, fieldId: string): boolean;
|
|
356
|
-
isSaving(row: any, fieldId: string): boolean;
|
|
357
|
-
onKeydown(event: KeyboardEvent, row: any, column: XiriTableField): void;
|
|
358
|
-
focus(): void;
|
|
359
|
-
getAdjacentEditableColumn(currentField: string, direction: 1 | -1): XiriTableField | null;
|
|
360
|
-
flashSaved(row: any, fieldId: string, dataSource: any): void;
|
|
361
|
-
getOptions(column: XiriTableField): EditableOption[];
|
|
362
|
-
/** The currently selected value(s) of the editing cell. */
|
|
363
|
-
private selectedValues;
|
|
364
|
-
onChipsChange(row: any, column: XiriTableField, selectedValues: string[]): void;
|
|
365
|
-
static ɵfac: _angular_core.ɵɵFactoryDeclaration<XiriTableInlineEditService, never>;
|
|
366
|
-
static ɵprov: _angular_core.ɵɵInjectableDeclaration<XiriTableInlineEditService>;
|
|
325
|
+
interface XiriTableRow {
|
|
326
|
+
[key: string]: XiriTableCellValue | XiriTreeMeta | undefined;
|
|
327
|
+
id?: string | number;
|
|
328
|
+
select?: boolean;
|
|
329
|
+
_tree?: XiriTreeMeta;
|
|
367
330
|
}
|
|
368
|
-
|
|
369
331
|
/**
|
|
370
332
|
* Opt-in tree-mode settings for xiri-table. When present on XiriTableSettings.tree, the
|
|
371
333
|
* table renders rows hierarchically (indent + expand/collapse) based on each flat row's
|
|
@@ -378,10 +340,18 @@ interface XiriTableTreeSettings {
|
|
|
378
340
|
collapseAllByDefault?: boolean;
|
|
379
341
|
persistStateKey?: string;
|
|
380
342
|
showCounts?: boolean;
|
|
381
|
-
addSubHandler?: (parentRow:
|
|
343
|
+
addSubHandler?: (parentRow: XiriTableRow) => void;
|
|
382
344
|
addSubUrl?: string;
|
|
383
345
|
addSubField?: string;
|
|
384
|
-
addSubWhen?: (row:
|
|
346
|
+
addSubWhen?: (row: XiriTableRow) => boolean;
|
|
347
|
+
}
|
|
348
|
+
/** Per-row tree metadata, attached as row._tree by flatten()/searchProjection(). */
|
|
349
|
+
interface XiriTreeMeta {
|
|
350
|
+
level: number;
|
|
351
|
+
hasChildren: boolean;
|
|
352
|
+
expanded: boolean;
|
|
353
|
+
childCount: number;
|
|
354
|
+
dimmed?: boolean;
|
|
385
355
|
}
|
|
386
356
|
declare class XiriTableTreeService {
|
|
387
357
|
private localStorage;
|
|
@@ -400,26 +370,26 @@ declare class XiriTableTreeService {
|
|
|
400
370
|
/** Initialises the service from the table's tree settings. treeColumn falls back to firstColumnId. */
|
|
401
371
|
init(config: XiriTableTreeSettings, firstColumnId: string): void;
|
|
402
372
|
/** Builds the tree from flat rows and initialises the expand-state. */
|
|
403
|
-
build(rows:
|
|
373
|
+
build(rows: XiriTableRow[]): void;
|
|
404
374
|
/** Returns the visible rows: search projection when searching, otherwise the expand-state flatten. */
|
|
405
|
-
visibleRows(matches?: (row:
|
|
375
|
+
visibleRows(matches?: (row: XiriTableRow) => boolean): XiriTableRow[];
|
|
406
376
|
/**
|
|
407
377
|
* Applies (or clears) a search. On the empty→active transition the current expand-state is
|
|
408
378
|
* snapshotted and the tree is fully expanded (so all matches are visible); during the search
|
|
409
379
|
* the same `expanded` state drives expand/collapse, so the arrows work. On active→empty the
|
|
410
380
|
* pre-search state is restored (Spec §5). Returns the new visible rows.
|
|
411
381
|
*/
|
|
412
|
-
applySearch(matches: ((row:
|
|
413
|
-
toggle(row:
|
|
382
|
+
applySearch(matches: ((row: XiriTableRow) => boolean) | null): XiriTableRow[];
|
|
383
|
+
toggle(row: XiriTableRow): void;
|
|
414
384
|
expandAll(): void;
|
|
415
385
|
collapseAll(): void;
|
|
416
386
|
/**
|
|
417
387
|
* Whether the "+ sub" button should be shown for a given row. Opt-in: an addSubWhen predicate
|
|
418
388
|
* or a truthy addSubField value gates it; without either, the button shows on every row.
|
|
419
389
|
*/
|
|
420
|
-
canAddSub(row:
|
|
390
|
+
canAddSub(row: XiriTableRow): boolean;
|
|
421
391
|
/** Resolves the "+ sub" target URL for a row, substituting the {id} placeholder. */
|
|
422
|
-
addSubUrlFor(row:
|
|
392
|
+
addSubUrlFor(row: XiriTableRow): string | null;
|
|
423
393
|
private storageKey;
|
|
424
394
|
private loadPersisted;
|
|
425
395
|
private persist;
|
|
@@ -427,6 +397,74 @@ declare class XiriTableTreeService {
|
|
|
427
397
|
static ɵprov: _angular_core.ɵɵInjectableDeclaration<XiriTableTreeService>;
|
|
428
398
|
}
|
|
429
399
|
|
|
400
|
+
interface EditableOption {
|
|
401
|
+
value: string;
|
|
402
|
+
label: string;
|
|
403
|
+
color?: string;
|
|
404
|
+
}
|
|
405
|
+
declare class XiriTableInlineEditService {
|
|
406
|
+
private dataService;
|
|
407
|
+
private snackbar;
|
|
408
|
+
private injector;
|
|
409
|
+
editingCell: _angular_core.WritableSignal<{
|
|
410
|
+
row: XiriTableRow;
|
|
411
|
+
field: string;
|
|
412
|
+
} | null>;
|
|
413
|
+
editingChipsValues: _angular_core.WritableSignal<string[]>;
|
|
414
|
+
editableOptionsLoading: _angular_core.WritableSignal<boolean>;
|
|
415
|
+
loadedEditableOptions: _angular_core.WritableSignal<EditableOption[]>;
|
|
416
|
+
savingCell: _angular_core.WritableSignal<{
|
|
417
|
+
row: XiriTableRow;
|
|
418
|
+
field: string;
|
|
419
|
+
} | null>;
|
|
420
|
+
searchControl: FormControl<string>;
|
|
421
|
+
searching: _angular_core.WritableSignal<boolean>;
|
|
422
|
+
displayedOptions: _angular_core.WritableSignal<EditableOption[]>;
|
|
423
|
+
private editingOriginalValue;
|
|
424
|
+
private editableOptionsSub;
|
|
425
|
+
private optionCache;
|
|
426
|
+
private searchSub;
|
|
427
|
+
private searchReqSub;
|
|
428
|
+
private getEditUrl;
|
|
429
|
+
private getDisplayedColumns;
|
|
430
|
+
private abort$;
|
|
431
|
+
private onSaved;
|
|
432
|
+
private onDataUpdate;
|
|
433
|
+
private onCallReturn;
|
|
434
|
+
private get editUrl();
|
|
435
|
+
private get displayedColumns();
|
|
436
|
+
init(config: {
|
|
437
|
+
getEditUrl: () => string;
|
|
438
|
+
getDisplayedColumns: () => XiriTableField[];
|
|
439
|
+
abort$: Subject<void>;
|
|
440
|
+
onSaved: (row: XiriTableRow, fieldId: string) => void;
|
|
441
|
+
onDataUpdate: () => void;
|
|
442
|
+
onCallReturn: (result: unknown) => void;
|
|
443
|
+
}): void;
|
|
444
|
+
start(row: XiriTableRow, column: XiriTableField, skipSavingCheck?: boolean): void;
|
|
445
|
+
/** Sets up the search box + subscription for searchable inline-edit selects. */
|
|
446
|
+
private initSearch;
|
|
447
|
+
/** Runs the search: server-side POST when editableSearchUrl is set, otherwise local label filter. */
|
|
448
|
+
private runSearch;
|
|
449
|
+
private teardownSearch;
|
|
450
|
+
/** The unfiltered option list: static options on the column, or those loaded via editableOptionsUrl. */
|
|
451
|
+
private baseOptions;
|
|
452
|
+
cancel(): void;
|
|
453
|
+
save(row: XiriTableRow, column: XiriTableField): void;
|
|
454
|
+
isEditing(row: XiriTableRow, fieldId: string): boolean;
|
|
455
|
+
isSaving(row: XiriTableRow, fieldId: string): boolean;
|
|
456
|
+
onKeydown(event: KeyboardEvent, row: XiriTableRow, column: XiriTableField): void;
|
|
457
|
+
focus(): void;
|
|
458
|
+
getAdjacentEditableColumn(currentField: string, direction: 1 | -1): XiriTableField | null;
|
|
459
|
+
flashSaved(row: XiriTableRow, fieldId: string, dataSource: MatTableDataSource<XiriTableRow>): void;
|
|
460
|
+
getOptions(column: XiriTableField): EditableOption[];
|
|
461
|
+
/** The currently selected value(s) of the editing cell. */
|
|
462
|
+
private selectedValues;
|
|
463
|
+
onChipsChange(row: XiriTableRow, column: XiriTableField, selectedValues: string[]): void;
|
|
464
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<XiriTableInlineEditService, never>;
|
|
465
|
+
static ɵprov: _angular_core.ɵɵInjectableDeclaration<XiriTableInlineEditService>;
|
|
466
|
+
}
|
|
467
|
+
|
|
430
468
|
interface XiriButtonlineSettings {
|
|
431
469
|
buttons: XiriButton[];
|
|
432
470
|
class: string;
|
|
@@ -434,7 +472,7 @@ interface XiriButtonlineSettings {
|
|
|
434
472
|
declare class XiriButtonlineComponent {
|
|
435
473
|
settings: _angular_core.InputSignal<XiriButtonlineSettings>;
|
|
436
474
|
disabled: _angular_core.InputSignal<boolean>;
|
|
437
|
-
filterData: _angular_core.InputSignal<
|
|
475
|
+
filterData: _angular_core.InputSignal<Record<string, unknown> | null | undefined>;
|
|
438
476
|
result: _angular_core.OutputEmitterRef<XiriButtonResult>;
|
|
439
477
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<XiriButtonlineComponent, never>;
|
|
440
478
|
static ɵcmp: _angular_core.ɵɵComponentDeclaration<XiriButtonlineComponent, "xiri-buttonline", never, { "settings": { "alias": "settings"; "required": true; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "filterData": { "alias": "filterData"; "required": false; "isSignal": true; }; }, { "result": "result"; }, never, never, true, never>;
|
|
@@ -444,12 +482,22 @@ type XiriDynDataType = 'card' | 'buttonline' | 'table' | 'cardlink' | 'links' |
|
|
|
444
482
|
interface XiriDynData {
|
|
445
483
|
id?: number;
|
|
446
484
|
type: XiriDynDataType | (string & {});
|
|
447
|
-
data?:
|
|
485
|
+
data?: unknown;
|
|
448
486
|
display?: string;
|
|
449
487
|
newRow?: boolean;
|
|
450
488
|
mode?: string;
|
|
451
489
|
}
|
|
452
490
|
|
|
491
|
+
interface XiriTableResponse {
|
|
492
|
+
data?: XiriTableRow[];
|
|
493
|
+
fields?: XiriTableField[];
|
|
494
|
+
summary?: XiriDynData[];
|
|
495
|
+
components?: XiriDynData[];
|
|
496
|
+
footer?: Record<string, XiriTableCellValue>;
|
|
497
|
+
totalCount?: number;
|
|
498
|
+
poll?: number;
|
|
499
|
+
[key: string]: unknown;
|
|
500
|
+
}
|
|
453
501
|
interface XiriTableEmptyState {
|
|
454
502
|
icon?: string;
|
|
455
503
|
iconColor?: XiriColor;
|
|
@@ -486,7 +534,7 @@ interface XiriTableOptions {
|
|
|
486
534
|
}
|
|
487
535
|
interface XiriTableSettings {
|
|
488
536
|
url?: string;
|
|
489
|
-
data?:
|
|
537
|
+
data?: XiriTableRow[];
|
|
490
538
|
fields?: XiriTableField[];
|
|
491
539
|
options?: XiriTableOptions;
|
|
492
540
|
hasFilter?: boolean;
|
|
@@ -506,25 +554,25 @@ declare class XiriTableComponent implements OnInit, OnDestroy {
|
|
|
506
554
|
tree: XiriTableTreeService;
|
|
507
555
|
protected _changeDetectorRef: ChangeDetectorRef;
|
|
508
556
|
private destroyRef;
|
|
509
|
-
dyncomponent: _angular_core.InputSignal<TemplateRef<
|
|
557
|
+
dyncomponent: _angular_core.InputSignal<TemplateRef<unknown> | undefined>;
|
|
510
558
|
settings: _angular_core.InputSignal<XiriTableSettings>;
|
|
511
|
-
filterData: _angular_core.InputSignal<
|
|
512
|
-
clickedRow: _angular_core.OutputEmitterRef<
|
|
559
|
+
filterData: _angular_core.InputSignal<Record<string, unknown> | null | undefined>;
|
|
560
|
+
clickedRow: _angular_core.OutputEmitterRef<XiriTableRow>;
|
|
513
561
|
paginator: _angular_core.Signal<MatPaginator>;
|
|
514
562
|
sort: _angular_core.Signal<MatSort>;
|
|
515
|
-
table: _angular_core.Signal<MatTable<
|
|
563
|
+
table: _angular_core.Signal<MatTable<XiriTableRow>>;
|
|
516
564
|
loading: _angular_core.WritableSignal<boolean>;
|
|
517
565
|
private _totalCount;
|
|
518
566
|
displayedColumns: XiriTableField[];
|
|
519
567
|
columnsToDisplay: string[];
|
|
520
568
|
columnsToSearch: string[];
|
|
521
|
-
dataSource: MatTableDataSource<
|
|
522
|
-
protected _displayeddata: readonly
|
|
523
|
-
_alldata: _angular_core.WritableSignal<
|
|
524
|
-
footer:
|
|
569
|
+
dataSource: MatTableDataSource<XiriTableRow, MatPaginator>;
|
|
570
|
+
protected _displayeddata: readonly XiriTableRow[];
|
|
571
|
+
_alldata: _angular_core.WritableSignal<XiriTableRow[] | null>;
|
|
572
|
+
footer: Record<string, XiriTableCellValue>;
|
|
525
573
|
extraHeaderFields: XiriTableField[];
|
|
526
574
|
extraHeaders: string[];
|
|
527
|
-
selection: SelectionModel<
|
|
575
|
+
selection: SelectionModel<XiriTableRow>;
|
|
528
576
|
private dialogRef?;
|
|
529
577
|
private reloadAbort$;
|
|
530
578
|
private autoRefreshTimer?;
|
|
@@ -532,38 +580,34 @@ declare class XiriTableComponent implements OnInit, OnDestroy {
|
|
|
532
580
|
autoRefresh: _angular_core.WritableSignal<{
|
|
533
581
|
intervalMs: number;
|
|
534
582
|
nextAt: number;
|
|
535
|
-
}>;
|
|
583
|
+
} | null>;
|
|
536
584
|
private _now;
|
|
537
585
|
countdown: _angular_core.Signal<number>;
|
|
538
586
|
options: XiriTableOptions;
|
|
539
587
|
dynData: {
|
|
540
|
-
data: XiriDynData[];
|
|
541
|
-
filterData:
|
|
588
|
+
data: XiriDynData[] | null;
|
|
589
|
+
filterData: Record<string, unknown> | null | undefined;
|
|
542
590
|
};
|
|
543
591
|
errorMsg: string;
|
|
544
592
|
private _firstData;
|
|
545
593
|
searchText: string;
|
|
546
594
|
searchTextInit: string;
|
|
547
595
|
private tableStateKey;
|
|
548
|
-
trackByRowId: (
|
|
596
|
+
trackByRowId: (index: number, row: XiriTableRow) => string | number;
|
|
549
597
|
get editingCell(): _angular_core.WritableSignal<{
|
|
550
|
-
row:
|
|
598
|
+
row: XiriTableRow;
|
|
551
599
|
field: string;
|
|
552
|
-
}>;
|
|
600
|
+
} | null>;
|
|
553
601
|
get editingChipsValues(): _angular_core.WritableSignal<string[]>;
|
|
554
602
|
get editableOptionsLoading(): _angular_core.WritableSignal<boolean>;
|
|
555
|
-
get loadedEditableOptions(): _angular_core.WritableSignal<
|
|
556
|
-
value: string;
|
|
557
|
-
label: string;
|
|
558
|
-
color?: string;
|
|
559
|
-
}[]>;
|
|
603
|
+
get loadedEditableOptions(): _angular_core.WritableSignal<EditableOption[]>;
|
|
560
604
|
get savingCell(): _angular_core.WritableSignal<{
|
|
561
|
-
row:
|
|
605
|
+
row: XiriTableRow;
|
|
562
606
|
field: string;
|
|
563
|
-
}>;
|
|
607
|
+
} | null>;
|
|
564
608
|
get inlineSearchControl(): _angular_forms.FormControl<string>;
|
|
565
609
|
get inlineSearching(): _angular_core.WritableSignal<boolean>;
|
|
566
|
-
_filterData: _angular_core.Signal<
|
|
610
|
+
_filterData: _angular_core.Signal<Record<string, unknown> | null | undefined>;
|
|
567
611
|
constructor();
|
|
568
612
|
ngOnInit(): void;
|
|
569
613
|
private loadData;
|
|
@@ -574,49 +618,49 @@ declare class XiriTableComponent implements OnInit, OnDestroy {
|
|
|
574
618
|
private scheduleAutoRefresh;
|
|
575
619
|
private cancelAutoRefreshTimers;
|
|
576
620
|
private clearAutoRefresh;
|
|
577
|
-
searchDo($event:
|
|
621
|
+
searchDo($event: string): void;
|
|
578
622
|
get treeEnabled(): boolean;
|
|
579
623
|
get treeColumnId(): string;
|
|
580
624
|
get treeShowCounts(): boolean;
|
|
581
625
|
get treeHasAddSub(): boolean;
|
|
582
|
-
treeCanAddSub(row:
|
|
626
|
+
treeCanAddSub(row: XiriTableRow): boolean;
|
|
583
627
|
/** Recomputes the visible rows from the tree (respecting the active search), into the data source. */
|
|
584
628
|
private refreshTree;
|
|
585
629
|
private rowMatches;
|
|
586
|
-
toggleNode(event: MouseEvent, row:
|
|
630
|
+
toggleNode(event: MouseEvent, row: XiriTableRow): void;
|
|
587
631
|
expandAllNodes(): void;
|
|
588
632
|
collapseAllNodes(): void;
|
|
589
|
-
addSub(event: MouseEvent, row:
|
|
633
|
+
addSub(event: MouseEvent, row: XiriTableRow): void;
|
|
590
634
|
isAllSelected(): boolean;
|
|
591
635
|
masterToggle(): void;
|
|
592
|
-
clicked(row:
|
|
593
|
-
openDialog(event: MouseEvent, button:
|
|
594
|
-
openMenuDialog(event: MouseEvent, item:
|
|
636
|
+
clicked(row: XiriTableRow): void;
|
|
637
|
+
openDialog(event: MouseEvent, button: XiriButton, id: string, subid: number, row: XiriTableRow): void;
|
|
638
|
+
openMenuDialog(event: MouseEvent, item: NonNullable<XiriButton['menuItems']>[number], columnId: string, buttonIndex: number, menuItemIndex: number, row: XiriTableRow): void;
|
|
595
639
|
openDialogSelection(event: MouseEvent, button: XiriButton): boolean;
|
|
596
640
|
private startDialog;
|
|
597
641
|
apiCall(event: MouseEvent, url: string): void;
|
|
598
642
|
apiCallSelection(event: MouseEvent, button: XiriButton): void;
|
|
599
|
-
saveCall(event: MouseEvent, button: XiriButton, row:
|
|
600
|
-
saveCallCheck(button: XiriButton, row:
|
|
643
|
+
saveCall(event: MouseEvent, button: XiriButton, row: XiriTableRow, url: string): void;
|
|
644
|
+
saveCallCheck(button: XiriButton, row: XiriTableRow): boolean;
|
|
601
645
|
downloadSelection(event: MouseEvent, button: XiriButton): void;
|
|
602
646
|
private makeApiCall;
|
|
603
647
|
buttonReturn(event: XiriButtonResult): void;
|
|
604
648
|
private callReturn;
|
|
605
649
|
private getSelectionIDs;
|
|
606
|
-
startInlineEdit(row:
|
|
650
|
+
startInlineEdit(row: XiriTableRow, column: XiriTableField, skipSavingCheck?: boolean): void;
|
|
607
651
|
cancelInlineEdit(): void;
|
|
608
|
-
saveInlineEdit(row:
|
|
609
|
-
isEditing(row:
|
|
610
|
-
isSaving(row:
|
|
611
|
-
onInlineEditKeydown(event: KeyboardEvent, row:
|
|
652
|
+
saveInlineEdit(row: XiriTableRow, column: XiriTableField): void;
|
|
653
|
+
isEditing(row: XiriTableRow, fieldId: string): boolean;
|
|
654
|
+
isSaving(row: XiriTableRow, fieldId: string): boolean;
|
|
655
|
+
onInlineEditKeydown(event: KeyboardEvent, row: XiriTableRow, column: XiriTableField): void;
|
|
612
656
|
getEditableOptions(column: XiriTableField): {
|
|
613
657
|
value: string;
|
|
614
658
|
label: string;
|
|
615
659
|
color?: string;
|
|
616
660
|
}[];
|
|
617
|
-
onChipsSelectionChange(row:
|
|
661
|
+
onChipsSelectionChange(row: XiriTableRow, column: XiriTableField, selectedValues: string[]): void;
|
|
618
662
|
ngOnDestroy(): void;
|
|
619
|
-
pasteInput($event:
|
|
663
|
+
pasteInput($event: ClipboardEvent, row: XiriTableRow, column: XiriTableField): false | null;
|
|
620
664
|
saveInputData(): void;
|
|
621
665
|
private getSortingDataAccessor;
|
|
622
666
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<XiriTableComponent, never>;
|
|
@@ -626,7 +670,7 @@ declare class XiriTableComponent implements OnInit, OnDestroy {
|
|
|
626
670
|
interface XiriFormSettings {
|
|
627
671
|
load?: boolean;
|
|
628
672
|
url: string;
|
|
629
|
-
fields?:
|
|
673
|
+
fields?: XiriFormField[];
|
|
630
674
|
buttons?: XiriButton[];
|
|
631
675
|
header?: string;
|
|
632
676
|
}
|
|
@@ -635,9 +679,9 @@ declare class XiriFormComponent implements OnInit {
|
|
|
635
679
|
private location;
|
|
636
680
|
private formService;
|
|
637
681
|
private destroyRef;
|
|
638
|
-
formFields: _angular_core.WritableSignal<XiriFormField[]>;
|
|
682
|
+
formFields: _angular_core.WritableSignal<XiriFormField[] | null>;
|
|
639
683
|
loading: _angular_core.WritableSignal<boolean>;
|
|
640
|
-
loadingButton: _angular_core.WritableSignal<XiriButton>;
|
|
684
|
+
loadingButton: _angular_core.WritableSignal<XiriButton | null>;
|
|
641
685
|
done: _angular_core.WritableSignal<boolean>;
|
|
642
686
|
error: _angular_core.WritableSignal<string>;
|
|
643
687
|
private url;
|
|
@@ -651,7 +695,7 @@ declare class XiriFormComponent implements OnInit {
|
|
|
651
695
|
private loadData;
|
|
652
696
|
clickButton(button: XiriButton): void;
|
|
653
697
|
private startSend;
|
|
654
|
-
formChanged(event:
|
|
698
|
+
formChanged(event: UntypedFormGroup): void;
|
|
655
699
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<XiriFormComponent, never>;
|
|
656
700
|
static ɵcmp: _angular_core.ɵɵComponentDeclaration<XiriFormComponent, "xiri-form", never, { "settings": { "alias": "settings"; "required": true; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
657
701
|
}
|
|
@@ -661,12 +705,28 @@ interface XiriDialogSettings {
|
|
|
661
705
|
url?: string;
|
|
662
706
|
size?: XiriDialogSize | string;
|
|
663
707
|
type: "form" | "data" | "question" | "waiting" | "table" | "component";
|
|
664
|
-
data?:
|
|
665
|
-
filter?:
|
|
708
|
+
data?: unknown;
|
|
709
|
+
filter?: Record<string, unknown> | null;
|
|
710
|
+
}
|
|
711
|
+
interface XiriDialogResponse {
|
|
712
|
+
buttons?: XiriButton[];
|
|
713
|
+
size?: XiriDialogSize | string;
|
|
714
|
+
url?: string;
|
|
715
|
+
header?: string;
|
|
716
|
+
type?: string;
|
|
717
|
+
content?: unknown;
|
|
718
|
+
fields?: unknown;
|
|
719
|
+
model?: Record<string, unknown>;
|
|
720
|
+
extra?: Record<string, unknown>;
|
|
721
|
+
time?: number;
|
|
722
|
+
done?: boolean;
|
|
723
|
+
error?: string;
|
|
724
|
+
goto?: string;
|
|
725
|
+
[key: string]: unknown;
|
|
666
726
|
}
|
|
667
727
|
declare class XiriDialogComponent implements OnDestroy {
|
|
668
728
|
dialogRef: MatDialogRef<XiriDialogComponent, any>;
|
|
669
|
-
initData:
|
|
729
|
+
initData: XiriDialogSettings;
|
|
670
730
|
private breakpointObserver;
|
|
671
731
|
private dataService;
|
|
672
732
|
private router;
|
|
@@ -678,9 +738,9 @@ declare class XiriDialogComponent implements OnDestroy {
|
|
|
678
738
|
private extra;
|
|
679
739
|
private destroyRef;
|
|
680
740
|
private downloadService;
|
|
681
|
-
formFields: _angular_core.WritableSignal<XiriFormField[]>;
|
|
682
|
-
componentData: _angular_core.WritableSignal<
|
|
683
|
-
dynComponentType: _angular_core.WritableSignal<Type<unknown
|
|
741
|
+
formFields: _angular_core.WritableSignal<XiriFormField[] | null>;
|
|
742
|
+
componentData: _angular_core.WritableSignal<unknown>;
|
|
743
|
+
dynComponentType: _angular_core.WritableSignal<Type<unknown> | null>;
|
|
684
744
|
loading: _angular_core.WritableSignal<boolean>;
|
|
685
745
|
done: _angular_core.WritableSignal<boolean>;
|
|
686
746
|
error: _angular_core.WritableSignal<string>;
|
|
@@ -697,10 +757,13 @@ declare class XiriDialogComponent implements OnDestroy {
|
|
|
697
757
|
private applyDialogSize;
|
|
698
758
|
private loadData;
|
|
699
759
|
private refresh;
|
|
700
|
-
download(data:
|
|
760
|
+
download(data: unknown): void;
|
|
701
761
|
clickButton(button: XiriButton): void;
|
|
702
762
|
private startSend;
|
|
703
|
-
formChanged(event:
|
|
763
|
+
formChanged(event: {
|
|
764
|
+
valid: boolean;
|
|
765
|
+
value: Record<string, unknown> | null;
|
|
766
|
+
}): void;
|
|
704
767
|
ngOnDestroy(): void;
|
|
705
768
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<XiriDialogComponent, never>;
|
|
706
769
|
static ɵcmp: _angular_core.ɵɵComponentDeclaration<XiriDialogComponent, "xiri-dialog", never, {}, {}, never, never, true, never>;
|
|
@@ -708,50 +771,55 @@ declare class XiriDialogComponent implements OnDestroy {
|
|
|
708
771
|
|
|
709
772
|
interface XiriQuerySettings {
|
|
710
773
|
fields?: XiriFormField[];
|
|
711
|
-
dyn?:
|
|
774
|
+
dyn?: XiriDynData[];
|
|
712
775
|
url?: string;
|
|
713
776
|
buttonline?: XiriDynData;
|
|
714
|
-
extra?:
|
|
777
|
+
extra?: Record<string, unknown>;
|
|
715
778
|
saveState?: boolean;
|
|
716
779
|
saveStateId?: string;
|
|
717
780
|
collapsed?: boolean;
|
|
718
781
|
}
|
|
782
|
+
interface XiriQueryFormChangeEvent {
|
|
783
|
+
valid: boolean;
|
|
784
|
+
value: Record<string, unknown> | null;
|
|
785
|
+
pristine?: boolean;
|
|
786
|
+
}
|
|
719
787
|
declare class XiriQueryComponent implements OnInit {
|
|
720
788
|
private dataService;
|
|
721
789
|
private formService;
|
|
722
790
|
private cdr;
|
|
723
791
|
private destroyRef;
|
|
724
792
|
settings: _angular_core.InputSignal<XiriQuerySettings>;
|
|
725
|
-
dyncomponent: _angular_core.InputSignal<TemplateRef<
|
|
726
|
-
|
|
793
|
+
dyncomponent: _angular_core.InputSignal<TemplateRef<unknown> | undefined>;
|
|
794
|
+
filterChange: _angular_core.OutputEmitterRef<Record<string, unknown> | null>;
|
|
727
795
|
private waiter;
|
|
728
796
|
dynData: {
|
|
729
|
-
data: XiriDynData[];
|
|
730
|
-
filterData:
|
|
797
|
+
data: XiriDynData[] | null;
|
|
798
|
+
filterData: Record<string, unknown> | null;
|
|
731
799
|
};
|
|
732
800
|
private saveState;
|
|
733
801
|
private saveStateId;
|
|
734
802
|
private extra;
|
|
735
803
|
private _initialChangeDone;
|
|
736
804
|
private get effectiveSaveKey();
|
|
737
|
-
data: _angular_core.WritableSignal<XiriDynData[]>;
|
|
738
|
-
error: _angular_core.WritableSignal<string>;
|
|
739
|
-
formFields: _angular_core.WritableSignal<XiriFormField[]>;
|
|
805
|
+
data: _angular_core.WritableSignal<XiriDynData[] | null>;
|
|
806
|
+
error: _angular_core.WritableSignal<string | null>;
|
|
807
|
+
formFields: _angular_core.WritableSignal<XiriFormField[] | null>;
|
|
740
808
|
formValid: _angular_core.WritableSignal<boolean>;
|
|
741
|
-
filterData: _angular_core.WritableSignal<
|
|
809
|
+
filterData: _angular_core.WritableSignal<Record<string, unknown> | null>;
|
|
742
810
|
loading: _angular_core.WritableSignal<boolean>;
|
|
743
811
|
ngOnInit(): void;
|
|
744
|
-
formChanged(event:
|
|
812
|
+
formChanged(event: XiriQueryFormChangeEvent): void;
|
|
745
813
|
clickedButton(event: XiriButtonResult): void;
|
|
746
814
|
private load;
|
|
747
815
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<XiriQueryComponent, never>;
|
|
748
|
-
static ɵcmp: _angular_core.ɵɵComponentDeclaration<XiriQueryComponent, "xiri-query", never, { "settings": { "alias": "settings"; "required": true; "isSignal": true; }; "dyncomponent": { "alias": "dyncomponent"; "required": false; "isSignal": true; }; }, { "
|
|
816
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<XiriQueryComponent, "xiri-query", never, { "settings": { "alias": "settings"; "required": true; "isSignal": true; }; "dyncomponent": { "alias": "dyncomponent"; "required": false; "isSignal": true; }; }, { "filterChange": "filterChange"; }, never, never, true, never>;
|
|
749
817
|
}
|
|
750
818
|
|
|
751
819
|
interface XiriCardSettings {
|
|
752
820
|
url?: string;
|
|
753
821
|
reload?: boolean;
|
|
754
|
-
data?:
|
|
822
|
+
data?: unknown;
|
|
755
823
|
fields?: XiriTableField[];
|
|
756
824
|
components?: XiriDynData[];
|
|
757
825
|
header?: string;
|
|
@@ -770,20 +838,18 @@ interface XiriCardSettings {
|
|
|
770
838
|
}
|
|
771
839
|
declare class XiriCardComponent {
|
|
772
840
|
private dataService;
|
|
773
|
-
private destroyRef;
|
|
774
841
|
settings: _angular_core.InputSignal<XiriCardSettings>;
|
|
775
|
-
loading: _angular_core.WritableSignal<boolean>;
|
|
776
|
-
errorMsg: _angular_core.WritableSignal<string>;
|
|
777
842
|
isCollapsed: _angular_core.WritableSignal<boolean>;
|
|
778
|
-
private
|
|
779
|
-
|
|
843
|
+
private cardResource;
|
|
844
|
+
loading: Signal<boolean>;
|
|
845
|
+
errorMsg: Signal<string>;
|
|
846
|
+
private _loaded;
|
|
847
|
+
cardData: Signal<unknown>;
|
|
780
848
|
hasComponents: Signal<boolean>;
|
|
781
849
|
/** Resolves padding setting (token or free CSS value) into a CSS length string. */
|
|
782
850
|
componentsPadding: Signal<string>;
|
|
783
851
|
rawTable: Signal<XiriRawTableSettings | null>;
|
|
784
|
-
constructor();
|
|
785
852
|
toggleCollapse(): void;
|
|
786
|
-
private loadData;
|
|
787
853
|
reload(): void;
|
|
788
854
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<XiriCardComponent, never>;
|
|
789
855
|
static ɵcmp: _angular_core.ɵɵComponentDeclaration<XiriCardComponent, "xiri-card", never, { "settings": { "alias": "settings"; "required": true; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
@@ -801,8 +867,8 @@ declare class XiriButtonstyleComponent {
|
|
|
801
867
|
|
|
802
868
|
declare class XiriDynComponentComponent {
|
|
803
869
|
data: _angular_core.InputSignal<XiriDynData[]>;
|
|
804
|
-
filterData: _angular_core.InputSignal<
|
|
805
|
-
dyncomponent: _angular_core.InputSignal<TemplateRef<
|
|
870
|
+
filterData: _angular_core.InputSignal<Record<string, unknown> | null | undefined>;
|
|
871
|
+
dyncomponent: _angular_core.InputSignal<TemplateRef<unknown> | undefined>;
|
|
806
872
|
dataInt: _angular_core.Signal<XiriDynData[]>;
|
|
807
873
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<XiriDynComponentComponent, never>;
|
|
808
874
|
static ɵcmp: _angular_core.ɵɵComponentDeclaration<XiriDynComponentComponent, "xiri-dyncomponent", never, { "data": { "alias": "data"; "required": true; "isSignal": true; }; "filterData": { "alias": "filterData"; "required": false; "isSignal": true; }; "dyncomponent": { "alias": "dyncomponent"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
@@ -874,10 +940,23 @@ interface XiriStepperStep {
|
|
|
874
940
|
url?: string;
|
|
875
941
|
title: string;
|
|
876
942
|
fields: XiriFormField[];
|
|
877
|
-
data?:
|
|
878
|
-
extra?:
|
|
943
|
+
data?: Record<string, unknown>;
|
|
944
|
+
extra?: Record<string, unknown>;
|
|
879
945
|
buttons: XiriButton[];
|
|
880
946
|
}
|
|
947
|
+
interface XiriStepperFormChangeEvent {
|
|
948
|
+
valid: boolean;
|
|
949
|
+
value: Record<string, unknown> | null;
|
|
950
|
+
pristine?: boolean;
|
|
951
|
+
}
|
|
952
|
+
interface XiriStepperResponse {
|
|
953
|
+
step?: number;
|
|
954
|
+
fields?: XiriFormField[];
|
|
955
|
+
buttons?: XiriButton[];
|
|
956
|
+
url?: string;
|
|
957
|
+
goto?: string;
|
|
958
|
+
[key: string]: unknown;
|
|
959
|
+
}
|
|
881
960
|
interface StepState {
|
|
882
961
|
url?: string;
|
|
883
962
|
title: string;
|
|
@@ -889,8 +968,8 @@ interface StepState {
|
|
|
889
968
|
errorMsg: WritableSignal<string | null>;
|
|
890
969
|
fields: WritableSignal<XiriFormField[]>;
|
|
891
970
|
buttons: WritableSignal<XiriButton[]>;
|
|
892
|
-
data?:
|
|
893
|
-
extra?:
|
|
971
|
+
data?: Record<string, unknown>;
|
|
972
|
+
extra?: Record<string, unknown>;
|
|
894
973
|
}
|
|
895
974
|
declare class XiriStepperComponent implements OnInit {
|
|
896
975
|
private dataService;
|
|
@@ -904,7 +983,7 @@ declare class XiriStepperComponent implements OnInit {
|
|
|
904
983
|
steps: WritableSignal<StepState[]>;
|
|
905
984
|
ngOnInit(): void;
|
|
906
985
|
stepChanged($event: StepperSelectionEvent): void;
|
|
907
|
-
formChanged(step: StepState, event:
|
|
986
|
+
formChanged(step: StepState, event: XiriStepperFormChangeEvent, i: number): void;
|
|
908
987
|
clickButton(button: XiriButton): void;
|
|
909
988
|
private checkStep;
|
|
910
989
|
private showError;
|
|
@@ -1063,7 +1142,7 @@ interface XiriNavigationField {
|
|
|
1063
1142
|
declare class XiriSidenavComponent {
|
|
1064
1143
|
private router;
|
|
1065
1144
|
private cdr;
|
|
1066
|
-
settings: _angular_core.InputSignal<XiriSidebarSettings>;
|
|
1145
|
+
settings: _angular_core.InputSignal<XiriSidebarSettings | undefined>;
|
|
1067
1146
|
loading: boolean;
|
|
1068
1147
|
fields: XiriNavigationField[];
|
|
1069
1148
|
private prefix;
|
|
@@ -1096,8 +1175,8 @@ interface XiriTabsSettings {
|
|
|
1096
1175
|
}
|
|
1097
1176
|
declare class XiriTabsComponent {
|
|
1098
1177
|
settings: _angular_core.InputSignal<XiriTabsSettings>;
|
|
1099
|
-
filterData: _angular_core.InputSignal<
|
|
1100
|
-
dyncomponent: _angular_core.InputSignal<TemplateRef<
|
|
1178
|
+
filterData: _angular_core.InputSignal<Record<string, unknown> | null | undefined>;
|
|
1179
|
+
dyncomponent: _angular_core.InputSignal<TemplateRef<unknown> | undefined>;
|
|
1101
1180
|
selectedIndex: _angular_core.WritableSignal<number>;
|
|
1102
1181
|
visitedTabs: _angular_core.WritableSignal<Set<number>>;
|
|
1103
1182
|
constructor();
|
|
@@ -1128,8 +1207,8 @@ interface XiriExpansionSettings {
|
|
|
1128
1207
|
}
|
|
1129
1208
|
declare class XiriExpansionComponent {
|
|
1130
1209
|
settings: _angular_core.InputSignal<XiriExpansionSettings>;
|
|
1131
|
-
filterData: _angular_core.InputSignal<
|
|
1132
|
-
dyncomponent: _angular_core.InputSignal<TemplateRef<
|
|
1210
|
+
filterData: _angular_core.InputSignal<Record<string, unknown> | null | undefined>;
|
|
1211
|
+
dyncomponent: _angular_core.InputSignal<TemplateRef<unknown> | undefined>;
|
|
1133
1212
|
openedPanels: _angular_core.WritableSignal<Set<number>>;
|
|
1134
1213
|
visitedPanels: _angular_core.WritableSignal<Set<number>>;
|
|
1135
1214
|
onPanelOpened(index: number): void;
|
|
@@ -1226,7 +1305,7 @@ interface XiriEchartsClick {
|
|
|
1226
1305
|
seriesIndex: number;
|
|
1227
1306
|
dataIndex: number;
|
|
1228
1307
|
name: string;
|
|
1229
|
-
value:
|
|
1308
|
+
value: unknown;
|
|
1230
1309
|
}
|
|
1231
1310
|
/**
|
|
1232
1311
|
* `xiri-echarts-host` — shared echarts plumbing for all chart components.
|
|
@@ -1243,11 +1322,11 @@ interface XiriEchartsClick {
|
|
|
1243
1322
|
* outer xiri-card without card-in-card visuals.
|
|
1244
1323
|
*/
|
|
1245
1324
|
declare class XiriEchartsHostComponent implements AfterViewInit, OnDestroy {
|
|
1246
|
-
option: _angular_core.InputSignal<
|
|
1325
|
+
option: _angular_core.InputSignal<unknown>;
|
|
1247
1326
|
compact: _angular_core.InputSignal<boolean>;
|
|
1248
|
-
title: _angular_core.InputSignal<string>;
|
|
1249
|
-
headerIcon: _angular_core.InputSignal<string>;
|
|
1250
|
-
headerIconColor: _angular_core.InputSignal<XiriColor>;
|
|
1327
|
+
title: _angular_core.InputSignal<string | undefined>;
|
|
1328
|
+
headerIcon: _angular_core.InputSignal<string | undefined>;
|
|
1329
|
+
headerIconColor: _angular_core.InputSignal<XiriColor | undefined>;
|
|
1251
1330
|
chartHeight: _angular_core.InputSignal<string>;
|
|
1252
1331
|
itemClick: _angular_core.OutputEmitterRef<XiriEchartsClick>;
|
|
1253
1332
|
chartHostRef: _angular_core.Signal<ElementRef<HTMLDivElement>>;
|
|
@@ -1257,7 +1336,7 @@ declare class XiriEchartsHostComponent implements AfterViewInit, OnDestroy {
|
|
|
1257
1336
|
private echarts;
|
|
1258
1337
|
private resizeObserver;
|
|
1259
1338
|
private loadError;
|
|
1260
|
-
readonly error: _angular_core.Signal<string>;
|
|
1339
|
+
readonly error: _angular_core.Signal<string | null>;
|
|
1261
1340
|
readonly hasHeader: _angular_core.Signal<boolean>;
|
|
1262
1341
|
constructor();
|
|
1263
1342
|
ngAfterViewInit(): Promise<void>;
|
|
@@ -1268,6 +1347,40 @@ declare class XiriEchartsHostComponent implements AfterViewInit, OnDestroy {
|
|
|
1268
1347
|
static ɵcmp: _angular_core.ɵɵComponentDeclaration<XiriEchartsHostComponent, "xiri-echarts-host", never, { "option": { "alias": "option"; "required": true; "isSignal": true; }; "compact": { "alias": "compact"; "required": false; "isSignal": true; }; "title": { "alias": "title"; "required": false; "isSignal": true; }; "headerIcon": { "alias": "headerIcon"; "required": false; "isSignal": true; }; "headerIconColor": { "alias": "headerIconColor"; "required": false; "isSignal": true; }; "chartHeight": { "alias": "chartHeight"; "required": false; "isSignal": true; }; }, { "itemClick": "itemClick"; }, never, never, true, never>;
|
|
1269
1348
|
}
|
|
1270
1349
|
|
|
1350
|
+
/**
|
|
1351
|
+
* Minimal structural types for the echarts callback params that the xiri chart
|
|
1352
|
+
* components read inside tooltip / label / renderItem formatters.
|
|
1353
|
+
*
|
|
1354
|
+
* echarts is an optional peer dependency and is loaded lazily, so we avoid a
|
|
1355
|
+
* static import of its (large) option/param types here and describe only the
|
|
1356
|
+
* fields the chart components actually access. The shapes intentionally mirror
|
|
1357
|
+
* echarts' `CallbackDataParams` / `CustomSeriesRenderItem*` surfaces.
|
|
1358
|
+
*/
|
|
1359
|
+
/** Params object passed to a single-series tooltip / label formatter callback. */
|
|
1360
|
+
interface XiriEchartsCallbackParams {
|
|
1361
|
+
componentType?: string;
|
|
1362
|
+
seriesType?: string;
|
|
1363
|
+
seriesIndex?: number;
|
|
1364
|
+
seriesName?: string;
|
|
1365
|
+
dataIndex: number;
|
|
1366
|
+
name?: string;
|
|
1367
|
+
axisValueLabel?: string;
|
|
1368
|
+
marker?: string;
|
|
1369
|
+
percent?: number;
|
|
1370
|
+
value?: unknown;
|
|
1371
|
+
data?: {
|
|
1372
|
+
value?: unknown;
|
|
1373
|
+
};
|
|
1374
|
+
}
|
|
1375
|
+
/** Params for an 'axis'-trigger tooltip: either a single params object or an array of them. */
|
|
1376
|
+
type XiriEchartsTooltipParams = XiriEchartsCallbackParams | XiriEchartsCallbackParams[];
|
|
1377
|
+
/** The `api` object handed to a custom-series `renderItem` callback. */
|
|
1378
|
+
interface XiriEchartsRenderItemApi {
|
|
1379
|
+
value(dimension: number): number;
|
|
1380
|
+
coord(point: number[]): number[];
|
|
1381
|
+
size(dataSize: number[]): number[];
|
|
1382
|
+
}
|
|
1383
|
+
|
|
1271
1384
|
type XiriBarChartMode = 'simple' | 'stacked' | 'heatmap';
|
|
1272
1385
|
interface XiriBarChartSegment {
|
|
1273
1386
|
value: number;
|
|
@@ -1316,7 +1429,7 @@ declare class XiriBarChartComponent {
|
|
|
1316
1429
|
};
|
|
1317
1430
|
tooltip: {
|
|
1318
1431
|
trigger: string;
|
|
1319
|
-
formatter: (params:
|
|
1432
|
+
formatter: (params: XiriEchartsTooltipParams) => string;
|
|
1320
1433
|
};
|
|
1321
1434
|
xAxis: {
|
|
1322
1435
|
type: string;
|
|
@@ -1330,19 +1443,19 @@ declare class XiriBarChartComponent {
|
|
|
1330
1443
|
axisLabel: {
|
|
1331
1444
|
rotate: number;
|
|
1332
1445
|
interval: number;
|
|
1333
|
-
};
|
|
1446
|
+
} | undefined;
|
|
1334
1447
|
};
|
|
1335
1448
|
yAxis: {
|
|
1336
1449
|
type: string;
|
|
1337
|
-
min: number;
|
|
1338
|
-
max: number;
|
|
1450
|
+
min: number | undefined;
|
|
1451
|
+
max: number | undefined;
|
|
1339
1452
|
splitLine: {
|
|
1340
1453
|
lineStyle: {
|
|
1341
1454
|
color: string;
|
|
1342
1455
|
};
|
|
1343
1456
|
};
|
|
1344
1457
|
};
|
|
1345
|
-
series:
|
|
1458
|
+
series: unknown[];
|
|
1346
1459
|
} | {
|
|
1347
1460
|
grid: {
|
|
1348
1461
|
left: number;
|
|
@@ -1353,7 +1466,7 @@ declare class XiriBarChartComponent {
|
|
|
1353
1466
|
};
|
|
1354
1467
|
tooltip: {
|
|
1355
1468
|
trigger: string;
|
|
1356
|
-
formatter: (params:
|
|
1469
|
+
formatter: (params: XiriEchartsTooltipParams) => string;
|
|
1357
1470
|
};
|
|
1358
1471
|
xAxis: {
|
|
1359
1472
|
type: string;
|
|
@@ -1370,7 +1483,7 @@ declare class XiriBarChartComponent {
|
|
|
1370
1483
|
yAxis: {
|
|
1371
1484
|
type: string;
|
|
1372
1485
|
min: number;
|
|
1373
|
-
max: number;
|
|
1486
|
+
max: number | undefined;
|
|
1374
1487
|
show: boolean;
|
|
1375
1488
|
};
|
|
1376
1489
|
series: {
|
|
@@ -1427,13 +1540,13 @@ declare class XiriLineChartComponent {
|
|
|
1427
1540
|
};
|
|
1428
1541
|
tooltip: {
|
|
1429
1542
|
trigger: string;
|
|
1430
|
-
formatter: (params:
|
|
1543
|
+
formatter: (params: XiriEchartsTooltipParams) => string;
|
|
1431
1544
|
};
|
|
1432
1545
|
legend: {
|
|
1433
1546
|
top: number;
|
|
1434
1547
|
right: number;
|
|
1435
1548
|
type: string;
|
|
1436
|
-
};
|
|
1549
|
+
} | undefined;
|
|
1437
1550
|
xAxis: {
|
|
1438
1551
|
type: string;
|
|
1439
1552
|
data: string[];
|
|
@@ -1447,12 +1560,12 @@ declare class XiriLineChartComponent {
|
|
|
1447
1560
|
axisLabel: {
|
|
1448
1561
|
rotate: number;
|
|
1449
1562
|
interval: number;
|
|
1450
|
-
};
|
|
1563
|
+
} | undefined;
|
|
1451
1564
|
};
|
|
1452
1565
|
yAxis: {
|
|
1453
1566
|
type: string;
|
|
1454
|
-
min: number;
|
|
1455
|
-
max: number;
|
|
1567
|
+
min: number | undefined;
|
|
1568
|
+
max: number | undefined;
|
|
1456
1569
|
splitLine: {
|
|
1457
1570
|
lineStyle: {
|
|
1458
1571
|
color: string;
|
|
@@ -1476,7 +1589,7 @@ declare class XiriLineChartComponent {
|
|
|
1476
1589
|
areaStyle: {
|
|
1477
1590
|
color: string;
|
|
1478
1591
|
opacity: number;
|
|
1479
|
-
};
|
|
1592
|
+
} | undefined;
|
|
1480
1593
|
data: number[];
|
|
1481
1594
|
}[];
|
|
1482
1595
|
}>;
|
|
@@ -1503,13 +1616,13 @@ declare class XiriPieChartComponent {
|
|
|
1503
1616
|
option: _angular_core.Signal<{
|
|
1504
1617
|
tooltip: {
|
|
1505
1618
|
trigger: string;
|
|
1506
|
-
formatter: (p:
|
|
1619
|
+
formatter: (p: XiriEchartsCallbackParams) => string;
|
|
1507
1620
|
};
|
|
1508
1621
|
legend: {
|
|
1509
1622
|
bottom: number;
|
|
1510
1623
|
type: string;
|
|
1511
1624
|
};
|
|
1512
|
-
series:
|
|
1625
|
+
series: Record<string, unknown>[];
|
|
1513
1626
|
}>;
|
|
1514
1627
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<XiriPieChartComponent, never>;
|
|
1515
1628
|
static ɵcmp: _angular_core.ɵɵComponentDeclaration<XiriPieChartComponent, "xiri-piechart", never, { "settings": { "alias": "settings"; "required": true; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
@@ -1623,7 +1736,7 @@ declare class XiriHeatmapComponent {
|
|
|
1623
1736
|
};
|
|
1624
1737
|
tooltip: {
|
|
1625
1738
|
position: string;
|
|
1626
|
-
formatter: (p:
|
|
1739
|
+
formatter: (p: XiriEchartsCallbackParams) => string;
|
|
1627
1740
|
};
|
|
1628
1741
|
xAxis: {
|
|
1629
1742
|
type: string;
|
|
@@ -1640,7 +1753,7 @@ declare class XiriHeatmapComponent {
|
|
|
1640
1753
|
axisLabel: {
|
|
1641
1754
|
rotate: number;
|
|
1642
1755
|
interval: number;
|
|
1643
|
-
};
|
|
1756
|
+
} | undefined;
|
|
1644
1757
|
};
|
|
1645
1758
|
yAxis: {
|
|
1646
1759
|
type: string;
|
|
@@ -1672,7 +1785,7 @@ declare class XiriHeatmapComponent {
|
|
|
1672
1785
|
data: number[][];
|
|
1673
1786
|
label: {
|
|
1674
1787
|
show: boolean;
|
|
1675
|
-
formatter: (p:
|
|
1788
|
+
formatter: (p: XiriEchartsCallbackParams) => string;
|
|
1676
1789
|
};
|
|
1677
1790
|
emphasis: {
|
|
1678
1791
|
itemStyle: {
|
|
@@ -1707,7 +1820,7 @@ declare class XiriCalendarComponent {
|
|
|
1707
1820
|
height: _angular_core.Signal<string>;
|
|
1708
1821
|
option: _angular_core.Signal<{
|
|
1709
1822
|
tooltip: {
|
|
1710
|
-
formatter: (p:
|
|
1823
|
+
formatter: (p: XiriEchartsCallbackParams) => string;
|
|
1711
1824
|
};
|
|
1712
1825
|
visualMap: {
|
|
1713
1826
|
min: number;
|
|
@@ -1774,7 +1887,7 @@ declare class XiriTreeComponent {
|
|
|
1774
1887
|
tooltip: {
|
|
1775
1888
|
trigger: string;
|
|
1776
1889
|
triggerOn: string;
|
|
1777
|
-
formatter: (p:
|
|
1890
|
+
formatter: (p: XiriEchartsCallbackParams) => string;
|
|
1778
1891
|
};
|
|
1779
1892
|
series: {
|
|
1780
1893
|
type: string;
|
|
@@ -1887,7 +2000,7 @@ declare class XiriGanttComponent {
|
|
|
1887
2000
|
height: _angular_core.Signal<string>;
|
|
1888
2001
|
option: _angular_core.Signal<{
|
|
1889
2002
|
tooltip: {
|
|
1890
|
-
formatter: (p:
|
|
2003
|
+
formatter: (p: XiriEchartsCallbackParams) => string;
|
|
1891
2004
|
};
|
|
1892
2005
|
grid: {
|
|
1893
2006
|
left: number;
|
|
@@ -1898,8 +2011,8 @@ declare class XiriGanttComponent {
|
|
|
1898
2011
|
};
|
|
1899
2012
|
xAxis: {
|
|
1900
2013
|
type: string;
|
|
1901
|
-
min: number;
|
|
1902
|
-
max: number;
|
|
2014
|
+
min: number | undefined;
|
|
2015
|
+
max: number | undefined;
|
|
1903
2016
|
splitLine: {
|
|
1904
2017
|
lineStyle: {
|
|
1905
2018
|
color: string;
|
|
@@ -1927,18 +2040,18 @@ declare class XiriGanttComponent {
|
|
|
1927
2040
|
y: number;
|
|
1928
2041
|
};
|
|
1929
2042
|
clip: boolean;
|
|
1930
|
-
renderItem: (_params:
|
|
2043
|
+
renderItem: (_params: unknown, api: XiriEchartsRenderItemApi) => {
|
|
1931
2044
|
type: string;
|
|
1932
2045
|
transition: string[];
|
|
1933
2046
|
shape: {
|
|
1934
|
-
x:
|
|
2047
|
+
x: number;
|
|
1935
2048
|
y: number;
|
|
1936
2049
|
width: number;
|
|
1937
2050
|
height: number;
|
|
1938
2051
|
r: number;
|
|
1939
2052
|
};
|
|
1940
2053
|
style: {
|
|
1941
|
-
fill:
|
|
2054
|
+
fill: number;
|
|
1942
2055
|
};
|
|
1943
2056
|
};
|
|
1944
2057
|
data: (string | number)[][];
|
|
@@ -1960,6 +2073,11 @@ declare const COLOR_CSS_VAR: Record<string, string>;
|
|
|
1960
2073
|
* usable in echarts options. Unknown tokens fall back to the given fallback.
|
|
1961
2074
|
*/
|
|
1962
2075
|
declare function resolveColor(color: XiriColor | string | undefined, fallback?: string): string;
|
|
2076
|
+
/**
|
|
2077
|
+
* Default categorical palette used by charts (line/pie/sankey) to color series
|
|
2078
|
+
* when no explicit color is provided. Indexed via `FALLBACK_COLORS[i % length]`.
|
|
2079
|
+
*/
|
|
2080
|
+
declare const FALLBACK_COLORS: string[];
|
|
1963
2081
|
|
|
1964
2082
|
/** Escapes characters that would otherwise be interpreted as HTML in echarts tooltip strings. */
|
|
1965
2083
|
declare function escapeHtml(s: string): string;
|
|
@@ -1987,11 +2105,10 @@ interface XiriSectionSettings {
|
|
|
1987
2105
|
buttons?: XiriButtonlineSettings;
|
|
1988
2106
|
components?: XiriDynData[];
|
|
1989
2107
|
}
|
|
1990
|
-
declare class XiriSectionComponent {
|
|
2108
|
+
declare class XiriSectionComponent implements OnInit {
|
|
1991
2109
|
settings: _angular_core.InputSignal<XiriSectionSettings>;
|
|
1992
|
-
dyncomponent: _angular_core.InputSignal<TemplateRef<
|
|
2110
|
+
dyncomponent: _angular_core.InputSignal<TemplateRef<unknown> | undefined>;
|
|
1993
2111
|
collapsed: _angular_core.WritableSignal<boolean>;
|
|
1994
|
-
constructor();
|
|
1995
2112
|
ngOnInit(): void;
|
|
1996
2113
|
toggle(): void;
|
|
1997
2114
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<XiriSectionComponent, never>;
|
|
@@ -2031,7 +2148,7 @@ interface XiriToolbarSettings {
|
|
|
2031
2148
|
}
|
|
2032
2149
|
declare class XiriToolbarComponent {
|
|
2033
2150
|
settings: _angular_core.InputSignal<XiriToolbarSettings>;
|
|
2034
|
-
filterData: _angular_core.InputSignal<
|
|
2151
|
+
filterData: _angular_core.InputSignal<Record<string, unknown> | null | undefined>;
|
|
2035
2152
|
searchChanged: _angular_core.OutputEmitterRef<string>;
|
|
2036
2153
|
searchPlaceholder: _angular_core.Signal<string>;
|
|
2037
2154
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<XiriToolbarComponent, never>;
|
|
@@ -2065,12 +2182,12 @@ declare class XiriDataService {
|
|
|
2065
2182
|
private http;
|
|
2066
2183
|
private config;
|
|
2067
2184
|
private snackbar;
|
|
2068
|
-
get(url: string): Observable<
|
|
2069
|
-
post(url: string, data:
|
|
2070
|
-
postFile(url: string, data:
|
|
2071
|
-
postFileResponse(url: string, data:
|
|
2185
|
+
get(url: string): Observable<object>;
|
|
2186
|
+
post(url: string, data: unknown): Observable<unknown>;
|
|
2187
|
+
postFile(url: string, data: unknown): Observable<Blob>;
|
|
2188
|
+
postFileResponse(url: string, data: unknown): Observable<HttpResponse<Blob>>;
|
|
2072
2189
|
/** @deprecated Use postFileResponse() + XiriDownloadService.download() instead */
|
|
2073
|
-
postDownload(url: string, data:
|
|
2190
|
+
postDownload(url: string, data: unknown): void;
|
|
2074
2191
|
getConfigApi(): string;
|
|
2075
2192
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<XiriDataService, never>;
|
|
2076
2193
|
static ɵprov: _angular_core.ɵɵInjectableDeclaration<XiriDataService>;
|
|
@@ -2119,46 +2236,43 @@ declare class XiriFormService {
|
|
|
2119
2236
|
private dataService;
|
|
2120
2237
|
private router;
|
|
2121
2238
|
private sessionStorageService;
|
|
2122
|
-
get(url: string, data?:
|
|
2239
|
+
get(url: string, data?: object | null, extra?: object): Observable<XiriFormServiceData>;
|
|
2123
2240
|
parse(res: XiriFormServiceReturn): XiriFormServiceData;
|
|
2124
2241
|
loadState(saveStateId: string | null | undefined, fields: XiriFormField[]): XiriFormField[];
|
|
2125
|
-
saveState(saveStateId: string | null | undefined, values:
|
|
2242
|
+
saveState(saveStateId: string | null | undefined, values: unknown): void;
|
|
2126
2243
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<XiriFormService, never>;
|
|
2127
2244
|
static ɵprov: _angular_core.ɵɵInjectableDeclaration<XiriFormService>;
|
|
2128
2245
|
}
|
|
2129
2246
|
|
|
2130
|
-
|
|
2131
|
-
|
|
2247
|
+
/**
|
|
2248
|
+
* Shared implementation for the local- and session-storage services. Internal
|
|
2249
|
+
* (not part of the public API); the concrete XiriLocalStorageService and
|
|
2250
|
+
* XiriSessionStorageService differ only in which Storage backend they pass in.
|
|
2251
|
+
*/
|
|
2252
|
+
declare abstract class XiriStorageServiceBase {
|
|
2253
|
+
private readonly storage?;
|
|
2132
2254
|
private data;
|
|
2133
|
-
constructor();
|
|
2255
|
+
protected constructor(storage?: Storage | undefined);
|
|
2134
2256
|
clear(): void;
|
|
2135
|
-
set(name: string, value:
|
|
2257
|
+
set(name: string, value: unknown): void;
|
|
2136
2258
|
private getStruct;
|
|
2137
2259
|
remove(name: string): void;
|
|
2138
|
-
get(name: string):
|
|
2260
|
+
get(name: string): unknown;
|
|
2139
2261
|
/**
|
|
2140
2262
|
* @param name
|
|
2141
2263
|
* @param maxTime in seconds
|
|
2142
2264
|
*/
|
|
2143
|
-
getTimeout(name: string, maxTime: number):
|
|
2265
|
+
getTimeout(name: string, maxTime: number): unknown;
|
|
2266
|
+
}
|
|
2267
|
+
|
|
2268
|
+
declare class XiriLocalStorageService extends XiriStorageServiceBase {
|
|
2269
|
+
constructor();
|
|
2144
2270
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<XiriLocalStorageService, never>;
|
|
2145
2271
|
static ɵprov: _angular_core.ɵɵInjectableDeclaration<XiriLocalStorageService>;
|
|
2146
2272
|
}
|
|
2147
2273
|
|
|
2148
|
-
declare class XiriSessionStorageService {
|
|
2149
|
-
private readonly isSupported;
|
|
2150
|
-
private data;
|
|
2274
|
+
declare class XiriSessionStorageService extends XiriStorageServiceBase {
|
|
2151
2275
|
constructor();
|
|
2152
|
-
clear(): void;
|
|
2153
|
-
set(name: string, value: any): void;
|
|
2154
|
-
private getStruct;
|
|
2155
|
-
remove(name: string): void;
|
|
2156
|
-
get(name: string): any;
|
|
2157
|
-
/**
|
|
2158
|
-
* @param name
|
|
2159
|
-
* @param maxTime in seconds
|
|
2160
|
-
*/
|
|
2161
|
-
getTimeout(name: string, maxTime: number): any;
|
|
2162
2276
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<XiriSessionStorageService, never>;
|
|
2163
2277
|
static ɵprov: _angular_core.ɵɵInjectableDeclaration<XiriSessionStorageService>;
|
|
2164
2278
|
}
|
|
@@ -2211,7 +2325,7 @@ declare class XiriSnackbarService {
|
|
|
2211
2325
|
error(message: string, duration?: number, action?: string): MatSnackBarRef<TextOnlySnackBar>;
|
|
2212
2326
|
info(message: string, duration?: number, action?: string): MatSnackBarRef<TextOnlySnackBar>;
|
|
2213
2327
|
warning(message: string, duration?: number, action?: string): MatSnackBarRef<TextOnlySnackBar>;
|
|
2214
|
-
handleResponse(response:
|
|
2328
|
+
handleResponse(response: unknown): boolean;
|
|
2215
2329
|
private show;
|
|
2216
2330
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<XiriSnackbarService, never>;
|
|
2217
2331
|
static ɵprov: _angular_core.ɵɵInjectableDeclaration<XiriSnackbarService>;
|
|
@@ -2219,22 +2333,22 @@ declare class XiriSnackbarService {
|
|
|
2219
2333
|
|
|
2220
2334
|
declare class XiriResponseHandlerService {
|
|
2221
2335
|
private router;
|
|
2222
|
-
handle(result:
|
|
2336
|
+
handle(result: unknown, callbacks?: {
|
|
2223
2337
|
onTableRefresh?: () => void;
|
|
2224
|
-
onTableUpdate?: (id:
|
|
2338
|
+
onTableUpdate?: (id: unknown, field: string, content: unknown) => void;
|
|
2225
2339
|
}): void;
|
|
2226
2340
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<XiriResponseHandlerService, never>;
|
|
2227
2341
|
static ɵprov: _angular_core.ɵɵInjectableDeclaration<XiriResponseHandlerService>;
|
|
2228
2342
|
}
|
|
2229
2343
|
|
|
2230
2344
|
declare class XiriDownloadService {
|
|
2231
|
-
download(result:
|
|
2345
|
+
download(result: HttpResponse<Blob>, filename: string, open: boolean): boolean;
|
|
2232
2346
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<XiriDownloadService, never>;
|
|
2233
2347
|
static ɵprov: _angular_core.ɵɵInjectableDeclaration<XiriDownloadService>;
|
|
2234
2348
|
}
|
|
2235
2349
|
|
|
2236
2350
|
declare function provideXiriServices(config: Partial<XiriDataServiceConfig>): EnvironmentProviders;
|
|
2237
2351
|
|
|
2238
|
-
export { COLOR_CSS_VAR, DEFAULT_COMPARE, DEFAULT_PREDICATE, SafehtmlPipe, ThemeService, XiriAlertComponent, XiriBarChartComponent, XiriBreadcrumbComponent, XiriButtonComponent, XiriButtonlineComponent, XiriButtonstyleComponent, XiriCalendarComponent, XiriCardComponent, XiriCardlinkComponent, XiriDataService, XiriDataServiceConfig, XiriDateService, XiriDescriptionListComponent, XiriDialogComponent, XiriDividerComponent, XiriDoneComponent, XiriDownloadService, XiriDynComponentComponent, XiriEchartsHostComponent, XiriEmptyStateComponent, XiriErrorComponent, XiriExpansionComponent, XiriFormComponent, XiriFormFieldsComponent, XiriFormService, XiriGanttComponent, XiriGaugeChartComponent, XiriHeaderComponent, XiriHeatmapComponent, XiriImagetextComponent, XiriInfopointComponent, XiriLineChartComponent, XiriLinksComponent, XiriListComponent, XiriLocalStorageService, XiriMultiprogressComponent, XiriNumberService, XiriPageHeaderComponent, XiriPieChartComponent, XiriQueryComponent, XiriRawTableComponent, XiriResponseHandlerService, XiriSankeyComponent, XiriSearchComponent, XiriSectionComponent, XiriSelectDirective, XiriSessionStorageService, XiriSidenavComponent, XiriSkeletonComponent, XiriSnackbarService, XiriStatComponent, XiriStatGridComponent, XiriStepperComponent, XiriTableComponent, XiriTabsComponent, XiriTimelineComponent, XiriToolbarComponent, XiriTreeComponent, defaultXiriDataServiceConfig, escapeHtml, provideXiriServices, resolveColor };
|
|
2239
|
-
export type { ThemeMode, XiriAlertConfig, XiriBarChartBar, XiriBarChartMode, XiriBarChartPoint, XiriBarChartSegment, XiriBarChartSettings, XiriBreadcrumbItem, XiriButton, XiriButtonResult, XiriButtonlineSettings, XiriCalendarCell, XiriCalendarSettings, XiriCardSettings, XiriCardlinkSettings, XiriColor, XiriDescriptionListItem, XiriDescriptionListSettings, XiriDialogSettings, XiriDialogSize, XiriDividerSettings, XiriDynData, XiriDynDataType, XiriEchartsClick, XiriEmptyStateSettings, XiriExpansionPanelSettings, XiriExpansionSettings, XiriExtendedColor, XiriFormField, XiriFormFieldCondition, XiriFormFieldConditionOperator, XiriFormFieldDisplay, XiriFormFieldSelectOption, XiriFormServiceData, XiriFormServiceError, XiriFormSettings, XiriFormValidator, XiriGanttSettings, XiriGanttTask, XiriGaugeChartSettings, XiriHeaderSettings, XiriHeatmapCell, XiriHeatmapSettings, XiriImagetextSettings, XiriInfopointSettings, XiriLineChartLine, XiriLineChartSettings, XiriLinksSettings, XiriListItem, XiriListSection, XiriListSettings, XiriMultiprogressItem, XiriMultiprogressSettings, XiriNavigationField, XiriPageHeaderSettings, XiriPieChartSettings, XiriPieChartSlice, XiriQuerySettings, XiriRawTableSettings, XiriSankeyLink, XiriSankeyNode, XiriSankeySettings, XiriSectionSettings, XiriSelectCompare, XiriSelectPredicate, XiriSidebarSettings, XiriSkeletonType, XiriSnackbarType, XiriStatGridSettings, XiriStatSettings, XiriStatTrend, XiriStepperSettings, XiriStepperStep, XiriTabSettings, XiriTableEmptyState, XiriTableField, XiriTableOptions, XiriTableSettings, XiriTableTreeSettings, XiriTabsSettings, XiriTagChip, XiriThemeColor, XiriTimelineItem, XiriTimelineSettings, XiriToolbarSearchConfig, XiriToolbarSettings, XiriTreeNode, XiriTreeSettings };
|
|
2352
|
+
export { COLOR_CSS_VAR, DEFAULT_COMPARE, DEFAULT_PREDICATE, FALLBACK_COLORS, SafehtmlPipe, ThemeService, XiriAlertComponent, XiriBarChartComponent, XiriBreadcrumbComponent, XiriButtonComponent, XiriButtonlineComponent, XiriButtonstyleComponent, XiriCalendarComponent, XiriCardComponent, XiriCardlinkComponent, XiriDataService, XiriDataServiceConfig, XiriDateService, XiriDescriptionListComponent, XiriDialogComponent, XiriDividerComponent, XiriDoneComponent, XiriDownloadService, XiriDynComponentComponent, XiriEchartsHostComponent, XiriEmptyStateComponent, XiriErrorComponent, XiriExpansionComponent, XiriFormComponent, XiriFormFieldsComponent, XiriFormService, XiriGanttComponent, XiriGaugeChartComponent, XiriHeaderComponent, XiriHeatmapComponent, XiriImagetextComponent, XiriInfopointComponent, XiriLineChartComponent, XiriLinksComponent, XiriListComponent, XiriLocalStorageService, XiriMultiprogressComponent, XiriNumberService, XiriPageHeaderComponent, XiriPieChartComponent, XiriQueryComponent, XiriRawTableComponent, XiriResponseHandlerService, XiriSankeyComponent, XiriSearchComponent, XiriSectionComponent, XiriSelectDirective, XiriSessionStorageService, XiriSidenavComponent, XiriSkeletonComponent, XiriSnackbarService, XiriStatComponent, XiriStatGridComponent, XiriStepperComponent, XiriTableComponent, XiriTabsComponent, XiriTimelineComponent, XiriToolbarComponent, XiriTreeComponent, XiriUrlPipe, defaultXiriDataServiceConfig, escapeHtml, provideXiriServices, resolveColor };
|
|
2353
|
+
export type { ThemeMode, XiriAlertConfig, XiriBarChartBar, XiriBarChartMode, XiriBarChartPoint, XiriBarChartSegment, XiriBarChartSettings, XiriBreadcrumbItem, XiriButton, XiriButtonResponse, XiriButtonResult, XiriButtonlineSettings, XiriCalendarCell, XiriCalendarSettings, XiriCardSettings, XiriCardlinkSettings, XiriColor, XiriDescriptionListItem, XiriDescriptionListSettings, XiriDialogResponse, XiriDialogSettings, XiriDialogSize, XiriDividerSettings, XiriDynData, XiriDynDataType, XiriEchartsCallbackParams, XiriEchartsClick, XiriEchartsRenderItemApi, XiriEchartsTooltipParams, XiriEmptyStateSettings, XiriExpansionPanelSettings, XiriExpansionSettings, XiriExtendedColor, XiriFormField, XiriFormFieldCondition, XiriFormFieldConditionOperator, XiriFormFieldDisplay, XiriFormFieldSelectOption, XiriFormServiceData, XiriFormServiceError, XiriFormServiceReturn, XiriFormSettings, XiriFormValidator, XiriGanttSettings, XiriGanttTask, XiriGaugeChartSettings, XiriHeaderSettings, XiriHeatmapCell, XiriHeatmapSettings, XiriImagetextSettings, XiriInfopointSettings, XiriLineChartLine, XiriLineChartSettings, XiriLinksSettings, XiriListItem, XiriListSection, XiriListSettings, XiriMultiprogressItem, XiriMultiprogressSettings, XiriNavigationField, XiriPageHeaderSettings, XiriPieChartSettings, XiriPieChartSlice, XiriQueryFormChangeEvent, XiriQuerySettings, XiriRawTableRow, XiriRawTableSettings, XiriSankeyLink, XiriSankeyNode, XiriSankeySettings, XiriSectionSettings, XiriSelectCompare, XiriSelectPredicate, XiriSidebarSettings, XiriSkeletonType, XiriSnackbarType, XiriStatGridSettings, XiriStatSettings, XiriStatTrend, XiriStepperFormChangeEvent, XiriStepperResponse, XiriStepperSettings, XiriStepperStep, XiriTabSettings, XiriTableCellValue, XiriTableEmptyState, XiriTableField, XiriTableOptions, XiriTableResponse, XiriTableRow, XiriTableSettings, XiriTableTreeSettings, XiriTabsSettings, XiriTagChip, XiriThemeColor, XiriTimelineItem, XiriTimelineSettings, XiriToolbarSearchConfig, XiriToolbarSettings, XiriTreeNode, XiriTreeSettings };
|
|
2240
2354
|
//# sourceMappingURL=xiriframework-xiri-ng.d.ts.map
|