@elite.framework/ng.ui.core 1.0.56 → 1.0.59

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,5 +1,5 @@
1
1
  import * as i0 from '@angular/core';
2
- import { EventEmitter } from '@angular/core';
2
+ import { OnInit, OnChanges, EventEmitter, SimpleChanges } from '@angular/core';
3
3
  import * as i1 from '@angular/common';
4
4
  import * as i2 from '@elite.framework/ng.ui.core/generic-button';
5
5
  import { PaginatorState } from 'primeng/paginator';
@@ -23,7 +23,7 @@ interface PageChangePayload extends PaginatorState {
23
23
  filters?: Record<string, any>;
24
24
  }
25
25
  type ActionsMode = 'buttons' | 'menu';
26
- declare class GenericCrudTableComponent<T> {
26
+ declare class GenericCrudTableComponent<T> implements OnInit, OnChanges {
27
27
  genericTable: GenericTable<T>;
28
28
  translate: TranslateService;
29
29
  private swalService;
@@ -34,7 +34,7 @@ declare class GenericCrudTableComponent<T> {
34
34
  columns: FormlyFieldConfig[];
35
35
  dialogMaxWidth: string;
36
36
  isViewMode: boolean;
37
- displayMode: 'drawer' | 'dialog' | 'route' | Partial<Record<'add' | 'edit' | 'view', 'drawer' | 'dialog' | 'route'>>;
37
+ displayMode: 'drawer' | 'dialog' | 'route' | 'inline' | Partial<Record<'add' | 'edit' | 'view', 'drawer' | 'dialog' | 'route' | 'inline'>>;
38
38
  useConfirmOnSave: boolean;
39
39
  isEditMode: boolean;
40
40
  drawerVisible: boolean;
@@ -101,6 +101,24 @@ declare class GenericCrudTableComponent<T> {
101
101
  breadcrumb: MenuItem[] | undefined;
102
102
  get breadcrumb_(): MenuItem[] | undefined;
103
103
  get rtl(): boolean;
104
+ /**
105
+ * Modes to control what parts of the component are visible
106
+ * - 'full': Table + CRUD operations (default)
107
+ * - 'form-only': Only show form (for create/edit/view)
108
+ * - 'table-only': Only show table (read-only mode)
109
+ */
110
+ mode: 'full' | 'form-only' | 'table-only';
111
+ /** Force the component to show specific state */
112
+ forceState: 'create' | 'edit' | 'view' | null;
113
+ /** Hide table completely when in form-only mode */
114
+ get hideTable(): boolean;
115
+ /** Auto-show form when in form-only mode with forceState */
116
+ get autoShowForm(): boolean;
117
+ ngOnInit(): void;
118
+ ngOnChanges(changes: SimpleChanges): void;
119
+ private initializeFormState;
120
+ /** New cancel method for form-only mode */
121
+ onCancel(): void;
104
122
  /**
105
123
  * Handles button click in a unified way.
106
124
  * - If btn.action is defined, execute it.
@@ -123,7 +141,7 @@ declare class GenericCrudTableComponent<T> {
123
141
  onSingleItemAction(btn: ButtonConfig): void;
124
142
  onInternalBulkAction(btn: ButtonConfig): void;
125
143
  static ɵfac: i0.ɵɵFactoryDeclaration<GenericCrudTableComponent<any>, never>;
126
- static ɵcmp: i0.ɵɵComponentDeclaration<GenericCrudTableComponent<any>, "app-generic-crud-table", never, { "data": { "alias": "data"; "required": false; }; "formFields": { "alias": "formFields"; "required": false; }; "columns": { "alias": "columns"; "required": false; }; "dialogMaxWidth": { "alias": "dialogMaxWidth"; "required": false; }; "isViewMode": { "alias": "isViewMode"; "required": false; }; "displayMode": { "alias": "displayMode"; "required": false; }; "useConfirmOnSave": { "alias": "useConfirmOnSave"; "required": false; }; "isEditMode": { "alias": "isEditMode"; "required": false; }; "drawerVisible": { "alias": "drawerVisible"; "required": false; }; "dialogVisible": { "alias": "dialogVisible"; "required": false; }; "model": { "alias": "model"; "required": false; }; "loading": { "alias": "loading"; "required": false; }; "errorMsg": { "alias": "errorMsg"; "required": false; }; "errorMessage": { "alias": "errorMessage"; "required": false; }; "actions": { "alias": "actions"; "required": false; }; "actionsMode": { "alias": "actionsMode"; "required": false; }; "filters": { "alias": "filters"; "required": false; }; "filterModel": { "alias": "filterModel"; "required": false; }; "showSearch": { "alias": "showSearch"; "required": false; }; "first": { "alias": "first"; "required": false; }; "rows": { "alias": "rows"; "required": false; }; "totalRecords": { "alias": "totalRecords"; "required": false; }; "rowSelectable": { "alias": "rowSelectable"; "required": false; }; "scrollHeight": { "alias": "scrollHeight"; "required": false; }; "paginator": { "alias": "paginator"; "required": false; }; "service": { "alias": "service"; "required": false; }; "idField": { "alias": "idField"; "required": false; }; "showRowSelectionCheckbox": { "alias": "showRowSelectionCheckbox"; "required": false; }; "showAddButton": { "alias": "showAddButton"; "required": false; }; "addPermissionName": { "alias": "addPermissionName"; "required": false; }; "addButtonConfigs": { "alias": "addButtonConfigs"; "required": false; }; "bulkActionButtons": { "alias": "bulkActionButtons"; "required": false; }; "singleActionButtons": { "alias": "singleActionButtons"; "required": false; }; "breadcrumb": { "alias": "breadcrumb"; "required": false; }; "beforeSave": { "alias": "beforeSave"; "required": false; }; }, { "action": "action"; "bulkAction": "bulkAction"; "singleAction": "singleAction"; "search": "search"; "pageChange": "pageChange"; "onSearch": "onSearch"; "visibleChange": "visibleChange"; "rowSelect": "rowSelect"; }, never, never, true, never>;
144
+ static ɵcmp: i0.ɵɵComponentDeclaration<GenericCrudTableComponent<any>, "app-generic-crud-table", never, { "data": { "alias": "data"; "required": false; }; "formFields": { "alias": "formFields"; "required": false; }; "columns": { "alias": "columns"; "required": false; }; "dialogMaxWidth": { "alias": "dialogMaxWidth"; "required": false; }; "isViewMode": { "alias": "isViewMode"; "required": false; }; "displayMode": { "alias": "displayMode"; "required": false; }; "useConfirmOnSave": { "alias": "useConfirmOnSave"; "required": false; }; "isEditMode": { "alias": "isEditMode"; "required": false; }; "drawerVisible": { "alias": "drawerVisible"; "required": false; }; "dialogVisible": { "alias": "dialogVisible"; "required": false; }; "model": { "alias": "model"; "required": false; }; "loading": { "alias": "loading"; "required": false; }; "errorMsg": { "alias": "errorMsg"; "required": false; }; "errorMessage": { "alias": "errorMessage"; "required": false; }; "actions": { "alias": "actions"; "required": false; }; "actionsMode": { "alias": "actionsMode"; "required": false; }; "filters": { "alias": "filters"; "required": false; }; "filterModel": { "alias": "filterModel"; "required": false; }; "showSearch": { "alias": "showSearch"; "required": false; }; "first": { "alias": "first"; "required": false; }; "rows": { "alias": "rows"; "required": false; }; "totalRecords": { "alias": "totalRecords"; "required": false; }; "rowSelectable": { "alias": "rowSelectable"; "required": false; }; "scrollHeight": { "alias": "scrollHeight"; "required": false; }; "paginator": { "alias": "paginator"; "required": false; }; "service": { "alias": "service"; "required": false; }; "idField": { "alias": "idField"; "required": false; }; "showRowSelectionCheckbox": { "alias": "showRowSelectionCheckbox"; "required": false; }; "showAddButton": { "alias": "showAddButton"; "required": false; }; "addPermissionName": { "alias": "addPermissionName"; "required": false; }; "addButtonConfigs": { "alias": "addButtonConfigs"; "required": false; }; "bulkActionButtons": { "alias": "bulkActionButtons"; "required": false; }; "singleActionButtons": { "alias": "singleActionButtons"; "required": false; }; "breadcrumb": { "alias": "breadcrumb"; "required": false; }; "mode": { "alias": "mode"; "required": false; }; "forceState": { "alias": "forceState"; "required": false; }; "hideTable": { "alias": "hideTable"; "required": false; }; "autoShowForm": { "alias": "autoShowForm"; "required": false; }; "beforeSave": { "alias": "beforeSave"; "required": false; }; }, { "action": "action"; "bulkAction": "bulkAction"; "singleAction": "singleAction"; "search": "search"; "pageChange": "pageChange"; "onSearch": "onSearch"; "visibleChange": "visibleChange"; "rowSelect": "rowSelect"; }, never, never, true, never>;
127
145
  }
128
146
 
129
147
  export { GenericCrudTableComponent, GenericCrudTableModule };
@@ -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 };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@elite.framework/ng.ui.core",
3
- "version": "1.0.56",
3
+ "version": "1.0.59",
4
4
  "peerDependencies": {
5
5
  "@angular/common": "^20.1.0",
6
6
  "@angular/core": "^20.1.0"
@@ -48,26 +48,26 @@
48
48
  "types": "./condition-editor/index.d.ts",
49
49
  "default": "./fesm2022/elite.framework-ng.ui.core-condition-editor.mjs"
50
50
  },
51
- "./custom-switch": {
52
- "types": "./custom-switch/index.d.ts",
53
- "default": "./fesm2022/elite.framework-ng.ui.core-custom-switch.mjs"
54
- },
55
51
  "./datepicker": {
56
52
  "types": "./datepicker/index.d.ts",
57
53
  "default": "./fesm2022/elite.framework-ng.ui.core-datepicker.mjs"
58
54
  },
55
+ "./custom-switch": {
56
+ "types": "./custom-switch/index.d.ts",
57
+ "default": "./fesm2022/elite.framework-ng.ui.core-custom-switch.mjs"
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"
@@ -80,14 +80,14 @@
80
80
  "types": "./formly-avatar-image/index.d.ts",
81
81
  "default": "./fesm2022/elite.framework-ng.ui.core-formly-avatar-image.mjs"
82
82
  },
83
- "./formly-button": {
84
- "types": "./formly-button/index.d.ts",
85
- "default": "./fesm2022/elite.framework-ng.ui.core-formly-button.mjs"
86
- },
87
83
  "./formly-avatar-label": {
88
84
  "types": "./formly-avatar-label/index.d.ts",
89
85
  "default": "./fesm2022/elite.framework-ng.ui.core-formly-avatar-label.mjs"
90
86
  },
87
+ "./formly-button": {
88
+ "types": "./formly-button/index.d.ts",
89
+ "default": "./fesm2022/elite.framework-ng.ui.core-formly-button.mjs"
90
+ },
91
91
  "./formly-button-selector": {
92
92
  "types": "./formly-button-selector/index.d.ts",
93
93
  "default": "./fesm2022/elite.framework-ng.ui.core-formly-button-selector.mjs"
@@ -108,14 +108,14 @@
108
108
  "types": "./formly-ui-all/index.d.ts",
109
109
  "default": "./fesm2022/elite.framework-ng.ui.core-formly-ui-all.mjs"
110
110
  },
111
- "./formly-username-with-domain": {
112
- "types": "./formly-username-with-domain/index.d.ts",
113
- "default": "./fesm2022/elite.framework-ng.ui.core-formly-username-with-domain.mjs"
114
- },
115
111
  "./generic-autocomplete": {
116
112
  "types": "./generic-autocomplete/index.d.ts",
117
113
  "default": "./fesm2022/elite.framework-ng.ui.core-generic-autocomplete.mjs"
118
114
  },
115
+ "./formly-username-with-domain": {
116
+ "types": "./formly-username-with-domain/index.d.ts",
117
+ "default": "./fesm2022/elite.framework-ng.ui.core-formly-username-with-domain.mjs"
118
+ },
119
119
  "./generic-button": {
120
120
  "types": "./generic-button/index.d.ts",
121
121
  "default": "./fesm2022/elite.framework-ng.ui.core-generic-button.mjs"
@@ -144,6 +144,10 @@
144
144
  "types": "./generic-search/index.d.ts",
145
145
  "default": "./fesm2022/elite.framework-ng.ui.core-generic-search.mjs"
146
146
  },
147
+ "./generic-search-advanced": {
148
+ "types": "./generic-search-advanced/index.d.ts",
149
+ "default": "./fesm2022/elite.framework-ng.ui.core-generic-search-advanced.mjs"
150
+ },
147
151
  "./generic-selector": {
148
152
  "types": "./generic-selector/index.d.ts",
149
153
  "default": "./fesm2022/elite.framework-ng.ui.core-generic-selector.mjs"
@@ -180,22 +184,22 @@
180
184
  "types": "./odata-query-builder/index.d.ts",
181
185
  "default": "./fesm2022/elite.framework-ng.ui.core-odata-query-builder.mjs"
182
186
  },
183
- "./radio": {
184
- "types": "./radio/index.d.ts",
185
- "default": "./fesm2022/elite.framework-ng.ui.core-radio.mjs"
186
- },
187
187
  "./repeat": {
188
188
  "types": "./repeat/index.d.ts",
189
189
  "default": "./fesm2022/elite.framework-ng.ui.core-repeat.mjs"
190
190
  },
191
- "./select": {
192
- "types": "./select/index.d.ts",
193
- "default": "./fesm2022/elite.framework-ng.ui.core-select.mjs"
191
+ "./radio": {
192
+ "types": "./radio/index.d.ts",
193
+ "default": "./fesm2022/elite.framework-ng.ui.core-radio.mjs"
194
194
  },
195
195
  "./sidebar-cards": {
196
196
  "types": "./sidebar-cards/index.d.ts",
197
197
  "default": "./fesm2022/elite.framework-ng.ui.core-sidebar-cards.mjs"
198
198
  },
199
+ "./select": {
200
+ "types": "./select/index.d.ts",
201
+ "default": "./fesm2022/elite.framework-ng.ui.core-select.mjs"
202
+ },
199
203
  "./sidebar-toggles": {
200
204
  "types": "./sidebar-toggles/index.d.ts",
201
205
  "default": "./fesm2022/elite.framework-ng.ui.core-sidebar-toggles.mjs"