@nettyapps/ntybase 21.0.34 → 21.0.35-beta.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@nettyapps/ntybase",
3
- "version": "21.0.34",
3
+ "version": "21.0.35-beta.2",
4
4
  "description": "This library provides foundational services and components for NettyApps Angular applications.",
5
5
  "publishConfig": {
6
6
  "access": "public"
@@ -1,13 +1,15 @@
1
1
  import * as i0 from '@angular/core';
2
- import { OnDestroy, OnInit, DoCheck, SimpleChanges, InjectionToken, Signal } from '@angular/core';
3
- import { Observable, Subject } from 'rxjs';
4
- import { Theme, GridApi, GridOptions, StatusPanelDef, GridReadyEvent, IFilterParams, IDoesFilterPassParams } from 'ag-grid-community';
2
+ import { OnDestroy, OnInit, DoCheck, InjectionToken, Signal } from '@angular/core';
3
+ import * as ag_grid_community from 'ag-grid-community';
4
+ import { IFilterParams, IDoesFilterPassParams } from 'ag-grid-community';
5
+ import { EnvironmentProxy, NettyStandardProxy, NettyStandardLogProxy } from '@nettyapps/ntycontract';
6
+ import { Subject, Observable } from 'rxjs';
7
+ import { MatSnackBar } from '@angular/material/snack-bar';
5
8
  import { MatDialog, MatDialogRef } from '@angular/material/dialog';
6
9
  import { TranslateService } from '@ngx-translate/core';
7
- import { Router, ActivatedRoute, CanActivate, ActivatedRouteSnapshot, RouterStateSnapshot, CanDeactivate } from '@angular/router';
8
10
  import { HttpClient, HttpInterceptor, HttpRequest, HttpHandler, HttpEvent, HttpInterceptorFn } from '@angular/common/http';
9
- import { EnvironmentProxy } from '@nettyapps/ntycontract';
10
- import { MatSnackBar } from '@angular/material/snack-bar';
11
+ import { Theme, GridApi, GridOptions, StatusPanelDef, GridReadyEvent } from 'ag-grid-enterprise';
12
+ import { Router, ActivatedRoute, CanActivate, ActivatedRouteSnapshot, RouterStateSnapshot, CanDeactivate } from '@angular/router';
11
13
  import { NgForm, FormGroup } from '@angular/forms';
12
14
  import * as XLSX from 'xlsx';
13
15
  import { ICellRendererAngularComp, IFilterAngularComp } from 'ag-grid-angular';
@@ -24,6 +26,63 @@ declare class NtybaseModule {
24
26
  static ɵinj: i0.ɵɵInjectorDeclaration<NtybaseModule>;
25
27
  }
26
28
 
29
+ declare class AlertService {
30
+ private snackBar;
31
+ private dialog;
32
+ private translate;
33
+ constructor(snackBar: MatSnackBar, dialog: MatDialog, translate: TranslateService);
34
+ showAlert(message: string, action?: string, duration?: number): void;
35
+ showWarning(message: string, action?: string, duration?: number): void;
36
+ showConfirm(message: string): Promise<boolean>;
37
+ showSuccess(message: string, duration?: number): void;
38
+ showError(error: any, duration?: number): Promise<void>;
39
+ static ɵfac: i0.ɵɵFactoryDeclaration<AlertService, never>;
40
+ static ɵprov: i0.ɵɵInjectableDeclaration<AlertService>;
41
+ }
42
+
43
+ declare abstract class NettyAppsBase implements OnDestroy {
44
+ protected alertService: AlertService;
45
+ protected translateService: TranslateService;
46
+ /**
47
+ * Download the given base64Encoded data as file
48
+ *
49
+ * @param base64Data: base64 encoded data
50
+ * @param fileName: filename to download
51
+ */
52
+ protected downloadFile(base64Data: string | null, fileName: string | null): void;
53
+ /** Download the given base64Endoced data as text file
54
+ *
55
+ * @param base64EncodedFileData
56
+ * @param fileName
57
+ */
58
+ protected downloadTextFile(base64EncodedFileData: string | null, fileName: string | null): void;
59
+ /** Save the given text as a text file
60
+ *
61
+ * @param fileData
62
+ * @param fileName
63
+ */
64
+ protected downloadTextFileNotEncoded(fileData: string | null, fileName: string | null): void;
65
+ /**
66
+ * Download file where the data is provided as blob
67
+ * @param data - Array Buffer data
68
+ * @param type - type of the document.
69
+ */
70
+ protected downloadBlobFile(data: any, type: string, fileName: string): void;
71
+ protected onDestroy$: Subject<void>;
72
+ ngOnDestroy(): void;
73
+ static ɵfac: i0.ɵɵFactoryDeclaration<NettyAppsBase, never>;
74
+ static ɵcmp: i0.ɵɵComponentDeclaration<NettyAppsBase, "ntybase-netty-apps-base", never, {}, {}, never, never, true, never>;
75
+ }
76
+
77
+ interface NettyEntityInterface<T> {
78
+ getPK(): any;
79
+ setPK(pk: any): void;
80
+ compare(other: T): T;
81
+ }
82
+
83
+ interface NettyEntityLogInterface<T> extends NettyEntityInterface<T> {
84
+ }
85
+
27
86
  declare class CurrentUserPreference {
28
87
  coid: any | null;
29
88
  nettyUserPreferenceGUID: any | null;
@@ -43,6 +102,7 @@ declare class NettyAgGridService {
43
102
  private nettyAlertService;
44
103
  private environmentProxy;
45
104
  private commonService;
105
+ protected translateService: TranslateService;
46
106
  constructor();
47
107
  /**
48
108
  * Select user preference
@@ -109,10 +169,20 @@ declare class NettyAgGridService {
109
169
  * @returns
110
170
  */
111
171
  getExcelStyles(): any;
172
+ setAgGridTranslations(gridApi: any): void;
112
173
  static ɵfac: i0.ɵɵFactoryDeclaration<NettyAgGridService, never>;
113
174
  static ɵprov: i0.ɵɵInjectableDeclaration<NettyAgGridService>;
114
175
  }
115
176
 
177
+ declare class NettySecurity {
178
+ coid: any;
179
+ userGUID: any;
180
+ application: string;
181
+ formCode: string;
182
+ action: string;
183
+ allow: boolean;
184
+ }
185
+
116
186
  declare class CommonService {
117
187
  private router;
118
188
  private location;
@@ -224,15 +294,6 @@ declare class CommonService {
224
294
  static ɵprov: i0.ɵɵInjectableDeclaration<CommonService>;
225
295
  }
226
296
 
227
- declare class NettySecurity {
228
- coid: any;
229
- userGUID: any;
230
- application: string;
231
- formCode: string;
232
- action: string;
233
- allow: boolean;
234
- }
235
-
236
297
  declare class SysfunctionProxy {
237
298
  private http;
238
299
  private environmentProxy;
@@ -247,67 +308,25 @@ declare class SysfunctionProxy {
247
308
  static ɵprov: i0.ɵɵInjectableDeclaration<SysfunctionProxy>;
248
309
  }
249
310
 
250
- declare class AlertService {
251
- private snackBar;
252
- private dialog;
253
- private translate;
254
- constructor(snackBar: MatSnackBar, dialog: MatDialog, translate: TranslateService);
255
- showAlert(message: string, action?: string, duration?: number): void;
256
- showWarning(message: string, action?: string, duration?: number): void;
257
- showConfirm(message: string): Promise<boolean>;
258
- showSuccess(message: string, duration?: number): void;
259
- showError(error: any, duration?: number): Promise<void>;
260
- static ɵfac: i0.ɵɵFactoryDeclaration<AlertService, never>;
261
- static ɵprov: i0.ɵɵInjectableDeclaration<AlertService>;
262
- }
311
+ type AgGridSelectionModeType = 'singleRow' | 'multiRow';
263
312
 
264
- declare abstract class NettyAppsBase implements OnDestroy {
265
- protected alertService: AlertService;
266
- protected translateService: TranslateService;
267
- /**
268
- * Download the given base64Encoded data as file
269
- *
270
- * @param base64Data: base64 encoded data
271
- * @param fileName: filename to download
272
- */
273
- protected downloadFile(base64Data: string | null, fileName: string | null): void;
274
- /** Download the given base64Endoced data as text file
275
- *
276
- * @param base64EncodedFileData
277
- * @param fileName
278
- */
279
- protected downloadTextFile(base64EncodedFileData: string | null, fileName: string | null): void;
280
- /** Save the given text as a text file
281
- *
282
- * @param fileData
283
- * @param fileName
284
- */
285
- protected downloadTextFileNotEncoded(fileData: string | null, fileName: string | null): void;
286
- /**
287
- * Download file where the data is provided as blob
288
- * @param data - Array Buffer data
289
- * @param type - type of the document.
290
- */
291
- protected downloadBlobFile(data: any, type: string, fileName: string): void;
292
- protected onDestroy$: Subject<void>;
293
- ngOnDestroy(): void;
294
- static ɵfac: i0.ɵɵFactoryDeclaration<NettyAppsBase, never>;
295
- static ɵcmp: i0.ɵɵComponentDeclaration<NettyAppsBase, "ntybase-netty-apps-base", never, {}, {}, never, never, true, never>;
296
- }
297
-
298
- declare abstract class NettyAgGridBase<T extends {
299
- [key: string]: any;
300
- }> extends NettyAppsBase implements OnInit {
301
- readOnly: i0.InputSignal<boolean>;
313
+ declare abstract class NettyAgGridBase<T extends NettyEntityLogInterface<T>> extends NettyAppsBase {
314
+ protected FILTER_MODE_KEY: string;
315
+ protected myTheme: Theme<ag_grid_community.ThemeDefaultParams>;
316
+ readOnly: i0.WritableSignal<boolean>;
302
317
  popupFilterValid: i0.InputSignal<boolean>;
303
318
  popupValid: i0.InputSignal<boolean>;
304
319
  isEmbedded: i0.InputSignal<boolean>;
305
- componantParameterGUID: i0.InputSignal<any>;
306
- componantParameterType: i0.InputSignal<string>;
307
- onElementSelect: i0.OutputEmitterRef<T[]>;
308
- protected customFilters: i0.WritableSignal<boolean>;
309
- protected isFilterValid: i0.WritableSignal<boolean>;
310
- protected isFilterExpanded: i0.WritableSignal<boolean>;
320
+ protected componentName: i0.WritableSignal<string>;
321
+ protected searchValueName: i0.WritableSignal<string>;
322
+ protected preferenceType: i0.WritableSignal<string>;
323
+ searchValue: i0.WritableSignal<string>;
324
+ protected parameterGUID: any;
325
+ protected parameterType: any;
326
+ protected nettyAgGridService: NettyAgGridService;
327
+ protected commonService: CommonService;
328
+ protected sysFunctionProxy: SysfunctionProxy;
329
+ protected environment: EnvironmentProxy;
311
330
  protected authenticationList: Array<NettySecurity>;
312
331
  protected accessRightsProcessed: i0.WritableSignal<boolean>;
313
332
  allowAdd: i0.WritableSignal<boolean>;
@@ -315,11 +334,24 @@ declare abstract class NettyAgGridBase<T extends {
315
334
  allowDelete: i0.WritableSignal<boolean>;
316
335
  allowLog: i0.WritableSignal<boolean>;
317
336
  allowRead: i0.WritableSignal<boolean>;
318
- menuValid: i0.WritableSignal<boolean>;
319
- deleteValid: i0.WritableSignal<boolean>;
320
- selectionValid: i0.WritableSignal<boolean>;
321
- refreshButtonValid: i0.WritableSignal<boolean>;
322
- selectedElement: i0.OutputEmitterRef<any>;
337
+ protected recordList: i0.WritableSignal<T[]>;
338
+ protected record: T | null;
339
+ /**
340
+ * Component initialization lifecycle hook Overide for custom initialization
341
+ */
342
+ AfterOnInit(): Promise<void>;
343
+ protected abstract loadData(): void;
344
+ /** Set data into the grid */
345
+ setData(data: T[]): void;
346
+ setAccessRights(): Promise<boolean>;
347
+ /**
348
+ * Get stored filter mode from local storage
349
+ * @returns boolean
350
+ */
351
+ private getStoredFilterMode;
352
+ protected onBtnClick?(e: T): void;
353
+ protected abstract initAgGrid(): void;
354
+ agGridSelectionMode: i0.InputSignal<AgGridSelectionModeType>;
323
355
  theme: Theme;
324
356
  protected gridApi: GridApi;
325
357
  protected userGridApi: GridApi;
@@ -328,47 +360,64 @@ declare abstract class NettyAgGridBase<T extends {
328
360
  userColumnDefs: i0.WritableSignal<any>;
329
361
  groupMembersColumnDefs: i0.WritableSignal<any>;
330
362
  protected gridColumnsVisible: i0.WritableSignal<boolean>;
363
+ protected gridExpanded: i0.WritableSignal<boolean>;
331
364
  frameworkComponents: any;
332
365
  selectedRows: i0.WritableSignal<T[]>;
333
366
  isSingleRowSelected: i0.Signal<boolean>;
334
367
  isMultipleRowSelected: i0.Signal<boolean>;
335
- protected gridExpanded: i0.WritableSignal<boolean>;
336
- protected componentName: i0.WritableSignal<string>;
337
- protected searchValueName: i0.WritableSignal<string>;
338
- protected preferenceType: i0.WritableSignal<string>;
339
- searchValue: i0.WritableSignal<string>;
340
- protected openInPopup: i0.WritableSignal<boolean>;
341
- protected nettyAgGridService: NettyAgGridService;
342
- protected commonService: CommonService;
343
- protected router: Router;
344
- protected routerActive: ActivatedRoute;
345
- protected dialog: MatDialog;
346
- protected sysFunctionProxy: SysfunctionProxy;
347
- protected environment: EnvironmentProxy;
348
- protected queryParameterGUID: i0.Signal<any>;
349
- protected queryParameterType: i0.Signal<any>;
350
- protected parameterGUID: any;
351
- protected parameterType: any;
352
- initAgGrid_extension(): void;
368
+ protected customFilters: i0.WritableSignal<boolean>;
353
369
  gridOptions: GridOptions<T>;
354
370
  statusBar: {
355
371
  statusPanels: StatusPanelDef[];
356
372
  };
373
+ protected onGridReady(params: GridReadyEvent): void;
374
+ onFirstDataRendered(params: any): void;
375
+ saveGrid(params: any): void;
376
+ expandCollapse(): void;
377
+ quickSearch(searchStr?: string): void;
378
+ /**
379
+ * Update a single row in the grid
380
+ * @param rowData The updated row data
381
+ * @param idField The field name that serves as unique identifier (default: 'id')
382
+ */
383
+ protected updateRowInGrid(rowData: T, idField?: string): void;
357
384
  /**
358
385
  * Filter mode change
359
386
  */
360
387
  toggleFilterMode(): void;
361
- private getStoredFilterMode;
388
+ setAgGridTranslations(): void;
389
+ initAgGrid_extension(): void;
390
+ onShowHideColumns(): void;
391
+ showHideColumnsAsync(): void;
392
+ showHideColumns(): void;
393
+ showHideEmbeddedColumnsAsync(): void;
394
+ showHideEmbeddedColumns(): void;
395
+ static ɵfac: i0.ɵɵFactoryDeclaration<NettyAgGridBase<any>, never>;
396
+ static ɵcmp: i0.ɵɵComponentDeclaration<NettyAgGridBase<any>, "ntybase-ag-grid-base", never, { "popupFilterValid": { "alias": "popupFilterValid"; "required": false; "isSignal": true; }; "popupValid": { "alias": "popupValid"; "required": false; "isSignal": true; }; "isEmbedded": { "alias": "isEmbedded"; "required": false; "isSignal": true; }; "agGridSelectionMode": { "alias": "agGridSelectionMode"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
397
+ }
398
+
399
+ declare abstract class NettyAgGridListBase<T extends NettyEntityInterface<T>> extends NettyAgGridBase<T> implements OnInit {
400
+ componantParameterGUID: i0.InputSignal<any>;
401
+ componantParameterType: i0.InputSignal<string>;
402
+ onElementSelect: i0.OutputEmitterRef<T[]>;
403
+ selectedElement: i0.OutputEmitterRef<any>;
404
+ hasFilter: i0.InputSignal<boolean>;
405
+ protected isFilterValid: i0.WritableSignal<boolean>;
406
+ protected isFilterExpanded: i0.Signal<boolean>;
407
+ menuValid: i0.WritableSignal<boolean>;
408
+ refreshButtonValid: i0.WritableSignal<boolean>;
409
+ protected openEditComponentInPopup: i0.WritableSignal<boolean>;
410
+ protected router: Router;
411
+ protected routerActive: ActivatedRoute;
412
+ protected dialog: MatDialog;
413
+ protected queryParameterGUID: i0.Signal<any>;
414
+ protected queryParameterType: i0.Signal<any>;
415
+ protected nettyAppsProxy: NettyStandardProxy<T>;
362
416
  /**
363
417
  * Component initialization lifecycle hook
364
418
  */
365
419
  ngOnInit(): Promise<void>;
366
420
  private parseOrReturnValue;
367
- protected onGridReady(params: GridReadyEvent): void;
368
- onFirstDataRendered(params: any): void;
369
- saveGrid(params: any): void;
370
- expandCollapse(): void;
371
- quickSearch(searchStr?: string): void;
372
421
  /**
373
422
  * Handle back button click
374
423
  */
@@ -392,36 +441,32 @@ declare abstract class NettyAgGridBase<T extends {
392
441
  * @returns true if has a valid value
393
442
  */
394
443
  protected hasValidValue(value: any): boolean;
395
- private setAgGridTranslations;
396
- /**
397
- * Update a single row in the grid
398
- * @param rowData The updated row data
399
- * @param idField The field name that serves as unique identifier (default: 'id')
400
- */
401
- protected updateRowInGrid(rowData: T, idField?: string): void;
402
- deleteSelected(): Promise<void>;
403
- refreshData(): Promise<void>;
404
- setAccessRights(): Promise<boolean>;
405
444
  protected onFilterTextBoxVisibilityChange(isOpen: boolean): void;
406
- protected abstract loadData(filter?: string): void;
407
- protected abstract initAgGrid(): void;
408
- protected onBtnClick?(e: T): void;
409
- protected deleteRows?(rows: T[]): void;
410
445
  protected getEntityType?(): string;
411
446
  protected selectedData?(): void;
412
447
  protected setFilter(): void;
413
448
  protected popupClose(): void;
414
- onShowHideColumns(): void;
415
- showHideColumnsAsync(): void;
416
- showHideColumns(): void;
417
- showHideEmbeddedColumnsAsync(): void;
418
- showHideEmbeddedColumns(): void;
419
- static ɵfac: i0.ɵɵFactoryDeclaration<NettyAgGridBase<any>, never>;
420
- static ɵcmp: i0.ɵɵComponentDeclaration<NettyAgGridBase<any>, "ntybase-ag-grid-base", never, { "readOnly": { "alias": "readOnly"; "required": false; "isSignal": true; }; "popupFilterValid": { "alias": "popupFilterValid"; "required": false; "isSignal": true; }; "popupValid": { "alias": "popupValid"; "required": false; "isSignal": true; }; "isEmbedded": { "alias": "isEmbedded"; "required": false; "isSignal": true; }; "componantParameterGUID": { "alias": "componantParameterGUID"; "required": false; "isSignal": true; }; "componantParameterType": { "alias": "componantParameterType"; "required": false; "isSignal": true; }; }, { "onElementSelect": "onElementSelect"; "selectedElement": "selectedElement"; }, never, never, true, never>;
449
+ protected loadData(): void;
450
+ deleteSelected(): Promise<void>;
451
+ refreshData(): Promise<void>;
452
+ protected deleteRows(rows: T[]): void;
453
+ static ɵfac: i0.ɵɵFactoryDeclaration<NettyAgGridListBase<any>, never>;
454
+ static ɵcmp: i0.ɵɵComponentDeclaration<NettyAgGridListBase<any>, "ntybase-ag-grid-list-base", never, { "componantParameterGUID": { "alias": "componantParameterGUID"; "required": false; "isSignal": true; }; "componantParameterType": { "alias": "componantParameterType"; "required": false; "isSignal": true; }; "hasFilter": { "alias": "hasFilter"; "required": false; "isSignal": true; }; }, { "onElementSelect": "onElementSelect"; "selectedElement": "selectedElement"; }, never, never, true, never>;
455
+ }
456
+
457
+ declare abstract class NettyAgGridLogBase<T extends NettyEntityLogInterface<T>> extends NettyAgGridBase<T> implements OnInit {
458
+ protected nettyAppsProxy: NettyStandardLogProxy<T>;
459
+ /**
460
+ * Component initialization lifecycle hook
461
+ */
462
+ ngOnInit(): Promise<void>;
463
+ protected loadData(): void;
464
+ static ɵfac: i0.ɵɵFactoryDeclaration<NettyAgGridLogBase<any>, never>;
465
+ static ɵcmp: i0.ɵɵComponentDeclaration<NettyAgGridLogBase<any>, "ntybase-ag-grid-log-base", never, {}, {}, never, never, true, never>;
421
466
  }
422
467
 
423
468
  type UserViewMode = 'fullscreen' | 'sidenav' | 'dialog';
424
- declare abstract class NettyAgGridSaveBase<T> extends NettyAppsBase implements DoCheck {
469
+ declare abstract class NettyAgGridSaveBase<T extends NettyEntityInterface<T>> extends NettyAppsBase implements OnInit, DoCheck {
425
470
  protected router: Router;
426
471
  protected route: ActivatedRoute;
427
472
  protected commonService: CommonService;
@@ -431,19 +476,26 @@ declare abstract class NettyAgGridSaveBase<T> extends NettyAppsBase implements D
431
476
  parameters: i0.InputSignal<string>;
432
477
  embedded: i0.InputSignal<boolean>;
433
478
  isEmbedded: i0.InputSignal<boolean>;
479
+ protected nettyAppsProxy: NettyStandardProxy<T>;
480
+ protected recordType: i0.WritableSignal<string>;
434
481
  currentItem: i0.WritableSignal<T>;
435
482
  initialItem: T;
436
483
  formChanged: boolean;
437
484
  saveForm: NgForm;
438
485
  protected dialogRef: MatDialogRef<any, any> | null;
439
486
  protected dialogData: any;
487
+ constructor();
488
+ ngOnInit(): Promise<void>;
440
489
  updateValid: i0.WritableSignal<boolean>;
441
490
  setUpdateValid(value: boolean): void;
491
+ /**
492
+ * Initialize parameters. This method is called in ngOnInit or constructor
493
+ */
494
+ protected initParameters(urlPath: string): void;
442
495
  /**
443
496
  * Determine view mode based on current route
444
497
  */
445
498
  protected determineViewMode(): void;
446
- ngOnInit(): void;
447
499
  /**
448
500
  * Set data to the form while preserving any unsaved changes
449
501
  * @param item - Data object of type T to populate the form
@@ -463,7 +515,6 @@ declare abstract class NettyAgGridSaveBase<T> extends NettyAppsBase implements D
463
515
  */
464
516
  canDeactivate(): Promise<boolean>;
465
517
  protected getGuidFromParameters(): string;
466
- ngOnChanges(changes: SimpleChanges): void;
467
518
  /**
468
519
  * Close sidenav or navigate back
469
520
  */
@@ -472,8 +523,27 @@ declare abstract class NettyAgGridSaveBase<T> extends NettyAppsBase implements D
472
523
  * Back button clicked
473
524
  */
474
525
  backClicked(): Promise<void>;
475
- protected abstract loadDetailData(): void;
476
526
  protected validateSaveRecord(recordGUID: any): boolean;
527
+ protected abstract createNewRecord(): T;
528
+ /**
529
+ * Save data to API
530
+ * Handles both create and update operations based on record existence
531
+ */
532
+ saveRecord(): void;
533
+ /**
534
+ * Create new record
535
+ */
536
+ insertRecord(): void;
537
+ /**
538
+ * Update record
539
+ */
540
+ updateRecord(): void;
541
+ /**
542
+ * Load data from API based on GUID
543
+ * Handles both new record creation and existing record editing
544
+ * guid - Unique identifier of the record
545
+ */
546
+ loadDetailData(): void;
477
547
  gotoURL(routePrefix: string[], rightSidenav: string[] | undefined, parameters: string, type?: string, dialogComponent?: any, isNewTab?: boolean, isPopup?: boolean): void;
478
548
  popupGotoURL(urlSegments: string[]): void;
479
549
  static ɵfac: i0.ɵɵFactoryDeclaration<NettyAgGridSaveBase<any>, never>;
@@ -481,7 +551,7 @@ declare abstract class NettyAgGridSaveBase<T> extends NettyAppsBase implements D
481
551
  }
482
552
 
483
553
  type AOA = string[][];
484
- declare abstract class ExcelImportBase extends NettyAgGridBase<any> {
554
+ declare abstract class ExcelImportBase extends NettyAgGridListBase<any> {
485
555
  protected dataList: AOA;
486
556
  protected wopts: XLSX.WritingOptions;
487
557
  protected fileName: string;
@@ -881,6 +951,23 @@ declare class NettyBaseApp {
881
951
  static ɵcmp: i0.ɵɵComponentDeclaration<NettyBaseApp, "ntybase-netty-base-app", never, {}, {}, never, never, true, never>;
882
952
  }
883
953
 
954
+ declare class EnvironmentInfo {
955
+ showNettyInfo: boolean;
956
+ protected environmentProxy: EnvironmentProxy;
957
+ get hasConfig(): boolean;
958
+ get version(): string;
959
+ get isProduction(): boolean;
960
+ get defaultLanguage(): string;
961
+ get supportedLanguages(): string[];
962
+ get apiUrl(): string;
963
+ get adminUrl(): string;
964
+ get baseHref(): string;
965
+ get application(): string;
966
+ ngOnInit(): void;
967
+ static ɵfac: i0.ɵɵFactoryDeclaration<EnvironmentInfo, never>;
968
+ static ɵcmp: i0.ɵɵComponentDeclaration<EnvironmentInfo, "ntybase-environment-info", never, { "showNettyInfo": { "alias": "showNettyInfo"; "required": false; }; }, {}, never, never, true, never>;
969
+ }
970
+
884
971
  interface EnvironmentConfig {
885
972
  production: boolean;
886
973
  version: string;
@@ -909,25 +996,6 @@ declare class EnvironmentInfoService {
909
996
  static ɵprov: i0.ɵɵInjectableDeclaration<EnvironmentInfoService>;
910
997
  }
911
998
 
912
- declare class EnvironmentInfo {
913
- private environmentService;
914
- showNettyInfo: boolean;
915
- environmentConfig: EnvironmentConfig | null;
916
- get hasConfig(): boolean;
917
- get version(): string;
918
- get isProduction(): boolean;
919
- get defaultLanguage(): string;
920
- get supportedLanguages(): string[];
921
- get apiUrl(): string;
922
- get adminUrl(): string;
923
- get baseHref(): string;
924
- get application(): string;
925
- constructor(environmentService: EnvironmentInfoService);
926
- ngOnInit(): void;
927
- static ɵfac: i0.ɵɵFactoryDeclaration<EnvironmentInfo, never>;
928
- static ɵcmp: i0.ɵɵComponentDeclaration<EnvironmentInfo, "ntybase-environment-info", never, { "showNettyInfo": { "alias": "showNettyInfo"; "required": false; }; }, {}, never, never, true, never>;
929
- }
930
-
931
999
  declare const NtyLoadingInterceptor: HttpInterceptorFn;
932
1000
 
933
1001
  declare class NtyLoadingComponent {
@@ -949,5 +1017,5 @@ declare class NettyMenuService {
949
1017
  static ɵprov: i0.ɵɵInjectableDeclaration<NettyMenuService>;
950
1018
  }
951
1019
 
952
- export { AlertService, AuthenticationGuard, AuthenticationInterceptor, AuthenticationService, ButtonRenderer, CanDeactivateGuard, CheckboxRenderer, CommonService, ConfirmDialog, CredentialsService, CurrentUserPreference, ENVIRONMENT_CONFIG, EnvironmentInfo, EnvironmentInfoService, ExcelImportBase, ForgotPassword, Login, LoginDto, MFACodeDto, MfaLogin, NettyAgGridBase, NettyAgGridSaveBase, NettyAgGridService, NettyAppsBase, NettyBaseApp, NettyHelper, NettyImageService, NettyMenuService, NtyLoadingComponent, NtyLoadingInterceptor, Ntybase, NtybaseModule, RangeDateTimeFilter, RangeNumberFilter, RangeStringFilter, UrlHelperService, ntyAuthenticationInterceptor };
953
- export type { CanComponentDeactivate, Credentials, EnvironmentConfig, LoginContext, MFACodeContext, UserViewMode };
1020
+ export { AlertService, AuthenticationGuard, AuthenticationInterceptor, AuthenticationService, ButtonRenderer, CanDeactivateGuard, CheckboxRenderer, CommonService, ConfirmDialog, CredentialsService, CurrentUserPreference, ENVIRONMENT_CONFIG, EnvironmentInfo, EnvironmentInfoService, ExcelImportBase, ForgotPassword, Login, LoginDto, MFACodeDto, MfaLogin, NettyAgGridBase, NettyAgGridListBase, NettyAgGridLogBase, NettyAgGridSaveBase, NettyAgGridService, NettyAppsBase, NettyBaseApp, NettyHelper, NettyImageService, NettyMenuService, NtyLoadingComponent, NtyLoadingInterceptor, Ntybase, NtybaseModule, RangeDateTimeFilter, RangeNumberFilter, RangeStringFilter, UrlHelperService, ntyAuthenticationInterceptor };
1021
+ export type { AgGridSelectionModeType, CanComponentDeactivate, Credentials, EnvironmentConfig, LoginContext, MFACodeContext, NettyEntityInterface, NettyEntityLogInterface, UserViewMode };