@foxeltech/angular-ui 0.0.14 → 0.2.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/BeVietnamPro/BeVietnamPro-Bold.woff2 +0 -0
- package/BeVietnamPro/BeVietnamPro-ExtraLight.woff2 +0 -0
- package/BeVietnamPro/BeVietnamPro-Light.woff2 +0 -0
- package/BeVietnamPro/BeVietnamPro-Medium.woff2 +0 -0
- package/BeVietnamPro/BeVietnamPro-Regular.woff2 +0 -0
- package/BeVietnamPro/BeVietnamPro-SemiBold.woff2 +0 -0
- package/BeVietnamPro/BeVietnamPro-Thin.woff2 +0 -0
- package/SpaceMono-Regular.woff2 +0 -0
- package/components.css +5 -0
- package/dm-sans/DMSans-Bold.woff2 +0 -0
- package/dm-sans/DMSans-Light.woff2 +0 -0
- package/dm-sans/DMSans-Medium.woff2 +0 -0
- package/dm-sans/DMSans-Regular.woff2 +0 -0
- package/dm-sans/DMSans-SemiBold.woff2 +0 -0
- package/dm-sans/DMSans-Thin.woff2 +0 -0
- package/fesm2022/foxeltech-angular-ui.mjs +1061 -263
- package/fesm2022/foxeltech-angular-ui.mjs.map +1 -1
- package/fonts.css +68 -34
- package/index.d.ts +534 -138
- package/orbitron/Orbitron-Bold.woff2 +0 -0
- package/orbitron/Orbitron-Medium.woff2 +0 -0
- package/orbitron/Orbitron-Regular.woff2 +0 -0
- package/orbitron/Orbitron-SemiBold.woff2 +0 -0
- package/package.json +6 -6
- package/roboto/Roboto-Black.woff2 +0 -0
- package/roboto/Roboto-BlackItalic.woff2 +0 -0
- package/roboto/Roboto-Bold.woff2 +0 -0
- package/roboto/Roboto-BoldCondensed.woff2 +0 -0
- package/roboto/Roboto-BoldCondensedItalic.woff2 +0 -0
- package/roboto/Roboto-BoldItalic.woff2 +0 -0
- package/roboto/Roboto-Condensed.woff2 +0 -0
- package/roboto/Roboto-CondensedItalic.woff2 +0 -0
- package/roboto/Roboto-Italic.woff2 +0 -0
- package/roboto/Roboto-Light.woff2 +0 -0
- package/roboto/Roboto-LightItalic.woff2 +0 -0
- package/roboto/Roboto-Medium.woff2 +0 -0
- package/roboto/Roboto-MediumItalic.woff2 +0 -0
- package/roboto/Roboto-Regular.woff2 +0 -0
- package/roboto/Roboto-Thin.woff2 +0 -0
- package/roboto/Roboto-ThinItalic.woff2 +0 -0
- package/src/lib/styles/components.css +5 -0
- package/src/lib/styles/fonts.css +68 -34
- package/src/lib/styles/tailwind.css +1 -1
- package/src/lib/ui/components/button/button.component.scss +0 -0
- package/src/lib/ui/components/chart/chart.component.scss +49 -0
- package/src/lib/ui/components/checkbox/checkbox.component.scss +0 -0
- package/src/lib/ui/components/circle-progress-bar/circle-progress-bar.component.scss +0 -0
- package/src/lib/ui/components/datetime-picker/datetime-picker.component.scss +144 -0
- package/src/lib/ui/components/dnd-upload/dnd-upload.component.scss +87 -0
- package/src/lib/ui/components/drawer/drawer.component.scss +131 -0
- package/src/lib/ui/components/empty-state/empty-state.component.html +9 -0
- package/src/lib/ui/components/filter-chips/filter-chips.component.html +12 -0
- package/src/lib/ui/components/flow-connection/flow-connection.component.scss +0 -0
- package/src/lib/ui/components/hero-icon/hero-icon.component.scss +0 -0
- package/src/lib/ui/components/info-field/info-field.component.html +4 -0
- package/src/lib/ui/components/kanban-board/kanban-board.component.scss +67 -0
- package/src/lib/ui/components/loading-panel/loading-panel.component.scss +0 -0
- package/src/lib/ui/components/meter/meter.component.html +15 -0
- package/src/lib/ui/components/radio-button-toggle/radio-button-toggle.component.scss +0 -0
- package/src/lib/ui/components/rich-text-area/rich-text-area.component.scss +15 -0
- package/src/lib/ui/components/search-bar/search-bar.component.scss +0 -0
- package/src/lib/ui/components/section-card/section-card.component.html +9 -0
- package/src/lib/ui/components/severity-badges/severity-badges.component.html +10 -0
- package/src/lib/ui/components/skeleton-detail/skeleton-detail.component.html +22 -0
- package/src/lib/ui/components/skeleton-list/skeleton-list.component.html +12 -0
- package/src/lib/ui/components/skeleton-table-loading/skeleton-table-loading.component.scss +0 -0
- package/src/lib/ui/components/slider/slider.component.scss +0 -0
- package/src/lib/ui/components/stat-cards/stat-cards.component.html +18 -0
- package/src/lib/ui/components/switch/switch.component.scss +0 -0
- package/src/lib/ui/components/tab-component/tab.component.scss +0 -0
- package/src/lib/ui/components/tab-group/tab-group.component.scss +48 -0
- package/src/lib/ui/components/table-cell/table-cell.component.scss +0 -0
- package/src/lib/ui/components/tag/tag.component.scss +0 -0
- package/src/lib/ui/components/toast/toast.component.scss +0 -0
- package/src/lib/ui/components/toast-container/toast-container.component.scss +0 -0
- package/src/lib/ui/components/tree-diagram/tree-diagram.component.scss +0 -0
- package/src/lib/ui/dialogs/confirmation/confirmation.component.scss +0 -0
- package/tailwind.config.js +18 -0
- package/tailwind.css +1 -1
- package/BeVietnamPro/BeVietnamPro-Bold.ttf +0 -0
- package/BeVietnamPro/BeVietnamPro-ExtraLight.ttf +0 -0
- package/BeVietnamPro/BeVietnamPro-Light.ttf +0 -0
- package/BeVietnamPro/BeVietnamPro-Medium.ttf +0 -0
- package/BeVietnamPro/BeVietnamPro-Regular.ttf +0 -0
- package/BeVietnamPro/BeVietnamPro-SemiBold.ttf +0 -0
- package/BeVietnamPro/BeVietnamPro-Thin.ttf +0 -0
- package/SpaceMono-Regular.ttf +0 -0
- package/dm-sans/DMSans-Bold.ttf +0 -0
- package/dm-sans/DMSans-Light.ttf +0 -0
- package/dm-sans/DMSans-Medium.ttf +0 -0
- package/dm-sans/DMSans-Regular.ttf +0 -0
- package/dm-sans/DMSans-SemiBold.ttf +0 -0
- package/dm-sans/DMSans-Thin.ttf +0 -0
- package/orbitron/Orbitron-Bold.ttf +0 -0
- package/orbitron/Orbitron-Medium.ttf +0 -0
- package/orbitron/Orbitron-Regular.ttf +0 -0
- package/orbitron/Orbitron-SemiBold.ttf +0 -0
- package/roboto/Roboto-Black.ttf +0 -0
- package/roboto/Roboto-BlackItalic.ttf +0 -0
- package/roboto/Roboto-Bold.ttf +0 -0
- package/roboto/Roboto-BoldCondensed.ttf +0 -0
- package/roboto/Roboto-BoldCondensedItalic.ttf +0 -0
- package/roboto/Roboto-BoldItalic.ttf +0 -0
- package/roboto/Roboto-Condensed.ttf +0 -0
- package/roboto/Roboto-CondensedItalic.ttf +0 -0
- package/roboto/Roboto-Italic.ttf +0 -0
- package/roboto/Roboto-Light.ttf +0 -0
- package/roboto/Roboto-LightItalic.ttf +0 -0
- package/roboto/Roboto-Medium.ttf +0 -0
- package/roboto/Roboto-MediumItalic.ttf +0 -0
- package/roboto/Roboto-Regular.ttf +0 -0
- package/roboto/Roboto-Thin.ttf +0 -0
- package/roboto/Roboto-ThinItalic.ttf +0 -0
package/index.d.ts
CHANGED
|
@@ -1,50 +1,52 @@
|
|
|
1
1
|
import * as i0 from '@angular/core';
|
|
2
|
-
import { OnDestroy, Injector, ApplicationRef, OnInit, AfterViewInit, ChangeDetectorRef, Type, EventEmitter, ModuleWithProviders, TemplateRef, ViewContainerRef, ElementRef, RendererFactory2, OnChanges, SimpleChanges, AfterContentInit, QueryList, Renderer2, NgZone } from '@angular/core';
|
|
2
|
+
import { OnDestroy, Injector, DestroyRef, ApplicationRef, OnInit, AfterViewInit, ChangeDetectorRef, Type, EventEmitter, Provider, ModuleWithProviders, TemplateRef, ViewContainerRef, ElementRef, RendererFactory2, OnChanges, SimpleChanges, AfterContentInit, QueryList, Renderer2, NgZone } from '@angular/core';
|
|
3
3
|
import * as _foxeltech_angular_ui from '@foxeltech/angular-ui';
|
|
4
|
-
import * as
|
|
4
|
+
import * as i52 from '@angular/material/paginator';
|
|
5
5
|
import { MatPaginator } from '@angular/material/paginator';
|
|
6
|
-
import * as
|
|
6
|
+
import * as i53 from '@angular/material/table';
|
|
7
7
|
import { MatTableDataSource, MatTable } from '@angular/material/table';
|
|
8
8
|
import { HttpClient, HttpEvent, HttpErrorResponse, HttpInterceptor, HttpRequest, HttpHandler } from '@angular/common/http';
|
|
9
9
|
import * as rxjs from 'rxjs';
|
|
10
10
|
import { Observable, Subject } from 'rxjs';
|
|
11
|
-
import * as
|
|
11
|
+
import * as i39 from '@angular/forms';
|
|
12
12
|
import { NgForm, ValidationErrors, NgControl, ControlValueAccessor } from '@angular/forms';
|
|
13
|
-
import * as
|
|
13
|
+
import * as i55 from '@angular/material/dialog';
|
|
14
14
|
import { MatDialogRef, MatDialog } from '@angular/material/dialog';
|
|
15
|
+
import * as i40 from '@angular/router';
|
|
16
|
+
import { ActivatedRouteSnapshot, RouterStateSnapshot, ResolveFn, CanActivate, Router } from '@angular/router';
|
|
15
17
|
import { TranslateHttpLoader } from '@ngx-translate/http-loader';
|
|
16
18
|
import * as i1 from '@ngx-translate/core';
|
|
17
19
|
import { TranslateService } from '@ngx-translate/core';
|
|
18
|
-
import * as i31 from '@angular/router';
|
|
19
|
-
import { CanActivate, Router } from '@angular/router';
|
|
20
20
|
import { EChartsOption, ECharts } from 'echarts';
|
|
21
|
-
import * as
|
|
21
|
+
import * as i46 from 'ngx-vflow';
|
|
22
22
|
import { Node, Edge, Connection } from 'ngx-vflow';
|
|
23
|
-
import * as
|
|
23
|
+
import * as i65 from '@angular/cdk/drag-drop';
|
|
24
24
|
import { CdkDragDrop } from '@angular/cdk/drag-drop';
|
|
25
|
-
import * as
|
|
26
|
-
import * as
|
|
27
|
-
import * as
|
|
28
|
-
import * as
|
|
29
|
-
import * as
|
|
30
|
-
import * as
|
|
31
|
-
import * as
|
|
32
|
-
import * as
|
|
33
|
-
import * as
|
|
34
|
-
import * as
|
|
35
|
-
import * as
|
|
36
|
-
import * as
|
|
37
|
-
import * as
|
|
38
|
-
import * as
|
|
39
|
-
import * as
|
|
40
|
-
import * as
|
|
41
|
-
import * as
|
|
42
|
-
import * as
|
|
43
|
-
import * as
|
|
25
|
+
import * as i38 from '@angular/common';
|
|
26
|
+
import * as i41 from '@danielmoncada/angular-datetime-picker';
|
|
27
|
+
import * as i42 from '@danielmoncada/angular-datetime-picker-moment-adapter';
|
|
28
|
+
import * as i45 from '@dimaslz/ng-heroicons';
|
|
29
|
+
import * as i47 from 'ngx-echarts';
|
|
30
|
+
import * as i48 from '@angular/material/select';
|
|
31
|
+
import * as i49 from '@angular/material/radio';
|
|
32
|
+
import * as i50 from '@angular/material/button';
|
|
33
|
+
import * as i51 from '@angular/material/icon';
|
|
34
|
+
import * as i54 from '@angular/material/snack-bar';
|
|
35
|
+
import * as i56 from '@angular/material/checkbox';
|
|
36
|
+
import * as i57 from '@angular/material/card';
|
|
37
|
+
import * as i58 from '@angular/material/datepicker';
|
|
38
|
+
import * as i59 from '@angular/material/timepicker';
|
|
39
|
+
import * as i60 from '@angular/material/badge';
|
|
40
|
+
import * as i61 from '@angular/material/expansion';
|
|
41
|
+
import * as i62 from '@angular/material/form-field';
|
|
42
|
+
import * as i63 from '@angular/material/menu';
|
|
43
|
+
import * as i64 from '@angular/material/tooltip';
|
|
44
44
|
|
|
45
45
|
declare abstract class BaseComponent implements OnDestroy {
|
|
46
46
|
protected injector: Injector;
|
|
47
|
-
|
|
47
|
+
/** Teardown hook for subscriptions: takeUntilDestroyed(this.destroyRef). */
|
|
48
|
+
protected destroyRef: DestroyRef;
|
|
49
|
+
constructor(injector?: Injector);
|
|
48
50
|
ngOnDestroy(): void;
|
|
49
51
|
static ɵfac: i0.ɵɵFactoryDeclaration<BaseComponent, never>;
|
|
50
52
|
static ɵdir: i0.ɵɵDirectiveDeclaration<BaseComponent, never, never, {}, {}, never, never, true, never>;
|
|
@@ -54,6 +56,13 @@ declare class HttpWrapper {
|
|
|
54
56
|
http: HttpClient;
|
|
55
57
|
baseURL: string;
|
|
56
58
|
constructor(http: HttpClient, baseURL: string);
|
|
59
|
+
/**
|
|
60
|
+
* Hook applied to every resolved response (get/post/put/delete and all verb
|
|
61
|
+
* helpers built on them). Default is identity; override to normalize a
|
|
62
|
+
* backend convention once (e.g. FxUtils.camelizeDeep for snake_case +
|
|
63
|
+
* protobuf-Long payloads) instead of wrapping each method.
|
|
64
|
+
*/
|
|
65
|
+
protected transformResponse(res: any): any;
|
|
57
66
|
private addCredentials;
|
|
58
67
|
get(url?: string, params?: any): Promise<any>;
|
|
59
68
|
post(url: string, body?: any, options?: any): Promise<any>;
|
|
@@ -158,7 +167,21 @@ declare class BaseTableComponent<T = any> extends BaseComponent implements OnIni
|
|
|
158
167
|
init(): void;
|
|
159
168
|
ngAfterViewInit(): void;
|
|
160
169
|
refresh(): Promise<void>;
|
|
170
|
+
/**
|
|
171
|
+
* Where the list is fetched from. Default (null) keeps the legacy behavior
|
|
172
|
+
* of calling `api.search()` (GET /search) untouched. Subclasses whose list
|
|
173
|
+
* lives elsewhere override this instead of re-implementing fetch() — and
|
|
174
|
+
* keep the stale-response sequence guard for free.
|
|
175
|
+
*/
|
|
176
|
+
protected listRequest(): {
|
|
177
|
+
method: 'get' | 'post';
|
|
178
|
+
url: string;
|
|
179
|
+
} | null;
|
|
180
|
+
/** Result keys the list/total are read from. Override alongside listRequest(). */
|
|
181
|
+
protected listKey: string;
|
|
182
|
+
protected totalKey: string;
|
|
161
183
|
setDataSource(result: any): void;
|
|
184
|
+
private _fetchSeq;
|
|
162
185
|
fetch(): Promise<void>;
|
|
163
186
|
onPageChange(event: any): Promise<void>;
|
|
164
187
|
resolve(): {};
|
|
@@ -225,9 +248,205 @@ declare class BaseResolver {
|
|
|
225
248
|
baseResolverInit(): void;
|
|
226
249
|
}
|
|
227
250
|
|
|
251
|
+
interface FxListRequest {
|
|
252
|
+
/** Defaults to 'get'. */
|
|
253
|
+
method?: 'get' | 'post';
|
|
254
|
+
url: string;
|
|
255
|
+
/** Query params (get) — for post they are sent as the body unless `body` is set. */
|
|
256
|
+
params?: any;
|
|
257
|
+
body?: any;
|
|
258
|
+
}
|
|
259
|
+
interface FxListResolverContext {
|
|
260
|
+
/** Page size remembered for this route url (FxStorageService convention), default 10. */
|
|
261
|
+
pageSize: number;
|
|
262
|
+
}
|
|
263
|
+
/**
|
|
264
|
+
* Functional replacement for the copy-pasted list-resolver class:
|
|
265
|
+
* starts the loading overlay, runs one API request, and on failure stops the
|
|
266
|
+
* overlay and shows a parsed error toast — the exact convention every
|
|
267
|
+
* BaseResolver subclass hand-rolls today. BaseResolver stays for existing
|
|
268
|
+
* classes; new routes should use this factory.
|
|
269
|
+
*
|
|
270
|
+
* Usage:
|
|
271
|
+
* resolve: { histories: fxListResolver(ScanManagementApi, (route, state, ctx) =>
|
|
272
|
+
* ({ url: `/${route.paramMap.get('id')}/history`, params: { page: 1, pageSize: ctx.pageSize } })) }
|
|
273
|
+
*/
|
|
274
|
+
declare function fxListResolver<A extends HttpWrapper>(apiType: Type<A>, request: (route: ActivatedRouteSnapshot, state: RouterStateSnapshot, ctx: FxListResolverContext) => FxListRequest): ResolveFn<any>;
|
|
275
|
+
|
|
276
|
+
type FxApiClass = Type<HttpWrapper> & {
|
|
277
|
+
provider: Provider;
|
|
278
|
+
};
|
|
279
|
+
/**
|
|
280
|
+
* Factory for the 11-line HttpWrapper subclasses copy-pasted per endpoint.
|
|
281
|
+
* Returns a distinct injectable class per call (so constructor injection by
|
|
282
|
+
* type keeps working) without needing a decorator:
|
|
283
|
+
*
|
|
284
|
+
* export const ScanManagementApi = createApi(() => `${environment.baseService}/scarf/scan`);
|
|
285
|
+
* // module: providers: [ScanManagementApi.provider]
|
|
286
|
+
* // usage: constructor(private api: InstanceType<typeof ScanManagementApi>)
|
|
287
|
+
*
|
|
288
|
+
* `baseURL` accepts a string or a lazy factory (for environment-derived URLs).
|
|
289
|
+
* An optional `transform` plugs into HttpWrapper.transformResponse — e.g.
|
|
290
|
+
* FxUtils.camelizeDeep for snake_case/Long-encoded backends.
|
|
291
|
+
*
|
|
292
|
+
* IMPORTANT — when subclassing (`@Injectable() class X extends createApi(...)`),
|
|
293
|
+
* declare an explicit `constructor(http: HttpClient) { super(http); }`.
|
|
294
|
+
* The generated base carries no Angular factory metadata, so an inherited
|
|
295
|
+
* constructor makes Ivy fall back to `new X()` with NO arguments: the class
|
|
296
|
+
* silently gets `http = undefined` and every call fails at runtime while the
|
|
297
|
+
* build stays green.
|
|
298
|
+
*/
|
|
299
|
+
declare function createApi(baseURL: string | (() => string), transform?: (res: any) => any): FxApiClass;
|
|
300
|
+
|
|
301
|
+
type NotificationCallback = (...args: any[]) => void;
|
|
302
|
+
interface NotificationConnectOptions {
|
|
303
|
+
headers?: any;
|
|
304
|
+
accessTokenFactory?: () => string | Promise<string>;
|
|
305
|
+
}
|
|
306
|
+
declare class NotificationService {
|
|
307
|
+
private hubConnection;
|
|
308
|
+
private connectionStatus;
|
|
309
|
+
/**
|
|
310
|
+
* Single source of truth for subscriptions. The hub connection gets exactly
|
|
311
|
+
* one dispatcher per event, so:
|
|
312
|
+
* - off(event, callback) can remove one subscriber without nuking the rest
|
|
313
|
+
* (hubConnection.off(event) removes every handler for the event);
|
|
314
|
+
* - handlers registered before connect() are attached once connected;
|
|
315
|
+
* - handlers survive a re-connect that builds a new HubConnection.
|
|
316
|
+
*/
|
|
317
|
+
private handlers;
|
|
318
|
+
private connectPromise;
|
|
319
|
+
private lastHubUrl;
|
|
320
|
+
private lastOptions?;
|
|
321
|
+
private manualDisconnect;
|
|
322
|
+
private restartAttempts;
|
|
323
|
+
private restartTimer;
|
|
324
|
+
/**
|
|
325
|
+
* Connect to SignalR Hub. Overlapping calls share the same in-flight
|
|
326
|
+
* promise instead of building two competing connections.
|
|
327
|
+
*/
|
|
328
|
+
connect(hubUrl: string, options?: NotificationConnectOptions): Promise<void>;
|
|
329
|
+
private doConnect;
|
|
330
|
+
private scheduleRestart;
|
|
331
|
+
/**
|
|
332
|
+
* Disconnect from SignalR Hub. Stops any pending auto-restart.
|
|
333
|
+
*/
|
|
334
|
+
disconnect(): Promise<void>;
|
|
335
|
+
/**
|
|
336
|
+
* Listen to a specific event from the server. Safe to call before
|
|
337
|
+
* connect(): the handler is attached once the connection is up.
|
|
338
|
+
*/
|
|
339
|
+
on(eventName: string, callback: NotificationCallback): void;
|
|
340
|
+
/**
|
|
341
|
+
* Remove listener(s) for an event.
|
|
342
|
+
* Prefer passing the callback (or using on$()): calling off(event) without
|
|
343
|
+
* one removes EVERY handler for the event, including other features'.
|
|
344
|
+
*/
|
|
345
|
+
off(eventName: string, callback?: NotificationCallback): void;
|
|
346
|
+
/**
|
|
347
|
+
* Observable stream of an event. Teardown removes exactly this
|
|
348
|
+
* subscriber — the safe replacement for manual on()/off().
|
|
349
|
+
* Emits the event's first argument (SignalR payloads are single-arg here).
|
|
350
|
+
*/
|
|
351
|
+
on$<T = any>(eventName: string): Observable<T>;
|
|
352
|
+
private attachDispatcher;
|
|
353
|
+
private dispatch;
|
|
354
|
+
/**
|
|
355
|
+
* Invoke a method on the server
|
|
356
|
+
* @param methodName - Name of the method to invoke
|
|
357
|
+
* @param args - Arguments to pass to the method
|
|
358
|
+
*/
|
|
359
|
+
invoke(methodName: string, ...args: any[]): Promise<any>;
|
|
360
|
+
/**
|
|
361
|
+
* Get current connection status
|
|
362
|
+
*/
|
|
363
|
+
getConnectionStatus(): 'disconnected' | 'connecting' | 'connected';
|
|
364
|
+
/**
|
|
365
|
+
* Get connection ID
|
|
366
|
+
*/
|
|
367
|
+
getConnectionId(): string | null;
|
|
368
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<NotificationService, never>;
|
|
369
|
+
static ɵprov: i0.ɵɵInjectableDeclaration<NotificationService>;
|
|
370
|
+
}
|
|
371
|
+
|
|
372
|
+
interface RealtimeTableEvent<T> {
|
|
373
|
+
/** Value the event is matched to a row with (via `matchKey`). */
|
|
374
|
+
key: any;
|
|
375
|
+
/** Fields to merge onto the matched row. */
|
|
376
|
+
patch: Partial<T>;
|
|
377
|
+
/** Marks a final state (e.g. COMPLETED) — forwarded to `onApplied`. */
|
|
378
|
+
terminal?: boolean;
|
|
379
|
+
}
|
|
380
|
+
interface RealtimeTableSyncOptions<T> {
|
|
381
|
+
/** Hub event name to subscribe to (via NotificationService.on$). */
|
|
382
|
+
event: string;
|
|
383
|
+
/** Parse the raw payload; return null to ignore the event. */
|
|
384
|
+
parse: (raw: any) => RealtimeTableEvent<T> | null;
|
|
385
|
+
/** Current table rows (live reference is fine). */
|
|
386
|
+
getRows: () => T[];
|
|
387
|
+
/** Replace table rows (callers usually also trigger change detection here). */
|
|
388
|
+
setRows: (rows: T[]) => void;
|
|
389
|
+
/** Key events match rows on (e.g. row.analyzeCode). */
|
|
390
|
+
matchKey: (row: T) => any;
|
|
391
|
+
/**
|
|
392
|
+
* Stable identity used when merging a background re-fetch into the current
|
|
393
|
+
* rows (existing row objects are patched in place so the table keeps their
|
|
394
|
+
* identity — no flash).
|
|
395
|
+
*/
|
|
396
|
+
identityKey: (row: T) => any;
|
|
397
|
+
/** Background list re-fetch used to pick up rows that don't exist yet. */
|
|
398
|
+
fetchList: () => Promise<{
|
|
399
|
+
rows: T[];
|
|
400
|
+
total?: number;
|
|
401
|
+
} | null>;
|
|
402
|
+
/** Called after a patch lands on a row (change detection, terminal enrich…). */
|
|
403
|
+
onApplied?: (row: T, event: RealtimeTableEvent<T>) => void;
|
|
404
|
+
/** Called when a background re-fetch produced a new total. */
|
|
405
|
+
onTotal?: (total: number) => void;
|
|
406
|
+
/** Debounce for the background sync (default 1200ms). */
|
|
407
|
+
debounceMs?: number;
|
|
408
|
+
/** Consecutive no-op syncs before giving up on buffered keys (default 3). */
|
|
409
|
+
idleCap?: number;
|
|
410
|
+
}
|
|
411
|
+
/**
|
|
412
|
+
* Live-progress plumbing for server-paginated tables fed by hub events:
|
|
413
|
+
* events matching a visible row are merged in place; events for rows that
|
|
414
|
+
* are not in the list yet (a just-created record whose list read lags) are
|
|
415
|
+
* buffered by key and replayed after a debounced, idle-capped background
|
|
416
|
+
* re-fetch that merges by stable identity.
|
|
417
|
+
*
|
|
418
|
+
* The domain contract (event name, payload parsing, terminal semantics) is
|
|
419
|
+
* injected via options — nothing app-specific lives here.
|
|
420
|
+
*/
|
|
421
|
+
declare class RealtimeTableSync<T = any> {
|
|
422
|
+
private notifications;
|
|
423
|
+
private options;
|
|
424
|
+
private pending;
|
|
425
|
+
private syncTimer;
|
|
426
|
+
private idleSyncs;
|
|
427
|
+
private stopped;
|
|
428
|
+
private subscription;
|
|
429
|
+
constructor(notifications: NotificationService, options: RealtimeTableSyncOptions<T>);
|
|
430
|
+
/**
|
|
431
|
+
* Subscribe to the hub event. Pass a DestroyRef to tie teardown to a
|
|
432
|
+
* component lifecycle; stop() is still available for manual control.
|
|
433
|
+
*/
|
|
434
|
+
start(destroyRef?: DestroyRef): this;
|
|
435
|
+
stop(): void;
|
|
436
|
+
/**
|
|
437
|
+
* Replay buffered events onto the current rows (call from setDataSource so
|
|
438
|
+
* a regular refresh also applies buffered progress). Returns true if
|
|
439
|
+
* anything was applied.
|
|
440
|
+
*/
|
|
441
|
+
applyPending(): boolean;
|
|
442
|
+
private handleEvent;
|
|
443
|
+
private scheduleSync;
|
|
444
|
+
private syncFromServer;
|
|
445
|
+
}
|
|
446
|
+
|
|
228
447
|
declare class FxUtils {
|
|
229
448
|
private static preresolve;
|
|
230
|
-
static resolve(value:
|
|
449
|
+
static resolve(value: object): Promise<{}>;
|
|
231
450
|
static isNotNull(obj: any): boolean;
|
|
232
451
|
static isNull(obj: any): boolean;
|
|
233
452
|
static isFunction(obj: any): boolean;
|
|
@@ -242,12 +461,86 @@ declare class FxUtils {
|
|
|
242
461
|
static isSameCollection(collection: any[], compareCollection: any): boolean;
|
|
243
462
|
static isSameValue(model: any, compareModel: any): boolean;
|
|
244
463
|
static parseError(err: HttpErrorResponse): any;
|
|
245
|
-
|
|
464
|
+
/**
|
|
465
|
+
* Resolve a theme channel triple (`--danger: 255 122 0`) to a CSS colour.
|
|
466
|
+
* Pass `legacyCommaSyntax: true` for canvas/ECharts consumers: canvas paints
|
|
467
|
+
* both forms, but zrender's colour parser can't read the CSS4 space syntax
|
|
468
|
+
* and renders slices black on hover when given it.
|
|
469
|
+
*/
|
|
470
|
+
static convertColorFromVariable(name: string, alpha?: number, options?: {
|
|
471
|
+
legacyCommaSyntax?: boolean;
|
|
472
|
+
}): string;
|
|
246
473
|
static getTagClass(key: string, isCriticalExist?: boolean): TagType;
|
|
247
474
|
static validateEmail(value: string): boolean;
|
|
475
|
+
/** Safe deep accessor with the org-wide empty placeholder. */
|
|
476
|
+
static value(model: any, key: string, defaultValue?: any): any;
|
|
477
|
+
/**
|
|
478
|
+
* Severity weight for ordering — kept next to getTagClass so ordering and
|
|
479
|
+
* colouring can never drift apart.
|
|
480
|
+
*/
|
|
481
|
+
static severityWeight(level: string): number;
|
|
482
|
+
/** Org-wide date-time rendering (DD/MM/YYYY HH:mm:ss, local time). */
|
|
483
|
+
static formatDateTime(time: string | Date): string;
|
|
484
|
+
/** Seconds → compact duration ("2d 4h", "3h 12m", "45s"). */
|
|
485
|
+
static formatDuration(totalSeconds: number): string;
|
|
486
|
+
/** Relative time within the last 24h ("3 hours ago"), else DD/MM/YYYY. */
|
|
487
|
+
static formatRelative(time: string | Date): string;
|
|
488
|
+
/**
|
|
489
|
+
* Normalize a snake_case + protobuf-Long API payload for camelCase binding:
|
|
490
|
+
* - genuine snake_case keys -> camelCase (data-as-key entries such as DLL
|
|
491
|
+
* names like "kernel32.dll" are left untouched by the strict regex);
|
|
492
|
+
* - Long-encoded numbers `{ high, low, unsigned }` -> plain number.
|
|
493
|
+
*/
|
|
494
|
+
static camelizeDeep(input: any): any;
|
|
248
495
|
static formatSizeUnits(bytes: number): string;
|
|
249
496
|
}
|
|
250
497
|
|
|
498
|
+
/**
|
|
499
|
+
* Shared value→colour rules for report/metric displays.
|
|
500
|
+
*
|
|
501
|
+
* Every metric that varies in meaning (severity, score, count…) gets ONE rule
|
|
502
|
+
* so the colour is consistent everywhere and callers never hardcode a tone
|
|
503
|
+
* for a value that can be good or bad. Domain-specific rules (EPSS, exploit
|
|
504
|
+
* maturity, license categories…) stay in the consuming app — only the
|
|
505
|
+
* mechanism and the org-wide rules live here.
|
|
506
|
+
*
|
|
507
|
+
* There is intentionally NO `default` text/bg colour in the theme, so rule
|
|
508
|
+
* helpers return `null` for "no meaningful value" and the `toneText` /
|
|
509
|
+
* `toneBg` / `toneBadge` wrappers fall back to a neutral class.
|
|
510
|
+
*
|
|
511
|
+
* The emitted Tailwind utilities are guaranteed by the safelist in the shared
|
|
512
|
+
* tailwind preset (tailwind.config.js) — do not rely on content scanning for
|
|
513
|
+
* these dynamic strings.
|
|
514
|
+
*/
|
|
515
|
+
type Tone = 'critical' | 'danger' | 'warning' | 'success' | 'information';
|
|
516
|
+
/** Severity / risk-level string → tone (Critical & High → danger, Medium → warning, Low → success). */
|
|
517
|
+
declare function severityTone(value: any): Tone | null;
|
|
518
|
+
/**
|
|
519
|
+
* CVSS-style 0–10 score → tone, following the CVSS v3 qualitative bands
|
|
520
|
+
* (≥9 Critical, ≥7 High, ≥4 Medium, else Low). Backends occasionally send a
|
|
521
|
+
* 0–100 scale, so values > 10 are normalised down by /10.
|
|
522
|
+
*/
|
|
523
|
+
declare function scoreTone(score: any): Tone | null;
|
|
524
|
+
/**
|
|
525
|
+
* Count of "bad" things → tone: 0 is good (success), anything positive is bad.
|
|
526
|
+
* `positiveTone` sets how severe a non-zero count reads (default `danger`;
|
|
527
|
+
* pass `critical` for the worst metrics, `warning` for milder ones).
|
|
528
|
+
* Non-numeric values (e.g. "--") return null → neutral.
|
|
529
|
+
*/
|
|
530
|
+
declare function countTone(count: any, positiveTone?: Tone): Tone | null;
|
|
531
|
+
/** Tone → text colour class, with a neutral fallback when there is no value. */
|
|
532
|
+
declare function toneText(tone: Tone | null): string;
|
|
533
|
+
/** Tone → background colour class, with a neutral fallback when there is no value. */
|
|
534
|
+
declare function toneBg(tone: Tone | null): string;
|
|
535
|
+
/** Tone → soft pill/badge classes (tinted bg + matching text), neutral fallback. */
|
|
536
|
+
declare function toneBadge(tone: Tone | null): string;
|
|
537
|
+
/**
|
|
538
|
+
* Tone → resolved CSS colour string for ECharts / canvas where a Tailwind
|
|
539
|
+
* class can't be used (e.g. per-slice pie `itemStyle.color`). Emits the
|
|
540
|
+
* legacy comma syntax — see FxUtils.convertColorFromVariable.
|
|
541
|
+
*/
|
|
542
|
+
declare function toneColor(tone: Tone | null, alpha?: number): string;
|
|
543
|
+
|
|
251
544
|
declare class FxValidators {
|
|
252
545
|
/**
|
|
253
546
|
* Name fields: firstName, lastName, groupName, projectName, displayName
|
|
@@ -413,7 +706,7 @@ declare class QuillStyleLoaderService {
|
|
|
413
706
|
private platformId;
|
|
414
707
|
private loaded;
|
|
415
708
|
private loadingPromise;
|
|
416
|
-
constructor(platformId:
|
|
709
|
+
constructor(platformId: object);
|
|
417
710
|
/**
|
|
418
711
|
* Load Quill CSS (only in browser). Returns a promise that resolves when
|
|
419
712
|
* the CSS links have been appended.
|
|
@@ -439,76 +732,41 @@ declare class ThemeService {
|
|
|
439
732
|
static ɵprov: i0.ɵɵInjectableDeclaration<ThemeService>;
|
|
440
733
|
}
|
|
441
734
|
|
|
442
|
-
|
|
443
|
-
|
|
444
|
-
private connectionStatus;
|
|
445
|
-
constructor();
|
|
446
|
-
/**
|
|
447
|
-
* Connect to SignalR Hub
|
|
448
|
-
* @param hubUrl - The URL of the SignalR hub
|
|
449
|
-
* @returns Promise that resolves when connected
|
|
450
|
-
*/
|
|
451
|
-
connect(hubUrl: string, options?: {
|
|
452
|
-
headers?: any;
|
|
453
|
-
accessTokenFactory?: () => string | Promise<string>;
|
|
454
|
-
}): Promise<void>;
|
|
455
|
-
/**
|
|
456
|
-
* Disconnect from SignalR Hub
|
|
457
|
-
*/
|
|
458
|
-
disconnect(): Promise<void>;
|
|
735
|
+
type ErrorMessages = Record<string, any>;
|
|
736
|
+
declare abstract class FxComponent<T> implements ControlValueAccessor {
|
|
459
737
|
/**
|
|
460
|
-
*
|
|
461
|
-
* @
|
|
462
|
-
*
|
|
738
|
+
* Injected via inject() rather than a constructor parameter: parameter
|
|
739
|
+
* decorators (@Optional/@Self) are NOT inherited by subclasses, which used
|
|
740
|
+
* to make every control crash when used without a form binding, or silently
|
|
741
|
+
* bind to an ancestor's NgControl.
|
|
463
742
|
*/
|
|
464
|
-
|
|
465
|
-
|
|
466
|
-
* Remove listener for a specific event
|
|
467
|
-
* @param eventName - Name of the event to stop listening to
|
|
468
|
-
*/
|
|
469
|
-
off(eventName: string): void;
|
|
470
|
-
/**
|
|
471
|
-
* Invoke a method on the server
|
|
472
|
-
* @param methodName - Name of the method to invoke
|
|
473
|
-
* @param args - Arguments to pass to the method
|
|
474
|
-
*/
|
|
475
|
-
invoke(methodName: string, ...args: any[]): Promise<any>;
|
|
476
|
-
/**
|
|
477
|
-
* Get current connection status
|
|
478
|
-
*/
|
|
479
|
-
getConnectionStatus(): 'disconnected' | 'connecting' | 'connected';
|
|
480
|
-
/**
|
|
481
|
-
* Get connection ID
|
|
482
|
-
*/
|
|
483
|
-
getConnectionId(): string | null;
|
|
484
|
-
static ɵfac: i0.ɵɵFactoryDeclaration<NotificationService, never>;
|
|
485
|
-
static ɵprov: i0.ɵɵInjectableDeclaration<NotificationService>;
|
|
486
|
-
}
|
|
487
|
-
|
|
488
|
-
type ErrorMessages = {
|
|
489
|
-
[key: string]: any;
|
|
490
|
-
};
|
|
491
|
-
declare class FxComponent<T> implements ControlValueAccessor {
|
|
492
|
-
ngControl: NgControl;
|
|
743
|
+
ngControl: NgControl | null;
|
|
744
|
+
disabled: boolean;
|
|
493
745
|
value: T;
|
|
494
746
|
onChange: (value: T) => void;
|
|
495
747
|
onTouched: () => void;
|
|
496
|
-
validationError
|
|
748
|
+
validationError?: ErrorMessages;
|
|
497
749
|
errorMessages?: ErrorMessages;
|
|
498
|
-
constructor(
|
|
750
|
+
constructor();
|
|
499
751
|
setValue(value: T): void;
|
|
500
752
|
onEnter(value: T): void;
|
|
501
753
|
writeValue(value: T): void;
|
|
502
754
|
registerOnChange(fn: (value: T) => void): void;
|
|
503
755
|
registerOnTouched(fn: () => void): void;
|
|
756
|
+
setDisabledState(isDisabled: boolean): void;
|
|
504
757
|
get invalid(): boolean;
|
|
505
|
-
get errors():
|
|
506
|
-
|
|
507
|
-
};
|
|
508
|
-
validate(validateFn: Function): void;
|
|
758
|
+
get errors(): Record<string, any>;
|
|
759
|
+
validate(validateFn?: (value: T) => ValidationErrors | null | undefined): void;
|
|
509
760
|
setErrors(error: ValidationErrors): void;
|
|
761
|
+
/**
|
|
762
|
+
* Removes only the errors this component set imperatively via setErrors().
|
|
763
|
+
* Errors owned by the validator pipeline (built-in or custom validators)
|
|
764
|
+
* are left untouched.
|
|
765
|
+
*/
|
|
510
766
|
clearErrors(): void;
|
|
511
767
|
getErrorMessage(label?: string): string | null;
|
|
768
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<FxComponent<any>, never>;
|
|
769
|
+
static ɵdir: i0.ɵɵDirectiveDeclaration<FxComponent<any>, never, never, { "disabled": { "alias": "disabled"; "required": false; }; }, {}, never, never, true, never>;
|
|
512
770
|
}
|
|
513
771
|
|
|
514
772
|
declare class InputComponent extends FxComponent<string> implements AfterViewInit {
|
|
@@ -517,11 +775,8 @@ declare class InputComponent extends FxComponent<string> implements AfterViewIni
|
|
|
517
775
|
tooltip: string;
|
|
518
776
|
type: string;
|
|
519
777
|
placeholder: string;
|
|
520
|
-
errorMessages:
|
|
521
|
-
[key: string]: string;
|
|
522
|
-
};
|
|
778
|
+
errorMessages: Record<string, string>;
|
|
523
779
|
required: string | boolean;
|
|
524
|
-
disabled: boolean;
|
|
525
780
|
suffixIcon?: string;
|
|
526
781
|
class?: any;
|
|
527
782
|
maxlength?: number;
|
|
@@ -531,9 +786,9 @@ declare class InputComponent extends FxComponent<string> implements AfterViewIni
|
|
|
531
786
|
suffixClick: EventEmitter<void>;
|
|
532
787
|
showPassword: boolean;
|
|
533
788
|
validateError: ValidationErrors | null;
|
|
534
|
-
constructor(
|
|
789
|
+
constructor(ref: ChangeDetectorRef);
|
|
535
790
|
ngAfterViewInit(): void;
|
|
536
|
-
|
|
791
|
+
writeValue(value: string): void;
|
|
537
792
|
onInput(event: Event): void;
|
|
538
793
|
onFocus(): void;
|
|
539
794
|
onBlur(): void;
|
|
@@ -541,7 +796,7 @@ declare class InputComponent extends FxComponent<string> implements AfterViewIni
|
|
|
541
796
|
onSuffixClick(): void;
|
|
542
797
|
get displayType(): string;
|
|
543
798
|
static ɵfac: i0.ɵɵFactoryDeclaration<InputComponent, never>;
|
|
544
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<InputComponent, "fx-ui-input", never, { "label": { "alias": "label"; "required": false; }; "tooltip": { "alias": "tooltip"; "required": false; }; "type": { "alias": "type"; "required": false; }; "placeholder": { "alias": "placeholder"; "required": false; }; "errorMessages": { "alias": "errorMessages"; "required": false; }; "required": { "alias": "required"; "required": false; }; "
|
|
799
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<InputComponent, "fx-ui-input", never, { "label": { "alias": "label"; "required": false; }; "tooltip": { "alias": "tooltip"; "required": false; }; "type": { "alias": "type"; "required": false; }; "placeholder": { "alias": "placeholder"; "required": false; }; "errorMessages": { "alias": "errorMessages"; "required": false; }; "required": { "alias": "required"; "required": false; }; "suffixIcon": { "alias": "suffixIcon"; "required": false; }; "class": { "alias": "class"; "required": false; }; "maxlength": { "alias": "maxlength"; "required": false; }; "validateFn": { "alias": "validateFn"; "required": false; }; }, { "blurred": "blurred"; "focused": "focused"; "suffixClick": "suffixClick"; }, never, never, false, never>;
|
|
545
800
|
}
|
|
546
801
|
|
|
547
802
|
declare class SelectComponent extends FxComponent<string | string[]> implements AfterViewInit, OnInit, OnChanges {
|
|
@@ -554,10 +809,7 @@ declare class SelectComponent extends FxComponent<string | string[]> implements
|
|
|
554
809
|
value: string;
|
|
555
810
|
}[];
|
|
556
811
|
multiple: boolean;
|
|
557
|
-
|
|
558
|
-
errorMessages: {
|
|
559
|
-
[key: string]: string;
|
|
560
|
-
};
|
|
812
|
+
errorMessages: Record<string, string>;
|
|
561
813
|
required: boolean;
|
|
562
814
|
class?: any;
|
|
563
815
|
enableSearch: boolean;
|
|
@@ -573,7 +825,9 @@ declare class SelectComponent extends FxComponent<string | string[]> implements
|
|
|
573
825
|
value: string;
|
|
574
826
|
}[];
|
|
575
827
|
private search$;
|
|
576
|
-
|
|
828
|
+
private destroyRef;
|
|
829
|
+
constructor(ref: ChangeDetectorRef);
|
|
830
|
+
writeValue(value: string | string[]): void;
|
|
577
831
|
ngOnInit(): void;
|
|
578
832
|
ngOnChanges(changes: SimpleChanges): void;
|
|
579
833
|
ngAfterViewInit(): void;
|
|
@@ -583,7 +837,7 @@ declare class SelectComponent extends FxComponent<string | string[]> implements
|
|
|
583
837
|
onSelectionChange(value: any): void;
|
|
584
838
|
isSelected(value: string): boolean;
|
|
585
839
|
static ɵfac: i0.ɵɵFactoryDeclaration<SelectComponent, never>;
|
|
586
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<SelectComponent, "fx-ui-select", never, { "label": { "alias": "label"; "required": false; }; "tooltip": { "alias": "tooltip"; "required": false; }; "placeholder": { "alias": "placeholder"; "required": false; }; "options": { "alias": "options"; "required": false; }; "multiple": { "alias": "multiple"; "required": false; }; "
|
|
840
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<SelectComponent, "fx-ui-select", never, { "label": { "alias": "label"; "required": false; }; "tooltip": { "alias": "tooltip"; "required": false; }; "placeholder": { "alias": "placeholder"; "required": false; }; "options": { "alias": "options"; "required": false; }; "multiple": { "alias": "multiple"; "required": false; }; "errorMessages": { "alias": "errorMessages"; "required": false; }; "required": { "alias": "required"; "required": false; }; "class": { "alias": "class"; "required": false; }; "enableSearch": { "alias": "enableSearch"; "required": false; }; "searchFn": { "alias": "searchFn"; "required": false; }; }, { "closed": "closed"; }, never, never, false, never>;
|
|
587
841
|
}
|
|
588
842
|
|
|
589
843
|
interface IRadioButton {
|
|
@@ -603,40 +857,37 @@ declare class RadioButtonComponent extends FxComponent<IRadioButton> implements
|
|
|
603
857
|
icon?: any;
|
|
604
858
|
tooltip?: string;
|
|
605
859
|
}[];
|
|
606
|
-
disabled: boolean;
|
|
607
860
|
errorMessages: ErrorMessages;
|
|
608
861
|
class?: any;
|
|
609
|
-
constructor(
|
|
862
|
+
constructor(ref: ChangeDetectorRef);
|
|
610
863
|
ngAfterViewInit(): void;
|
|
611
|
-
setDisabledState?(isDisabled: boolean): void;
|
|
612
864
|
onSelectValue(value: any): void;
|
|
613
865
|
static ɵfac: i0.ɵɵFactoryDeclaration<RadioButtonComponent, never>;
|
|
614
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<RadioButtonComponent, "fx-ui-radio", never, { "label": { "alias": "label"; "required": false; }; "tooltip": { "alias": "tooltip"; "required": false; }; "required": { "alias": "required"; "required": false; }; "options": { "alias": "options"; "required": false; }; "
|
|
866
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<RadioButtonComponent, "fx-ui-radio", never, { "label": { "alias": "label"; "required": false; }; "tooltip": { "alias": "tooltip"; "required": false; }; "required": { "alias": "required"; "required": false; }; "options": { "alias": "options"; "required": false; }; "errorMessages": { "alias": "errorMessages"; "required": false; }; "class": { "alias": "class"; "required": false; }; }, {}, never, never, false, never>;
|
|
615
867
|
}
|
|
616
868
|
|
|
617
869
|
declare class CheckboxComponent extends FxComponent<any> implements AfterViewInit {
|
|
618
870
|
private ref;
|
|
619
871
|
label: string;
|
|
620
|
-
disabled: boolean;
|
|
621
872
|
rounded: boolean;
|
|
622
873
|
valueChange: EventEmitter<boolean>;
|
|
623
|
-
constructor(
|
|
874
|
+
constructor(ref: ChangeDetectorRef);
|
|
624
875
|
ngAfterViewInit(): void;
|
|
625
|
-
|
|
876
|
+
writeValue(value: any): void;
|
|
626
877
|
onInputChange(event: Event): void;
|
|
627
878
|
markTouched(): void;
|
|
628
879
|
static ɵfac: i0.ɵɵFactoryDeclaration<CheckboxComponent, never>;
|
|
629
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<CheckboxComponent, "fx-ui-checkbox", never, { "label": { "alias": "label"; "required": false; }; "
|
|
880
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<CheckboxComponent, "fx-ui-checkbox", never, { "label": { "alias": "label"; "required": false; }; "rounded": { "alias": "rounded"; "required": false; }; }, { "valueChange": "valueChange"; }, never, never, false, never>;
|
|
630
881
|
}
|
|
631
882
|
|
|
632
|
-
|
|
883
|
+
interface UploadResult {
|
|
633
884
|
files: File[];
|
|
634
885
|
accepted: File[];
|
|
635
886
|
rejected: {
|
|
636
887
|
file: File;
|
|
637
888
|
reason: string;
|
|
638
889
|
}[];
|
|
639
|
-
}
|
|
890
|
+
}
|
|
640
891
|
declare class DndUploadComponent {
|
|
641
892
|
multiple: boolean;
|
|
642
893
|
accept: string;
|
|
@@ -690,38 +941,33 @@ declare class RadioButtonToggleComponent extends FxComponent<any> implements Aft
|
|
|
690
941
|
value: any;
|
|
691
942
|
icon?: any;
|
|
692
943
|
}[];
|
|
693
|
-
disabled: boolean;
|
|
694
944
|
errorMessages: ErrorMessages;
|
|
695
945
|
class?: any;
|
|
696
|
-
constructor(
|
|
946
|
+
constructor(ref: ChangeDetectorRef);
|
|
697
947
|
ngAfterViewInit(): void;
|
|
698
|
-
setDisabledState?(isDisabled: boolean): void;
|
|
699
948
|
onSelectValue(value: any): void;
|
|
700
949
|
static ɵfac: i0.ɵɵFactoryDeclaration<RadioButtonToggleComponent, never>;
|
|
701
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<RadioButtonToggleComponent, "fx-ui-radio-toggle, [fx-ui-radio-toggle]", never, { "label": { "alias": "label"; "required": false; }; "required": { "alias": "required"; "required": false; }; "options": { "alias": "options"; "required": false; }; "
|
|
950
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<RadioButtonToggleComponent, "fx-ui-radio-toggle, [fx-ui-radio-toggle]", never, { "label": { "alias": "label"; "required": false; }; "required": { "alias": "required"; "required": false; }; "options": { "alias": "options"; "required": false; }; "errorMessages": { "alias": "errorMessages"; "required": false; }; "class": { "alias": "class"; "required": false; }; }, {}, never, never, false, never>;
|
|
702
951
|
}
|
|
703
952
|
|
|
704
|
-
declare class DatetimePicker extends FxComponent<any> implements AfterViewInit
|
|
953
|
+
declare class DatetimePicker extends FxComponent<any> implements AfterViewInit {
|
|
705
954
|
private ref;
|
|
706
955
|
label?: string;
|
|
707
956
|
placeholder: string;
|
|
708
957
|
required: boolean;
|
|
709
958
|
type: any;
|
|
710
|
-
disabled: boolean;
|
|
711
959
|
minDate?: any;
|
|
712
960
|
maxDate?: any;
|
|
713
961
|
errorMessages: ErrorMessages;
|
|
714
962
|
validateFn: (date: string) => ValidationErrors | null;
|
|
715
963
|
startAt: any;
|
|
716
|
-
constructor(
|
|
717
|
-
ngOnInit(): void;
|
|
964
|
+
constructor(ref: ChangeDetectorRef);
|
|
718
965
|
ngAfterViewInit(): void;
|
|
719
|
-
setDisabledState?(isDisabled: boolean): void;
|
|
720
966
|
onBlur(): void;
|
|
721
967
|
writeValue(value: any): void;
|
|
722
968
|
onValueChange(date: any): void;
|
|
723
969
|
static ɵfac: i0.ɵɵFactoryDeclaration<DatetimePicker, never>;
|
|
724
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<DatetimePicker, "fx-ui-datetime-picker", never, { "label": { "alias": "label"; "required": false; }; "placeholder": { "alias": "placeholder"; "required": false; }; "required": { "alias": "required"; "required": false; }; "type": { "alias": "type"; "required": false; }; "
|
|
970
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<DatetimePicker, "fx-ui-datetime-picker", never, { "label": { "alias": "label"; "required": false; }; "placeholder": { "alias": "placeholder"; "required": false; }; "required": { "alias": "required"; "required": false; }; "type": { "alias": "type"; "required": false; }; "minDate": { "alias": "minDate"; "required": false; }; "maxDate": { "alias": "maxDate"; "required": false; }; "errorMessages": { "alias": "errorMessages"; "required": false; }; "validateFn": { "alias": "validateFn"; "required": false; }; }, {}, never, never, false, never>;
|
|
725
971
|
}
|
|
726
972
|
|
|
727
973
|
declare class LoadingPanel {
|
|
@@ -734,16 +980,16 @@ declare class LoadingPanel {
|
|
|
734
980
|
declare class SearchBarComponent extends FxComponent<string> implements AfterViewInit {
|
|
735
981
|
private ref;
|
|
736
982
|
placeholder: string;
|
|
737
|
-
disabled: boolean;
|
|
738
983
|
search: EventEmitter<string>;
|
|
739
984
|
valueChange: EventEmitter<string>;
|
|
740
|
-
constructor(
|
|
985
|
+
constructor(ref: ChangeDetectorRef);
|
|
741
986
|
ngAfterViewInit(): void;
|
|
987
|
+
writeValue(value: string): void;
|
|
742
988
|
onValueChange(value: string): void;
|
|
743
989
|
onEnterKey(): void;
|
|
744
990
|
clear(): void;
|
|
745
991
|
static ɵfac: i0.ɵɵFactoryDeclaration<SearchBarComponent, never>;
|
|
746
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<SearchBarComponent, "fx-ui-search-bar", never, { "placeholder": { "alias": "placeholder"; "required": false; };
|
|
992
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<SearchBarComponent, "fx-ui-search-bar", never, { "placeholder": { "alias": "placeholder"; "required": false; }; }, { "search": "search"; "valueChange": "valueChange"; }, never, never, false, never>;
|
|
747
993
|
}
|
|
748
994
|
|
|
749
995
|
declare class TabComponent {
|
|
@@ -816,13 +1062,13 @@ declare class TagComponent {
|
|
|
816
1062
|
rounded: boolean;
|
|
817
1063
|
icon?: any;
|
|
818
1064
|
solid: boolean;
|
|
819
|
-
|
|
1065
|
+
clicked: EventEmitter<void>;
|
|
820
1066
|
onClick(): void;
|
|
821
1067
|
static ɵfac: i0.ɵɵFactoryDeclaration<TagComponent, never>;
|
|
822
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<TagComponent, "fx-ui-tag", never, { "label": { "alias": "label"; "required": false; }; "type": { "alias": "type"; "required": false; }; "rounded": { "alias": "rounded"; "required": false; }; "icon": { "alias": "icon"; "required": false; }; "solid": { "alias": "solid"; "required": false; }; }, { "
|
|
1068
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<TagComponent, "fx-ui-tag", never, { "label": { "alias": "label"; "required": false; }; "type": { "alias": "type"; "required": false; }; "rounded": { "alias": "rounded"; "required": false; }; "icon": { "alias": "icon"; "required": false; }; "solid": { "alias": "solid"; "required": false; }; }, { "clicked": "clicked"; }, never, never, false, never>;
|
|
823
1069
|
}
|
|
824
1070
|
|
|
825
|
-
type IChartType = 'bar' | 'pie' | '
|
|
1071
|
+
type IChartType = 'bar' | 'pie' | 'sunburst' | 'auto';
|
|
826
1072
|
declare class ChartComponent implements OnChanges, AfterViewInit, OnDestroy {
|
|
827
1073
|
private ref;
|
|
828
1074
|
private cdr;
|
|
@@ -877,12 +1123,11 @@ declare class SliderComponent extends FxComponent<any> implements AfterViewInit
|
|
|
877
1123
|
max: number;
|
|
878
1124
|
step: number;
|
|
879
1125
|
vertical: boolean;
|
|
880
|
-
disabled: boolean;
|
|
881
1126
|
valueChange: EventEmitter<number>;
|
|
882
1127
|
dragging: boolean;
|
|
883
|
-
constructor(
|
|
1128
|
+
constructor(ref: ChangeDetectorRef);
|
|
884
1129
|
ngAfterViewInit(): void;
|
|
885
|
-
setDisabledState
|
|
1130
|
+
setDisabledState(isDisabled: boolean): void;
|
|
886
1131
|
writeValue(value: number): void;
|
|
887
1132
|
private _normalizeValue;
|
|
888
1133
|
private _decimalPlaces;
|
|
@@ -906,19 +1151,18 @@ declare class SliderComponent extends FxComponent<any> implements AfterViewInit
|
|
|
906
1151
|
bottom?: undefined;
|
|
907
1152
|
};
|
|
908
1153
|
static ɵfac: i0.ɵɵFactoryDeclaration<SliderComponent, never>;
|
|
909
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<SliderComponent, "fx-ui-slider", never, { "min": { "alias": "min"; "required": false; }; "max": { "alias": "max"; "required": false; }; "step": { "alias": "step"; "required": false; }; "vertical": { "alias": "vertical"; "required": false; };
|
|
1154
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<SliderComponent, "fx-ui-slider", never, { "min": { "alias": "min"; "required": false; }; "max": { "alias": "max"; "required": false; }; "step": { "alias": "step"; "required": false; }; "vertical": { "alias": "vertical"; "required": false; }; }, { "valueChange": "valueChange"; }, never, never, false, never>;
|
|
910
1155
|
}
|
|
911
1156
|
|
|
912
1157
|
declare class SwitchComponent extends FxComponent<any> implements AfterViewInit {
|
|
913
1158
|
private cdr;
|
|
914
|
-
disabled: boolean;
|
|
915
1159
|
onSwitch: EventEmitter<boolean>;
|
|
916
1160
|
ngAfterViewInit(): void;
|
|
917
|
-
constructor(
|
|
918
|
-
|
|
1161
|
+
constructor(cdr: ChangeDetectorRef);
|
|
1162
|
+
writeValue(value: any): void;
|
|
919
1163
|
toggle(): void;
|
|
920
1164
|
static ɵfac: i0.ɵɵFactoryDeclaration<SwitchComponent, never>;
|
|
921
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<SwitchComponent, "fx-ui-switch", never, {
|
|
1165
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<SwitchComponent, "fx-ui-switch", never, {}, { "onSwitch": "onSwitch"; }, never, never, false, never>;
|
|
922
1166
|
}
|
|
923
1167
|
|
|
924
1168
|
declare class RichTextAreaComponent extends FxComponent<any> implements AfterViewInit {
|
|
@@ -930,7 +1174,7 @@ declare class RichTextAreaComponent extends FxComponent<any> implements AfterVie
|
|
|
930
1174
|
toolbarOptions: any;
|
|
931
1175
|
contentChange: EventEmitter<string>;
|
|
932
1176
|
private quillInstance;
|
|
933
|
-
constructor(
|
|
1177
|
+
constructor(cdr: ChangeDetectorRef, styleLoader: QuillStyleLoaderService, platformId: object);
|
|
934
1178
|
ngAfterViewInit(): Promise<void>;
|
|
935
1179
|
writeValue(value: any): void;
|
|
936
1180
|
setDisabledState(isDisabled: boolean): void;
|
|
@@ -1067,6 +1311,158 @@ declare class DrawerComponent implements OnInit, OnDestroy {
|
|
|
1067
1311
|
static ɵcmp: i0.ɵɵComponentDeclaration<DrawerComponent, "fx-ui-drawer", never, { "items": { "alias": "items"; "required": false; }; "isExpanded": { "alias": "isExpanded"; "required": false; }; "logo": { "alias": "logo"; "required": false; }; "version": { "alias": "version"; "required": false; }; }, { "toggleExpanded": "toggleExpanded"; "itemClicked": "itemClicked"; }, never, never, false, never>;
|
|
1068
1312
|
}
|
|
1069
1313
|
|
|
1314
|
+
/** Row-card skeleton placeholder for master-detail list panes. */
|
|
1315
|
+
declare class SkeletonListComponent {
|
|
1316
|
+
rows: number;
|
|
1317
|
+
range(n: number): number[];
|
|
1318
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<SkeletonListComponent, never>;
|
|
1319
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<SkeletonListComponent, "fx-ui-skeleton-list", never, { "rows": { "alias": "rows"; "required": false; }; }, {}, never, never, false, never>;
|
|
1320
|
+
}
|
|
1321
|
+
|
|
1322
|
+
/** Card-shaped skeleton placeholder for detail panels. */
|
|
1323
|
+
declare class SkeletonDetailComponent {
|
|
1324
|
+
/** Number of content cards rendered below the header card. */
|
|
1325
|
+
cards: number;
|
|
1326
|
+
/** Rows per content card. */
|
|
1327
|
+
rows: number;
|
|
1328
|
+
range(n: number): number[];
|
|
1329
|
+
rowWidth(i: number): number;
|
|
1330
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<SkeletonDetailComponent, never>;
|
|
1331
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<SkeletonDetailComponent, "fx-ui-skeleton-detail", never, { "cards": { "alias": "cards"; "required": false; }; "rows": { "alias": "rows"; "required": false; }; }, {}, never, never, false, never>;
|
|
1332
|
+
}
|
|
1333
|
+
|
|
1334
|
+
interface FxStatCard {
|
|
1335
|
+
/** Caller-translated caption. */
|
|
1336
|
+
label: string;
|
|
1337
|
+
value: string | number;
|
|
1338
|
+
/** hero-icon name shown in the tinted box. */
|
|
1339
|
+
icon?: any;
|
|
1340
|
+
/** Colours the number and the icon box; null/undefined renders neutral. */
|
|
1341
|
+
tone?: Tone | null;
|
|
1342
|
+
}
|
|
1343
|
+
/** KPI tile row: big number + tinted icon box + caption, in a responsive grid. */
|
|
1344
|
+
declare class StatCardsComponent {
|
|
1345
|
+
cards: FxStatCard[];
|
|
1346
|
+
/** Grid columns; defaults to one column per card. */
|
|
1347
|
+
cols?: number;
|
|
1348
|
+
get gridColumns(): string;
|
|
1349
|
+
numClass(card: FxStatCard): string;
|
|
1350
|
+
boxClass(card: FxStatCard): string;
|
|
1351
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<StatCardsComponent, never>;
|
|
1352
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<StatCardsComponent, "fx-ui-stat-cards", never, { "cards": { "alias": "cards"; "required": false; }; "cols": { "alias": "cols"; "required": false; }; }, {}, never, never, false, never>;
|
|
1353
|
+
}
|
|
1354
|
+
|
|
1355
|
+
/** Centered "no data" block. The message is caller-translated (no i18n in lib). */
|
|
1356
|
+
declare class EmptyStateComponent {
|
|
1357
|
+
message: string;
|
|
1358
|
+
/** Optional icon (hero-icon name). */
|
|
1359
|
+
icon?: any;
|
|
1360
|
+
/** Min height of the block, CSS length. */
|
|
1361
|
+
height: string;
|
|
1362
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<EmptyStateComponent, never>;
|
|
1363
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<EmptyStateComponent, "fx-ui-empty-state", never, { "message": { "alias": "message"; "required": false; }; "icon": { "alias": "icon"; "required": false; }; "height": { "alias": "height"; "required": false; }; }, {}, never, never, false, never>;
|
|
1364
|
+
}
|
|
1365
|
+
|
|
1366
|
+
interface FxFilterChipOption {
|
|
1367
|
+
/** Caller-translated label. */
|
|
1368
|
+
label: string;
|
|
1369
|
+
/** '' (empty) renders as the neutral "All" chip. */
|
|
1370
|
+
value: string;
|
|
1371
|
+
}
|
|
1372
|
+
/**
|
|
1373
|
+
* Tone-tinted filter chip row. Replaces the per-tab chipClass() copies —
|
|
1374
|
+
* including their classic bug of comparing a hardcoded filter key: the active
|
|
1375
|
+
* chip here is always derived from [value].
|
|
1376
|
+
*/
|
|
1377
|
+
declare class FilterChipsComponent {
|
|
1378
|
+
options: FxFilterChipOption[];
|
|
1379
|
+
value: string;
|
|
1380
|
+
valueChange: EventEmitter<string>;
|
|
1381
|
+
/** Per-value tone overrides (e.g. { Safe: 'information', Protected: 'discovery' as any }). */
|
|
1382
|
+
toneOverrides: Record<string, Tone | null>;
|
|
1383
|
+
select(option: FxFilterChipOption): void;
|
|
1384
|
+
chipClass(option: FxFilterChipOption): string;
|
|
1385
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<FilterChipsComponent, never>;
|
|
1386
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<FilterChipsComponent, "fx-ui-filter-chips", never, { "options": { "alias": "options"; "required": false; }; "value": { "alias": "value"; "required": false; }; "toneOverrides": { "alias": "toneOverrides"; "required": false; }; }, { "valueChange": "valueChange"; }, never, never, false, never>;
|
|
1387
|
+
}
|
|
1388
|
+
|
|
1389
|
+
/** Thin tone-coloured progress/score bar with optional label and caption. */
|
|
1390
|
+
declare class MeterComponent {
|
|
1391
|
+
value: number;
|
|
1392
|
+
max: number;
|
|
1393
|
+
tone: Tone | null;
|
|
1394
|
+
/** Caller-translated texts; omitted → bar only. */
|
|
1395
|
+
label?: string;
|
|
1396
|
+
caption?: string;
|
|
1397
|
+
get percent(): number;
|
|
1398
|
+
get fillClass(): string;
|
|
1399
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<MeterComponent, never>;
|
|
1400
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<MeterComponent, "fx-ui-meter", never, { "value": { "alias": "value"; "required": false; }; "max": { "alias": "max"; "required": false; }; "tone": { "alias": "tone"; "required": false; }; "label": { "alias": "label"; "required": false; }; "caption": { "alias": "caption"; "required": false; }; }, {}, never, never, false, never>;
|
|
1401
|
+
}
|
|
1402
|
+
|
|
1403
|
+
/** Detail-panel section: card with an icon + heading header and projected body. */
|
|
1404
|
+
declare class SectionCardComponent {
|
|
1405
|
+
/** Caller-translated heading. */
|
|
1406
|
+
title: string;
|
|
1407
|
+
/** hero-icon name; omitted → text-only header. */
|
|
1408
|
+
icon?: any;
|
|
1409
|
+
iconTone: Tone | null;
|
|
1410
|
+
get iconClass(): string;
|
|
1411
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<SectionCardComponent, never>;
|
|
1412
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<SectionCardComponent, "fx-ui-section-card", never, { "title": { "alias": "title"; "required": false; }; "icon": { "alias": "icon"; "required": false; }; "iconTone": { "alias": "iconTone"; "required": false; }; }, {}, never, ["*"], false, never>;
|
|
1413
|
+
}
|
|
1414
|
+
|
|
1415
|
+
/**
|
|
1416
|
+
* Label-over-value field for detail panels. The label uses txt-field-label
|
|
1417
|
+
* with its baked-in margin neutralised (the known mb-1 alignment gotcha) —
|
|
1418
|
+
* spacing is owned by this component.
|
|
1419
|
+
*/
|
|
1420
|
+
declare class InfoFieldComponent {
|
|
1421
|
+
/** Caller-translated label. */
|
|
1422
|
+
label: string;
|
|
1423
|
+
value: string | number | null | undefined;
|
|
1424
|
+
/** Colours the value; null/undefined renders the primary text colour. */
|
|
1425
|
+
tone: Tone | null;
|
|
1426
|
+
/** Monospace value (hashes, paths). */
|
|
1427
|
+
mono: boolean;
|
|
1428
|
+
/** Placeholder when value is empty. */
|
|
1429
|
+
placeholder: string;
|
|
1430
|
+
get displayValue(): string;
|
|
1431
|
+
get valueClass(): string;
|
|
1432
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<InfoFieldComponent, never>;
|
|
1433
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<InfoFieldComponent, "fx-ui-info-field", never, { "label": { "alias": "label"; "required": false; }; "value": { "alias": "value"; "required": false; }; "tone": { "alias": "tone"; "required": false; }; "mono": { "alias": "mono"; "required": false; }; "placeholder": { "alias": "placeholder"; "required": false; }; }, {}, never, never, false, never>;
|
|
1434
|
+
}
|
|
1435
|
+
|
|
1436
|
+
interface FxSeverityBadge {
|
|
1437
|
+
key: string;
|
|
1438
|
+
label: string | number;
|
|
1439
|
+
tone: Tone | null;
|
|
1440
|
+
}
|
|
1441
|
+
/**
|
|
1442
|
+
* Compact total/critical/high/medium(/low) badge cluster used in table cells.
|
|
1443
|
+
* Pass counts via [stats]; missing fields are skipped. Labels are numbers, so
|
|
1444
|
+
* no i18n is involved; the total badge renders neutral.
|
|
1445
|
+
*/
|
|
1446
|
+
declare class SeverityBadgesComponent {
|
|
1447
|
+
stats: {
|
|
1448
|
+
total?: number;
|
|
1449
|
+
critical?: number;
|
|
1450
|
+
high?: number;
|
|
1451
|
+
medium?: number;
|
|
1452
|
+
low?: number;
|
|
1453
|
+
} | null;
|
|
1454
|
+
/** Show zero-count badges (default true, mirrors the table-cell usage). */
|
|
1455
|
+
showZero: boolean;
|
|
1456
|
+
/** Append the severity letter to counts ("3C", "5H", "2M") per the report design. */
|
|
1457
|
+
suffixed: boolean;
|
|
1458
|
+
badgeClick: EventEmitter<string>;
|
|
1459
|
+
private static readonly TONES;
|
|
1460
|
+
get badges(): FxSeverityBadge[];
|
|
1461
|
+
badgeClass(badge: FxSeverityBadge): string;
|
|
1462
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<SeverityBadgesComponent, never>;
|
|
1463
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<SeverityBadgesComponent, "fx-ui-severity-badges", never, { "stats": { "alias": "stats"; "required": false; }; "showZero": { "alias": "showZero"; "required": false; }; "suffixed": { "alias": "suffixed"; "required": false; }; }, { "badgeClick": "badgeClick"; }, never, never, false, never>;
|
|
1464
|
+
}
|
|
1465
|
+
|
|
1070
1466
|
declare class ConfirmationDialogComponent {
|
|
1071
1467
|
private ref;
|
|
1072
1468
|
bindings: any;
|
|
@@ -1093,9 +1489,9 @@ declare const MY_MOMENT_FORMATS: {
|
|
|
1093
1489
|
};
|
|
1094
1490
|
declare class UiModule {
|
|
1095
1491
|
static ɵfac: i0.ɵɵFactoryDeclaration<UiModule, never>;
|
|
1096
|
-
static ɵmod: i0.ɵɵNgModuleDeclaration<UiModule, [typeof InputComponent, typeof SelectComponent, typeof RadioButtonComponent, typeof CheckboxComponent, typeof DndUploadComponent, typeof ButtonComponent, typeof RadioButtonToggleComponent, typeof DatetimePicker, typeof LoadingPanel, typeof SearchBarComponent, typeof TabGroupComponent, typeof TabComponent, typeof HeroIconComponent, typeof ToastComponent, typeof ToastContainerComponent, typeof TagComponent, typeof ChartComponent, typeof SliderComponent, typeof SwitchComponent, typeof RichTextAreaComponent, typeof SkeletonTableLoadingComponent, typeof FlowConnection, typeof CircleProgressBar, typeof TreeDiagram, typeof TableCell, typeof KanbanBoardComponent, typeof DrawerComponent, typeof ConfirmationDialogComponent], [typeof
|
|
1492
|
+
static ɵmod: i0.ɵɵNgModuleDeclaration<UiModule, [typeof InputComponent, typeof SelectComponent, typeof RadioButtonComponent, typeof CheckboxComponent, typeof DndUploadComponent, typeof ButtonComponent, typeof RadioButtonToggleComponent, typeof DatetimePicker, typeof LoadingPanel, typeof SearchBarComponent, typeof TabGroupComponent, typeof TabComponent, typeof HeroIconComponent, typeof ToastComponent, typeof ToastContainerComponent, typeof TagComponent, typeof ChartComponent, typeof SliderComponent, typeof SwitchComponent, typeof RichTextAreaComponent, typeof SkeletonTableLoadingComponent, typeof FlowConnection, typeof CircleProgressBar, typeof TreeDiagram, typeof TableCell, typeof KanbanBoardComponent, typeof DrawerComponent, typeof SkeletonListComponent, typeof SkeletonDetailComponent, typeof StatCardsComponent, typeof EmptyStateComponent, typeof FilterChipsComponent, typeof MeterComponent, typeof SectionCardComponent, typeof InfoFieldComponent, typeof SeverityBadgesComponent, typeof ConfirmationDialogComponent], [typeof i38.CommonModule, typeof i39.FormsModule, typeof i39.ReactiveFormsModule, typeof i40.RouterModule, typeof i41.OwlDateTimeModule, typeof i41.OwlNativeDateTimeModule, typeof i42.OwlMomentDateTimeModule, typeof HasPermissionDirective, typeof TrimOnBlurDirective, typeof i45.NgHeroiconsModule, typeof i46.VflowComponent, typeof i46.HandleComponent, typeof i46.ResizableComponent, typeof i46.SelectableDirective, typeof i46.MiniMapComponent, typeof i46.NodeToolbarComponent, typeof i46.CustomTemplateEdgeComponent, typeof i46.DragHandleDirective, typeof i46.ConnectionControllerDirective, typeof i46.NodeHtmlTemplateDirective, typeof i46.NodeSvgTemplateDirective, typeof i46.GroupNodeTemplateDirective, typeof i46.EdgeLabelHtmlTemplateDirective, typeof i46.EdgeTemplateDirective, typeof i46.ConnectionTemplateDirective, typeof i46.HandleTemplateDirective, typeof i47.NgxEchartsModule, typeof i48.MatSelectModule, typeof i49.MatRadioModule, typeof i50.MatButtonModule, typeof i51.MatIconModule, typeof i52.MatPaginatorModule, typeof i53.MatTableModule, typeof i54.MatSnackBarModule, typeof i55.MatDialogModule, typeof i56.MatCheckboxModule, typeof i57.MatCardModule, typeof i58.MatDatepickerModule, typeof i59.MatTimepickerModule, typeof i60.MatBadgeModule, typeof i61.MatExpansionModule, typeof i62.MatFormFieldModule, typeof i63.MatMenuModule, typeof i64.MatTooltipModule, typeof i65.DragDropModule], [typeof InputComponent, typeof SelectComponent, typeof RadioButtonComponent, typeof CheckboxComponent, typeof DndUploadComponent, typeof ButtonComponent, typeof RadioButtonToggleComponent, typeof DatetimePicker, typeof LoadingPanel, typeof SearchBarComponent, typeof TabGroupComponent, typeof TabComponent, typeof HeroIconComponent, typeof ToastComponent, typeof ToastContainerComponent, typeof TagComponent, typeof ChartComponent, typeof SliderComponent, typeof SwitchComponent, typeof RichTextAreaComponent, typeof SkeletonTableLoadingComponent, typeof FlowConnection, typeof CircleProgressBar, typeof TreeDiagram, typeof TableCell, typeof KanbanBoardComponent, typeof DrawerComponent, typeof SkeletonListComponent, typeof SkeletonDetailComponent, typeof StatCardsComponent, typeof EmptyStateComponent, typeof FilterChipsComponent, typeof MeterComponent, typeof SectionCardComponent, typeof InfoFieldComponent, typeof SeverityBadgesComponent, typeof ConfirmationDialogComponent, typeof i39.FormsModule, typeof i39.ReactiveFormsModule, typeof i40.RouterModule, typeof i41.OwlDateTimeModule, typeof i41.OwlNativeDateTimeModule, typeof HasPermissionDirective, typeof i45.NgHeroiconsModule, typeof i48.MatSelectModule, typeof i49.MatRadioModule, typeof i50.MatButtonModule, typeof i51.MatIconModule, typeof i52.MatPaginatorModule, typeof i53.MatTableModule, typeof i54.MatSnackBarModule, typeof i55.MatDialogModule, typeof i56.MatCheckboxModule, typeof i57.MatCardModule, typeof i58.MatDatepickerModule, typeof i59.MatTimepickerModule, typeof i60.MatBadgeModule, typeof i61.MatExpansionModule, typeof i62.MatFormFieldModule, typeof i63.MatMenuModule, typeof i64.MatTooltipModule, typeof i65.DragDropModule]>;
|
|
1097
1493
|
static ɵinj: i0.ɵɵInjectorDeclaration<UiModule>;
|
|
1098
1494
|
}
|
|
1099
1495
|
|
|
1100
|
-
export { AuthInterceptor, AuthStateService, BaseComponent, BaseDialogComponent, BaseResolver, BaseTableComponent, BreadcrumbService, ButtonComponent, ChartComponent, CheckboxComponent, CircleProgressBar, ConfirmationDialogComponent, DatetimePicker, DndUploadComponent, DrawerComponent, FlowConnection, FxLoadingService, FxStorageService, FxToastrService, FxUtils, FxValidators, HasPermissionDirective, HeroIconComponent, HttpLoaderFactory, HttpWrapper, InputComponent, KanbanBoardComponent, LoadingPanel, MY_MOMENT_FORMATS, NotificationService, PermissionGuard, PermissionService, QuillStyleLoaderService, RadioButtonComponent, RadioButtonToggleComponent, RichTextAreaComponent, SearchBarComponent, SelectComponent, SkeletonTableLoadingComponent, SliderComponent, SwitchComponent, TabComponent, TabGroupComponent, TableCell, TagComponent, ThemeService, ToastComponent, ToastContainerComponent, TranslationModule, TranslationService, TreeDiagram, TrimOnBlurDirective, UiModule };
|
|
1101
|
-
export type { Breadcrumb, ColumnChangedEvent, IChartType, IRadioButton, KanbanColumn, TableResult, TagType, ToastData, TreeNode, UploadResult };
|
|
1496
|
+
export { AuthInterceptor, AuthStateService, BaseComponent, BaseDialogComponent, BaseResolver, BaseTableComponent, BreadcrumbService, ButtonComponent, ChartComponent, CheckboxComponent, CircleProgressBar, ConfirmationDialogComponent, DatetimePicker, DndUploadComponent, DrawerComponent, EmptyStateComponent, FilterChipsComponent, FlowConnection, FxLoadingService, FxStorageService, FxToastrService, FxUtils, FxValidators, HasPermissionDirective, HeroIconComponent, HttpLoaderFactory, HttpWrapper, InfoFieldComponent, InputComponent, KanbanBoardComponent, LoadingPanel, MY_MOMENT_FORMATS, MeterComponent, NotificationService, PermissionGuard, PermissionService, QuillStyleLoaderService, RadioButtonComponent, RadioButtonToggleComponent, RealtimeTableSync, RichTextAreaComponent, SearchBarComponent, SectionCardComponent, SelectComponent, SeverityBadgesComponent, SkeletonDetailComponent, SkeletonListComponent, SkeletonTableLoadingComponent, SliderComponent, StatCardsComponent, SwitchComponent, TabComponent, TabGroupComponent, TableCell, TagComponent, ThemeService, ToastComponent, ToastContainerComponent, TranslationModule, TranslationService, TreeDiagram, TrimOnBlurDirective, UiModule, countTone, createApi, fxListResolver, scoreTone, severityTone, toneBadge, toneBg, toneColor, toneText };
|
|
1497
|
+
export type { Breadcrumb, ColumnChangedEvent, FxApiClass, FxFilterChipOption, FxListRequest, FxListResolverContext, FxSeverityBadge, FxStatCard, IChartType, IRadioButton, KanbanColumn, NotificationCallback, NotificationConnectOptions, RealtimeTableEvent, RealtimeTableSyncOptions, TableResult, TagType, ToastData, Tone, TreeNode, UploadResult };
|