@elite.framework/ng.ui.core 1.0.81 → 1.0.83

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.
@@ -1,9 +1,12 @@
1
1
  import * as i0 from '@angular/core';
2
- import { OnInit, ElementRef } from '@angular/core';
2
+ import { OnInit, OnDestroy, ElementRef } from '@angular/core';
3
3
  import * as i1 from '@angular/common';
4
4
  import { FormGroup } from '@angular/forms';
5
5
  import { FormlyFieldConfig, FormlyFormOptions } from '@ngx-formly/core';
6
6
  import { DynamicDialogRef, DynamicDialogConfig } from 'primeng/dynamicdialog';
7
+ import { MenuItem } from 'primeng/api';
8
+ import { SafeResourceUrl } from '@angular/platform-browser';
9
+ import { TranslateService } from '@ngx-translate/core';
7
10
 
8
11
  declare class GenericReportModule {
9
12
  static ɵfac: i0.ɵɵFactoryDeclaration<GenericReportModule, never>;
@@ -12,9 +15,6 @@ declare class GenericReportModule {
12
15
  }
13
16
 
14
17
  interface ExportConfig {
15
- columns: {
16
- [key: string]: string;
17
- };
18
18
  filters: any;
19
19
  exportType: ExportType;
20
20
  fileName?: string;
@@ -26,25 +26,21 @@ declare enum ExportType {
26
26
  EXCEL = 3,
27
27
  PRINT = 4
28
28
  }
29
- declare class GenericReportComponent implements OnInit {
29
+ declare class GenericReportComponent implements OnInit, OnDestroy {
30
30
  ref: DynamicDialogRef;
31
31
  config: DynamicDialogConfig;
32
32
  previewContainer: ElementRef;
33
33
  filterFields: FormlyFieldConfig[];
34
34
  fields_: FormlyFieldConfig[];
35
- availableColumns: Array<{
36
- key: string;
37
- displayName: string;
38
- selected: boolean;
39
- customName?: string;
40
- }>;
41
35
  exportType: ExportType;
42
36
  fileName: string;
43
37
  showFilters: boolean;
44
38
  loading: boolean;
45
- activeTabIndex: number;
46
39
  currentDate: Date;
47
40
  previewData: any[];
41
+ htmlExportContent: string;
42
+ showHtmlInIframe: boolean;
43
+ previewColumns: any[];
48
44
  options: FormlyFormOptions;
49
45
  enableQueryBuilder: boolean;
50
46
  localExport: boolean;
@@ -58,39 +54,67 @@ declare class GenericReportComponent implements OnInit {
58
54
  label: string;
59
55
  icon: string;
60
56
  }[];
57
+ exportMenuItems: MenuItem[];
61
58
  private destroy$;
59
+ private dialogService;
62
60
  private translate;
63
61
  private restService;
64
62
  private queryBuilder;
63
+ private sanitizer;
65
64
  constructor(ref: DynamicDialogRef, config: DynamicDialogConfig);
65
+ ngOnDestroy(): void;
66
66
  ngOnInit(): void;
67
- get filterCount(): any;
67
+ get filterCount(): number;
68
68
  private buildQueryUIFields;
69
69
  private initializeComponent;
70
+ private initializeFilterFields;
71
+ private initializeExportConfig;
72
+ private initializeExportMenu;
73
+ private openReportNameDialog;
70
74
  private getDefaultFilterFields;
71
- get selectedColumns(): any[];
72
- onExportTypeChange(type: ExportType): void;
73
- onColumnToggle(column: any): void;
74
- onCustomNameChange(column: any): void;
75
- selectAllColumns(): void;
76
- deselectAllColumns(): void;
77
75
  generatePreview(): void;
78
- getPreviewValue(row: any, columnKey: string): string;
79
- getExportButtonText(): string;
80
76
  onSubmit(): void;
81
77
  onReset(): void;
82
78
  onExport(): void;
83
- private generateHtmlReport;
79
+ private createExportConfig;
84
80
  private handleApiExport;
85
- loadPreviewData(): void;
86
- private getPreviewColumns;
81
+ private createRequestOptions;
82
+ private handleExportResponse;
83
+ private isMobileDevice;
84
+ private isIOS;
85
+ private isAndroid;
86
+ showPdfModal: boolean;
87
+ currentPdfUrl?: SafeResourceUrl;
88
+ currentFileName: string;
89
+ private showPdfInMobile;
90
+ private sanitizeUrl;
91
+ onPdfDownload(): void;
92
+ private downloadBinaryExport;
93
+ private showHtmlExport;
94
+ private setIframeContent;
95
+ print(): void;
96
+ getExportButtonText(): string;
97
+ onExportTypeChange(type: ExportType): void;
98
+ getCurrentExportTypeIcon(): string;
87
99
  private base64ToBlob;
88
100
  private downloadFile;
89
101
  private getFileExtension;
90
- printPreview(): void;
102
+ private getMimeType;
103
+ private cleanHtmlContent;
91
104
  static ɵfac: i0.ɵɵFactoryDeclaration<GenericReportComponent, never>;
92
105
  static ɵcmp: i0.ɵɵComponentDeclaration<GenericReportComponent, "app-generic-report", never, { "filterFields": { "alias": "filterFields"; "required": false; }; "enableQueryBuilder": { "alias": "enableQueryBuilder"; "required": false; }; "localExport": { "alias": "localExport"; "required": false; }; "queryString": { "alias": "queryString"; "required": false; }; "apiName": { "alias": "apiName"; "required": false; }; "model": { "alias": "model"; "required": false; }; }, {}, never, never, true, never>;
93
106
  }
94
107
 
95
- export { ExportType, GenericReportComponent, GenericReportModule };
108
+ declare class ReportNameDialogComponent {
109
+ fileName: string;
110
+ ref: DynamicDialogRef<any>;
111
+ config: DynamicDialogConfig<any, any>;
112
+ translate: TranslateService;
113
+ ngOnInit(): void;
114
+ save(): void;
115
+ static ɵfac: i0.ɵɵFactoryDeclaration<ReportNameDialogComponent, never>;
116
+ static ɵcmp: i0.ɵɵComponentDeclaration<ReportNameDialogComponent, "app-report-name-dialog", never, {}, {}, never, never, true, never>;
117
+ }
118
+
119
+ export { ExportType, GenericReportComponent, GenericReportModule, ReportNameDialogComponent };
96
120
  export type { ExportConfig };
@@ -1,7 +1,7 @@
1
1
  import * as i0 from '@angular/core';
2
2
  import { OnInit, EventEmitter } from '@angular/core';
3
3
  import * as i1 from '@angular/common';
4
- import { FormGroup } from '@angular/forms';
4
+ import { FormGroup, FormControl, FormArray } from '@angular/forms';
5
5
  import { FormlyFormOptions, FormlyFieldConfig, FieldType, FieldTypeConfig } from '@ngx-formly/core';
6
6
  import { TranslateService } from '@ngx-translate/core';
7
7
  import { QueryParameters } from '@elite.framework/ng.core/services';
@@ -24,7 +24,8 @@ declare class GenericSearchAdvanced implements OnInit {
24
24
  options: FormlyFormOptions;
25
25
  fields: FormlyFieldConfig[];
26
26
  fields_: FormlyFieldConfig[];
27
- enableQueryBuilder: boolean;
27
+ enableSelect: boolean;
28
+ enableGroup: boolean;
28
29
  odataConfig: any;
29
30
  ngOnInit(): void;
30
31
  get filterCount(): any;
@@ -34,44 +35,39 @@ declare class GenericSearchAdvanced implements OnInit {
34
35
  toggleDrawer(): void;
35
36
  closeDrawer(): void;
36
37
  static ɵfac: i0.ɵɵFactoryDeclaration<GenericSearchAdvanced, never>;
37
- static ɵcmp: i0.ɵɵComponentDeclaration<GenericSearchAdvanced, "lib-generic-search-advanced", never, { "model": { "alias": "model"; "required": false; }; "fields": { "alias": "fields"; "required": false; }; "enableQueryBuilder": { "alias": "enableQueryBuilder"; "required": false; }; "odataConfig": { "alias": "odataConfig"; "required": false; }; }, { "search": "search"; "paginationChange": "paginationChange"; "odataSearch": "odataSearch"; }, never, never, true, never>;
38
- }
39
-
40
- interface QueryBuilderField {
41
- key: string;
42
- label: string;
43
- type: string;
44
- operators: string[];
45
- props?: any;
46
- defaultOperator?: string;
47
- defaultValue?: any;
48
- }
49
- interface SortBuilderField {
50
- key: string;
51
- label: string;
38
+ static ɵcmp: i0.ɵɵComponentDeclaration<GenericSearchAdvanced, "lib-generic-search-advanced", never, { "model": { "alias": "model"; "required": false; }; "fields": { "alias": "fields"; "required": false; }; "enableSelect": { "alias": "enableSelect"; "required": false; }; "enableGroup": { "alias": "enableGroup"; "required": false; }; "odataConfig": { "alias": "odataConfig"; "required": false; }; }, { "search": "search"; "paginationChange": "paginationChange"; "odataSearch": "odataSearch"; }, never, never, true, never>;
52
39
  }
53
40
 
54
41
  declare class QueryBuilderService {
55
42
  translate: TranslateService;
56
43
  private fieldTypeConfig;
57
- buildQueryUIFields(fields: FormlyFieldConfig[]): FormlyFieldConfig[];
44
+ buildQueryUIFields(fields: FormlyFieldConfig[], enableSelect: boolean, enableGroup: boolean): FormlyFieldConfig[];
58
45
  private getQueryTabs;
59
46
  private getFilterTabFields;
60
47
  private getSortingTabFields;
48
+ private getGroupingTabFields;
49
+ private getColumnsTabFields;
61
50
  private getPaginationTabFields;
62
- private getFilterCount;
63
51
  private extractFilterableFields;
64
52
  private extractSortableFields;
65
- private extractExpandableFields;
53
+ private extractGroupableFields;
54
+ private extractSelectableFields;
66
55
  private traverseFields;
56
+ getAppliedFiltersCount(model: any): {
57
+ total: number;
58
+ breakdown: any;
59
+ };
67
60
  private mapFieldType;
61
+ private getDataType;
68
62
  private getOperatorsForType;
69
63
  buildODataFromQueryModel(model: any, originalFields: FormlyFieldConfig[]): QueryParameters;
70
64
  toODataQueryString(params: QueryParameters): string;
71
65
  parseODataQuery(queryString: string): QueryParameters;
72
- parseODataToQueryModel(queryString: string, originalFields: FormlyFieldConfig[]): any;
73
- buildODataQueryString(model: any, originalFields: FormlyFieldConfig[]): string;
74
- getFieldConfig(fieldKey: string, fields: QueryBuilderField[]): any;
66
+ getFieldConfig(fieldKey: string, fields: any[]): any;
67
+ getAggregateFunctions(): {
68
+ label: string;
69
+ value: string;
70
+ }[];
75
71
  static ɵfac: i0.ɵɵFactoryDeclaration<QueryBuilderService, never>;
76
72
  static ɵprov: i0.ɵɵInjectableDeclaration<QueryBuilderService>;
77
73
  }
@@ -158,6 +154,112 @@ declare class TabTypeComponent extends FieldType<FormlyFieldConfig> {
158
154
  static ɵcmp: i0.ɵɵComponentDeclaration<TabTypeComponent, "formly-tab-type", never, {}, {}, never, never, true, never>;
159
155
  }
160
156
 
157
+ interface QueryBuilderField {
158
+ key: string;
159
+ label: string;
160
+ type: string;
161
+ props: any;
162
+ operators: string[];
163
+ defaultOperator: string;
164
+ defaultValue: any;
165
+ }
166
+ interface SortBuilderField {
167
+ key: string;
168
+ label: string;
169
+ }
170
+ interface GroupByField {
171
+ key: string;
172
+ label: string;
173
+ dataType: string;
174
+ }
175
+ interface SelectField {
176
+ key: string;
177
+ label: string;
178
+ dataType: string;
179
+ isNumeric: boolean;
180
+ defaultVisible: boolean;
181
+ aggregatable: boolean;
182
+ }
183
+ interface ColumnConfig {
184
+ field: string;
185
+ displayName: string;
186
+ isVisible: boolean;
187
+ aggregateFunction?: string;
188
+ isNumeric: boolean;
189
+ aggregatable: boolean;
190
+ }
191
+ interface GroupConfig {
192
+ field: string;
193
+ displayName: string;
194
+ showTotal: boolean;
195
+ }
196
+
197
+ declare class ColumnsBuilderComponent extends FieldType<FieldTypeConfig> implements OnInit {
198
+ dragStartIndex: number;
199
+ private _columnsForm;
200
+ aggregateFunctions: {
201
+ label: string;
202
+ value: string;
203
+ }[];
204
+ get columns(): SelectField[];
205
+ get columnsForm(): FormGroup;
206
+ get visibleColumnsCount(): number;
207
+ get numericColumnsCount(): number;
208
+ get aggregatedColumnsCount(): number;
209
+ ngOnInit(): void;
210
+ initializeForm(): void;
211
+ private setupValueChanges;
212
+ private updateModel;
213
+ onFormChange(): void;
214
+ onDragStart(event: DragEvent, index: number): void;
215
+ onDragOver(event: DragEvent): void;
216
+ onDrop(event: DragEvent, dropIndex: number): void;
217
+ onDragEnter(event: DragEvent): void;
218
+ onDragLeave(event: DragEvent): void;
219
+ private removeDragStyles;
220
+ private updateColumnOrders;
221
+ getColumnControl(columnKey: string, controlName: string): FormControl;
222
+ private getDefaultValue;
223
+ isColumnVisible(columnKey: string): boolean;
224
+ hasAggregateFunction(columnKey: string): boolean;
225
+ getAggregateFunctionValue(columnKey: string): string;
226
+ toggleAll(visible: boolean): void;
227
+ resetToDefault(): void;
228
+ getAggregateLabel(functionName: string): string;
229
+ static ɵfac: i0.ɵɵFactoryDeclaration<ColumnsBuilderComponent, never>;
230
+ static ɵcmp: i0.ɵɵComponentDeclaration<ColumnsBuilderComponent, "formly-columns-builder", never, {}, {}, never, never, true, never>;
231
+ }
232
+
233
+ declare class GroupBuilderComponent extends FieldType<FieldTypeConfig> implements OnInit {
234
+ private _groups;
235
+ dragStartIndex: number;
236
+ get groups(): FormArray;
237
+ get availableFields(): GroupByField[];
238
+ get maxGroups(): number;
239
+ ngOnInit(): void;
240
+ private initializeFormArray;
241
+ private setupValueChanges;
242
+ private updateModel;
243
+ onFormChange(): void;
244
+ private createGroupControl;
245
+ addGroup(): void;
246
+ removeGroup(index: number): void;
247
+ onDragStart(event: DragEvent, index: number): void;
248
+ onDragOver(event: DragEvent): void;
249
+ onDrop(event: DragEvent, dropIndex: number): void;
250
+ onDragEnter(event: DragEvent): void;
251
+ onDragLeave(event: DragEvent): void;
252
+ onDragEnd(event: DragEvent): void;
253
+ private removeDragStyles;
254
+ moveGroup(fromIndex: number, toIndex: number): void;
255
+ getGroupControl(index: number, controlName: string): FormControl;
256
+ onFieldChange(index: number, fieldKey: string): void;
257
+ getFieldLabel(fieldKey: string): string;
258
+ canAddMoreGroups(): boolean;
259
+ static ɵfac: i0.ɵɵFactoryDeclaration<GroupBuilderComponent, never>;
260
+ static ɵcmp: i0.ɵɵComponentDeclaration<GroupBuilderComponent, "formly-group-builder", never, {}, {}, never, never, true, never>;
261
+ }
262
+
161
263
  interface GroupTypeProps {
162
264
  label?: string;
163
265
  description?: string;
@@ -193,5 +295,5 @@ declare class GroupTypeComponent extends FieldType<FormlyFieldConfig<GroupTypePr
193
295
 
194
296
  declare const formlyConfig: i0.Provider;
195
297
 
196
- export { GenericSearchAdvanced, GenericSearchAdvancedModule, GroupTypeComponent, QueryBuilderComponent, QueryBuilderService, SortBuilderComponent, TabTypeComponent, formlyConfig };
197
- export type { GroupTypeProps, QueryBuilderField, SortBuilderField };
298
+ export { ColumnsBuilderComponent, GenericSearchAdvanced, GenericSearchAdvancedModule, GroupBuilderComponent, GroupTypeComponent, QueryBuilderComponent, QueryBuilderService, SortBuilderComponent, TabTypeComponent, formlyConfig };
299
+ export type { ColumnConfig, GroupByField, GroupConfig, GroupTypeProps, QueryBuilderField, SelectField, SortBuilderField };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@elite.framework/ng.ui.core",
3
- "version": "1.0.81",
3
+ "version": "1.0.83",
4
4
  "peerDependencies": {
5
5
  "@angular/common": "^20.1.0",
6
6
  "@angular/core": "^20.1.0"
@@ -104,14 +104,14 @@
104
104
  "types": "./formly-ui/index.d.ts",
105
105
  "default": "./fesm2022/elite.framework-ng.ui.core-formly-ui.mjs"
106
106
  },
107
- "./formly-ui-all": {
108
- "types": "./formly-ui-all/index.d.ts",
109
- "default": "./fesm2022/elite.framework-ng.ui.core-formly-ui-all.mjs"
110
- },
111
107
  "./formly-username-with-domain": {
112
108
  "types": "./formly-username-with-domain/index.d.ts",
113
109
  "default": "./fesm2022/elite.framework-ng.ui.core-formly-username-with-domain.mjs"
114
110
  },
111
+ "./formly-ui-all": {
112
+ "types": "./formly-ui-all/index.d.ts",
113
+ "default": "./fesm2022/elite.framework-ng.ui.core-formly-ui-all.mjs"
114
+ },
115
115
  "./generic-autocomplete": {
116
116
  "types": "./generic-autocomplete/index.d.ts",
117
117
  "default": "./fesm2022/elite.framework-ng.ui.core-generic-autocomplete.mjs"
@@ -132,14 +132,14 @@
132
132
  "types": "./generic-dialog/index.d.ts",
133
133
  "default": "./fesm2022/elite.framework-ng.ui.core-generic-dialog.mjs"
134
134
  },
135
- "./generic-formly-fields": {
136
- "types": "./generic-formly-fields/index.d.ts",
137
- "default": "./fesm2022/elite.framework-ng.ui.core-generic-formly-fields.mjs"
138
- },
139
135
  "./generic-errormessage": {
140
136
  "types": "./generic-errormessage/index.d.ts",
141
137
  "default": "./fesm2022/elite.framework-ng.ui.core-generic-errormessage.mjs"
142
138
  },
139
+ "./generic-formly-fields": {
140
+ "types": "./generic-formly-fields/index.d.ts",
141
+ "default": "./fesm2022/elite.framework-ng.ui.core-generic-formly-fields.mjs"
142
+ },
143
143
  "./generic-loadingspinner": {
144
144
  "types": "./generic-loadingspinner/index.d.ts",
145
145
  "default": "./fesm2022/elite.framework-ng.ui.core-generic-loadingspinner.mjs"
@@ -176,10 +176,6 @@
176
176
  "types": "./icon-picker/index.d.ts",
177
177
  "default": "./fesm2022/elite.framework-ng.ui.core-icon-picker.mjs"
178
178
  },
179
- "./input-switch": {
180
- "types": "./input-switch/index.d.ts",
181
- "default": "./fesm2022/elite.framework-ng.ui.core-input-switch.mjs"
182
- },
183
179
  "./input": {
184
180
  "types": "./input/index.d.ts",
185
181
  "default": "./fesm2022/elite.framework-ng.ui.core-input.mjs"
@@ -188,6 +184,10 @@
188
184
  "types": "./input-with-icon/index.d.ts",
189
185
  "default": "./fesm2022/elite.framework-ng.ui.core-input-with-icon.mjs"
190
186
  },
187
+ "./input-switch": {
188
+ "types": "./input-switch/index.d.ts",
189
+ "default": "./fesm2022/elite.framework-ng.ui.core-input-switch.mjs"
190
+ },
191
191
  "./label-type": {
192
192
  "types": "./label-type/index.d.ts",
193
193
  "default": "./fesm2022/elite.framework-ng.ui.core-label-type.mjs"
@@ -220,14 +220,14 @@
220
220
  "types": "./tabs/index.d.ts",
221
221
  "default": "./fesm2022/elite.framework-ng.ui.core-tabs.mjs"
222
222
  },
223
- "./text-editor": {
224
- "types": "./text-editor/index.d.ts",
225
- "default": "./fesm2022/elite.framework-ng.ui.core-text-editor.mjs"
226
- },
227
223
  "./tag-type": {
228
224
  "types": "./tag-type/index.d.ts",
229
225
  "default": "./fesm2022/elite.framework-ng.ui.core-tag-type.mjs"
230
226
  },
227
+ "./text-editor": {
228
+ "types": "./text-editor/index.d.ts",
229
+ "default": "./fesm2022/elite.framework-ng.ui.core-text-editor.mjs"
230
+ },
231
231
  "./textarea": {
232
232
  "types": "./textarea/index.d.ts",
233
233
  "default": "./fesm2022/elite.framework-ng.ui.core-textarea.mjs"