@elite.framework/ng.ui.core 1.0.57 → 1.0.60

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.
@@ -0,0 +1,92 @@
1
+ import * as i0 from '@angular/core';
2
+ import { OnInit, OnChanges, EventEmitter, SimpleChanges } from '@angular/core';
3
+ import * as i1 from '@angular/common';
4
+ import { UntypedFormGroup } from '@angular/forms';
5
+ import { FormlyFormOptions, FormlyFieldConfig } from '@ngx-formly/core';
6
+ import { TranslateService } from '@ngx-translate/core';
7
+ import { BaseService } from '@elite.framework/ng.core/services';
8
+
9
+ declare class GenericDialogModule {
10
+ static ɵfac: i0.ɵɵFactoryDeclaration<GenericDialogModule, never>;
11
+ static ɵmod: i0.ɵɵNgModuleDeclaration<GenericDialogModule, never, [typeof i1.CommonModule], never>;
12
+ static ɵinj: i0.ɵɵInjectorDeclaration<GenericDialogModule>;
13
+ }
14
+
15
+ declare class GenericDialogComponent implements OnInit, OnChanges {
16
+ translate: TranslateService;
17
+ private swalService;
18
+ form: UntypedFormGroup;
19
+ options: FormlyFormOptions;
20
+ formFields_: FormlyFieldConfig[];
21
+ model_: any;
22
+ service: BaseService;
23
+ formFields: FormlyFieldConfig[];
24
+ model: any;
25
+ apiName: string;
26
+ idField: string;
27
+ dialogMaxWidth: string;
28
+ displayMode: 'drawer' | 'dialog' | 'route' | 'inline' | Partial<Record<'add' | 'edit' | 'view', 'drawer' | 'dialog' | 'route' | 'inline'>>;
29
+ mode: 'full' | 'form-only' | 'table-only';
30
+ forceState: 'create' | 'edit' | 'view' | null;
31
+ drawerVisible: boolean;
32
+ dialogVisible: boolean;
33
+ isViewMode: boolean;
34
+ isEditMode: boolean;
35
+ useConfirmOnSave: boolean;
36
+ loading: boolean;
37
+ errorMsg: string;
38
+ errorMessage: string | any;
39
+ beforeSaveTransform?: (record: any, isEdit: boolean) => any;
40
+ get hideTable(): boolean;
41
+ get autoShowForm(): boolean;
42
+ action: EventEmitter<{
43
+ name: string;
44
+ row: any;
45
+ }>;
46
+ afterSave: EventEmitter<{
47
+ record: any;
48
+ isEdit: boolean;
49
+ response?: any;
50
+ }>;
51
+ afterDelete: EventEmitter<{
52
+ record: any;
53
+ response?: any;
54
+ }>;
55
+ beforeSave: EventEmitter<{
56
+ record: any;
57
+ isEdit: boolean;
58
+ }>;
59
+ beforeDelete: EventEmitter<{
60
+ record: any;
61
+ }>;
62
+ formCancel: EventEmitter<void>;
63
+ formInit: EventEmitter<{
64
+ form: UntypedFormGroup;
65
+ model: any;
66
+ }>;
67
+ dataLoaded: EventEmitter<{
68
+ data: any[];
69
+ total: number;
70
+ }>;
71
+ selectionChange: EventEmitter<{
72
+ selected: any[];
73
+ selectedCount: number;
74
+ }>;
75
+ error: EventEmitter<{
76
+ error: any;
77
+ context: string;
78
+ }>;
79
+ visibleChange: EventEmitter<boolean>;
80
+ ngOnInit(): void;
81
+ ngOnChanges(changes: SimpleChanges): void;
82
+ openForm(mode: 'create' | 'edit' | 'view', model?: any): void;
83
+ closeForm(): void;
84
+ private initializeFormState;
85
+ onSubmit(): void;
86
+ /** New cancel method for form-only mode */
87
+ onCancel(): void;
88
+ static ɵfac: i0.ɵɵFactoryDeclaration<GenericDialogComponent, never>;
89
+ static ɵcmp: i0.ɵɵComponentDeclaration<GenericDialogComponent, "app-generic-dialog", never, { "service": { "alias": "service"; "required": false; }; "formFields": { "alias": "formFields"; "required": false; }; "model": { "alias": "model"; "required": false; }; "apiName": { "alias": "apiName"; "required": false; }; "idField": { "alias": "idField"; "required": false; }; "dialogMaxWidth": { "alias": "dialogMaxWidth"; "required": false; }; "displayMode": { "alias": "displayMode"; "required": false; }; "mode": { "alias": "mode"; "required": false; }; "forceState": { "alias": "forceState"; "required": false; }; "drawerVisible": { "alias": "drawerVisible"; "required": false; }; "dialogVisible": { "alias": "dialogVisible"; "required": false; }; "isViewMode": { "alias": "isViewMode"; "required": false; }; "isEditMode": { "alias": "isEditMode"; "required": false; }; "useConfirmOnSave": { "alias": "useConfirmOnSave"; "required": false; }; "loading": { "alias": "loading"; "required": false; }; "errorMsg": { "alias": "errorMsg"; "required": false; }; "errorMessage": { "alias": "errorMessage"; "required": false; }; "beforeSaveTransform": { "alias": "beforeSaveTransform"; "required": false; }; "hideTable": { "alias": "hideTable"; "required": false; }; "autoShowForm": { "alias": "autoShowForm"; "required": false; }; }, { "action": "action"; "afterSave": "afterSave"; "afterDelete": "afterDelete"; "beforeSave": "beforeSave"; "beforeDelete": "beforeDelete"; "formCancel": "formCancel"; "formInit": "formInit"; "dataLoaded": "dataLoaded"; "selectionChange": "selectionChange"; "error": "error"; "visibleChange": "visibleChange"; }, never, never, true, never>;
90
+ }
91
+
92
+ export { GenericDialogComponent, GenericDialogModule };
@@ -0,0 +1,3 @@
1
+ # @elite.framework/ng.ui.core/generic-search-advanced
2
+
3
+ Secondary entry point of `@elite.framework/ng.ui.core`. It can be used by importing from `@elite.framework/ng.ui.core/generic-search-advanced`.
@@ -0,0 +1,114 @@
1
+ import * as i0 from '@angular/core';
2
+ import { OnInit, EventEmitter } from '@angular/core';
3
+ import * as i1 from '@angular/common';
4
+ import { FormGroup } from '@angular/forms';
5
+ import { FormlyFormOptions, FormlyFieldConfig, FieldType, FieldTypeConfig } from '@ngx-formly/core';
6
+ import { TranslateService } from '@ngx-translate/core';
7
+ import { Popover } from 'primeng/popover';
8
+
9
+ declare class GenericSearchAdvancedModule {
10
+ static ɵfac: i0.ɵɵFactoryDeclaration<GenericSearchAdvancedModule, never>;
11
+ static ɵmod: i0.ɵɵNgModuleDeclaration<GenericSearchAdvancedModule, never, [typeof i1.CommonModule], never>;
12
+ static ɵinj: i0.ɵɵInjectorDeclaration<GenericSearchAdvancedModule>;
13
+ }
14
+
15
+ interface ODataQueryParameters {
16
+ filters: FilterCondition[];
17
+ orderBy: OrderByClause[];
18
+ groupBy: string[];
19
+ top?: number;
20
+ skip?: number;
21
+ expand?: string[];
22
+ }
23
+ interface FilterCondition {
24
+ field: string;
25
+ operator: string;
26
+ value: any;
27
+ logicalOperator?: string;
28
+ }
29
+ interface OrderByClause {
30
+ field: string;
31
+ direction: string;
32
+ }
33
+ interface QueryBuilderField {
34
+ key: string | any;
35
+ label: string | any;
36
+ type: string | any;
37
+ operators: string[];
38
+ }
39
+ interface SortBuilderField {
40
+ key: string;
41
+ label: string;
42
+ }
43
+
44
+ declare class GenericSearchAdvanced implements OnInit {
45
+ overlay: Popover;
46
+ translate: TranslateService;
47
+ private queryBuilder;
48
+ drawerVisible: boolean;
49
+ search: EventEmitter<any>;
50
+ odataSearch: EventEmitter<ODataQueryParameters>;
51
+ form: FormGroup<{}>;
52
+ model: any;
53
+ options: FormlyFormOptions;
54
+ fields: FormlyFieldConfig[];
55
+ fields_: FormlyFieldConfig[];
56
+ enableQueryBuilder: boolean;
57
+ odataConfig: any;
58
+ ngOnInit(): void;
59
+ private buildQueryUIFields;
60
+ onSubmit(): void;
61
+ onReset(): void;
62
+ private buildODataQueryParameters;
63
+ private processComplexField;
64
+ static ɵfac: i0.ɵɵFactoryDeclaration<GenericSearchAdvanced, never>;
65
+ 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"; "odataSearch": "odataSearch"; }, never, never, true, never>;
66
+ }
67
+
68
+ declare class QueryBuilderService {
69
+ buildQueryUIFields(fields: FormlyFieldConfig[]): FormlyFieldConfig[];
70
+ private extractFilterableFields;
71
+ private extractSortableFields;
72
+ private extractExpandableFields;
73
+ private traverseFields;
74
+ private mapFieldType;
75
+ private getOperatorsForType;
76
+ buildODataFromQueryModel(model: any, originalFields: FormlyFieldConfig[]): ODataQueryParameters;
77
+ toODataQueryString(params: ODataQueryParameters): string;
78
+ private formatODataValue;
79
+ static ɵfac: i0.ɵɵFactoryDeclaration<QueryBuilderService, never>;
80
+ static ɵprov: i0.ɵɵInjectableDeclaration<QueryBuilderService>;
81
+ }
82
+
83
+ declare class SortBuilderComponent extends FieldType<FieldTypeConfig> {
84
+ sorts: any[];
85
+ directionOptions: {
86
+ label: string;
87
+ value: string;
88
+ }[];
89
+ ngOnInit(): void;
90
+ addSort(): void;
91
+ removeSort(index: number): void;
92
+ updateValue(): void;
93
+ static ɵfac: i0.ɵɵFactoryDeclaration<SortBuilderComponent, never>;
94
+ static ɵcmp: i0.ɵɵComponentDeclaration<SortBuilderComponent, "formly-sort-builder", never, {}, {}, never, never, true, never>;
95
+ }
96
+
97
+ declare class QueryBuilderComponent extends FieldType<FieldTypeConfig> {
98
+ conditions: any[];
99
+ ngOnInit(): void;
100
+ addCondition(): void;
101
+ removeCondition(index: number): void;
102
+ onFieldChange(condition: any): void;
103
+ updateValue(): void;
104
+ getOperatorsForField(fieldKey: string): any[];
105
+ getOperatorLabel(operator: string): string;
106
+ getFieldType(fieldKey: string): string;
107
+ getInputType(fieldKey: string): string;
108
+ getValuePlaceholder(fieldKey: string): string;
109
+ static ɵfac: i0.ɵɵFactoryDeclaration<QueryBuilderComponent, never>;
110
+ static ɵcmp: i0.ɵɵComponentDeclaration<QueryBuilderComponent, "formly-query-builder", never, {}, {}, never, never, true, never>;
111
+ }
112
+
113
+ export { GenericSearchAdvanced, GenericSearchAdvancedModule, QueryBuilderComponent, QueryBuilderService, SortBuilderComponent };
114
+ export type { FilterCondition, ODataQueryParameters, OrderByClause, QueryBuilderField, SortBuilderField };
@@ -2,11 +2,11 @@ import * as i0 from '@angular/core';
2
2
  import { OnInit, OnDestroy, Injector, ChangeDetectorRef } from '@angular/core';
3
3
  import * as i1 from '@angular/common';
4
4
  import { FieldType, FieldTypeConfig, FormlyFieldConfig } from '@ngx-formly/core';
5
- import { DialogService } from 'primeng/dynamicdialog';
6
5
  import { Observable } from 'rxjs';
7
6
  import { AutoComplete } from 'primeng/autocomplete';
8
7
  import { FormlyFieldProps } from '@ngx-formly/primeng/form-field';
9
8
  import { BaseService } from '@elite.framework/ng.core/services';
9
+ import { GenericDialogComponent } from '@elite.framework/ng.ui.core/generic-dialog';
10
10
 
11
11
  declare class GenericSelectorModule {
12
12
  static ɵfac: i0.ɵɵFactoryDeclaration<GenericSelectorModule, never>;
@@ -36,28 +36,41 @@ interface GenericSelectorProps extends FormlyFieldProps {
36
36
  fixedFilters?: Record<string, any>;
37
37
  defaultValue?: any;
38
38
  defaultItem?: any;
39
+ viewPermissionName?: string;
40
+ editPermissionName?: string;
41
+ addPermissionName?: string;
42
+ idField?: string;
43
+ dialogDisplayMode?: 'drawer' | 'dialog' | 'route' | 'inline' | Partial<Record<'add' | 'edit' | 'view', 'drawer' | 'dialog' | 'route' | 'inline'>>;
44
+ canAdd?: boolean;
45
+ canLookup?: boolean;
46
+ formFields?: FormlyFieldConfig[];
47
+ afterSave?: (field: FormlyFieldConfig, event?: any) => void;
39
48
  }
40
49
  declare class GenericSelectorTypeComponent extends FieldType<FieldTypeConfig<GenericSelectorProps>> implements OnInit, OnDestroy {
41
50
  private svc;
42
51
  private injector;
43
52
  private cdr;
44
53
  autoComp: AutoComplete;
54
+ dialog: GenericDialogComponent;
45
55
  options_: any[];
46
56
  selectedItem: any;
47
57
  loading: boolean;
48
58
  private _offlineList;
49
59
  api: BaseService | any;
50
- dialog: DialogService | any;
51
60
  private valueChangeSubscription;
52
61
  constructor(svc: BaseService, injector: Injector, cdr: ChangeDetectorRef);
53
62
  ngOnInit(): void;
54
63
  ngOnDestroy(): void;
55
64
  private loadDefaultValue;
65
+ afterSave(event: any): void;
56
66
  onSelect(event: any): void;
57
67
  onSelectionChange(val: any): void;
58
68
  private initOfflineSelection;
59
69
  private initOnlineSelection;
60
70
  getFixedFilters(): any;
71
+ onArrowDown(event: any): void;
72
+ onEscape(event: any): void;
73
+ onAddNewClick(): void;
61
74
  onDropdownButtonClick(): void;
62
75
  onDropdownClick(event: any): void;
63
76
  search(event: {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@elite.framework/ng.ui.core",
3
- "version": "1.0.57",
3
+ "version": "1.0.60",
4
4
  "peerDependencies": {
5
5
  "@angular/common": "^20.1.0",
6
6
  "@angular/core": "^20.1.0"
@@ -24,14 +24,14 @@
24
24
  "types": "./base-crud/index.d.ts",
25
25
  "default": "./fesm2022/elite.framework-ng.ui.core-base-crud.mjs"
26
26
  },
27
- "./checkbox": {
28
- "types": "./checkbox/index.d.ts",
29
- "default": "./fesm2022/elite.framework-ng.ui.core-checkbox.mjs"
30
- },
31
27
  "./breadcrumb": {
32
28
  "types": "./breadcrumb/index.d.ts",
33
29
  "default": "./fesm2022/elite.framework-ng.ui.core-breadcrumb.mjs"
34
30
  },
31
+ "./checkbox": {
32
+ "types": "./checkbox/index.d.ts",
33
+ "default": "./fesm2022/elite.framework-ng.ui.core-checkbox.mjs"
34
+ },
35
35
  "./collapsible": {
36
36
  "types": "./collapsible/index.d.ts",
37
37
  "default": "./fesm2022/elite.framework-ng.ui.core-collapsible.mjs"
@@ -44,30 +44,30 @@
44
44
  "types": "./column-settings-popover/index.d.ts",
45
45
  "default": "./fesm2022/elite.framework-ng.ui.core-column-settings-popover.mjs"
46
46
  },
47
- "./datepicker": {
48
- "types": "./datepicker/index.d.ts",
49
- "default": "./fesm2022/elite.framework-ng.ui.core-datepicker.mjs"
47
+ "./condition-editor": {
48
+ "types": "./condition-editor/index.d.ts",
49
+ "default": "./fesm2022/elite.framework-ng.ui.core-condition-editor.mjs"
50
50
  },
51
51
  "./custom-switch": {
52
52
  "types": "./custom-switch/index.d.ts",
53
53
  "default": "./fesm2022/elite.framework-ng.ui.core-custom-switch.mjs"
54
54
  },
55
- "./condition-editor": {
56
- "types": "./condition-editor/index.d.ts",
57
- "default": "./fesm2022/elite.framework-ng.ui.core-condition-editor.mjs"
55
+ "./datepicker": {
56
+ "types": "./datepicker/index.d.ts",
57
+ "default": "./fesm2022/elite.framework-ng.ui.core-datepicker.mjs"
58
58
  },
59
59
  "./deactivation-reason": {
60
60
  "types": "./deactivation-reason/index.d.ts",
61
61
  "default": "./fesm2022/elite.framework-ng.ui.core-deactivation-reason.mjs"
62
62
  },
63
- "./form-button": {
64
- "types": "./form-button/index.d.ts",
65
- "default": "./fesm2022/elite.framework-ng.ui.core-form-button.mjs"
66
- },
67
63
  "./excel-import": {
68
64
  "types": "./excel-import/index.d.ts",
69
65
  "default": "./fesm2022/elite.framework-ng.ui.core-excel-import.mjs"
70
66
  },
67
+ "./form-button": {
68
+ "types": "./form-button/index.d.ts",
69
+ "default": "./fesm2022/elite.framework-ng.ui.core-form-button.mjs"
70
+ },
71
71
  "./form-field": {
72
72
  "types": "./form-field/index.d.ts",
73
73
  "default": "./fesm2022/elite.framework-ng.ui.core-form-field.mjs"
@@ -84,22 +84,22 @@
84
84
  "types": "./formly-avatar-label/index.d.ts",
85
85
  "default": "./fesm2022/elite.framework-ng.ui.core-formly-avatar-label.mjs"
86
86
  },
87
- "./formly-button-selector": {
88
- "types": "./formly-button-selector/index.d.ts",
89
- "default": "./fesm2022/elite.framework-ng.ui.core-formly-button-selector.mjs"
90
- },
91
87
  "./formly-button": {
92
88
  "types": "./formly-button/index.d.ts",
93
89
  "default": "./fesm2022/elite.framework-ng.ui.core-formly-button.mjs"
94
90
  },
95
- "./formly-split-button": {
96
- "types": "./formly-split-button/index.d.ts",
97
- "default": "./fesm2022/elite.framework-ng.ui.core-formly-split-button.mjs"
91
+ "./formly-button-selector": {
92
+ "types": "./formly-button-selector/index.d.ts",
93
+ "default": "./fesm2022/elite.framework-ng.ui.core-formly-button-selector.mjs"
98
94
  },
99
95
  "./formly-presets": {
100
96
  "types": "./formly-presets/index.d.ts",
101
97
  "default": "./fesm2022/elite.framework-ng.ui.core-formly-presets.mjs"
102
98
  },
99
+ "./formly-split-button": {
100
+ "types": "./formly-split-button/index.d.ts",
101
+ "default": "./fesm2022/elite.framework-ng.ui.core-formly-split-button.mjs"
102
+ },
103
103
  "./formly-ui": {
104
104
  "types": "./formly-ui/index.d.ts",
105
105
  "default": "./fesm2022/elite.framework-ng.ui.core-formly-ui.mjs"
@@ -128,6 +128,10 @@
128
128
  "types": "./generic-crud-table/index.d.ts",
129
129
  "default": "./fesm2022/elite.framework-ng.ui.core-generic-crud-table.mjs"
130
130
  },
131
+ "./generic-dialog": {
132
+ "types": "./generic-dialog/index.d.ts",
133
+ "default": "./fesm2022/elite.framework-ng.ui.core-generic-dialog.mjs"
134
+ },
131
135
  "./generic-errormessage": {
132
136
  "types": "./generic-errormessage/index.d.ts",
133
137
  "default": "./fesm2022/elite.framework-ng.ui.core-generic-errormessage.mjs"
@@ -144,6 +148,10 @@
144
148
  "types": "./generic-search/index.d.ts",
145
149
  "default": "./fesm2022/elite.framework-ng.ui.core-generic-search.mjs"
146
150
  },
151
+ "./generic-search-advanced": {
152
+ "types": "./generic-search-advanced/index.d.ts",
153
+ "default": "./fesm2022/elite.framework-ng.ui.core-generic-search-advanced.mjs"
154
+ },
147
155
  "./generic-selector": {
148
156
  "types": "./generic-selector/index.d.ts",
149
157
  "default": "./fesm2022/elite.framework-ng.ui.core-generic-selector.mjs"
@@ -180,14 +188,14 @@
180
188
  "types": "./odata-query-builder/index.d.ts",
181
189
  "default": "./fesm2022/elite.framework-ng.ui.core-odata-query-builder.mjs"
182
190
  },
183
- "./repeat": {
184
- "types": "./repeat/index.d.ts",
185
- "default": "./fesm2022/elite.framework-ng.ui.core-repeat.mjs"
186
- },
187
191
  "./radio": {
188
192
  "types": "./radio/index.d.ts",
189
193
  "default": "./fesm2022/elite.framework-ng.ui.core-radio.mjs"
190
194
  },
195
+ "./repeat": {
196
+ "types": "./repeat/index.d.ts",
197
+ "default": "./fesm2022/elite.framework-ng.ui.core-repeat.mjs"
198
+ },
191
199
  "./select": {
192
200
  "types": "./select/index.d.ts",
193
201
  "default": "./fesm2022/elite.framework-ng.ui.core-select.mjs"