@elite.framework/ng.core 1.0.62 → 1.0.65

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.
Files changed (127) hide show
  1. package/fesm2022/elite.framework-ng.core-src-lib-components-attachments.mjs +204 -0
  2. package/fesm2022/elite.framework-ng.core-src-lib-components-attachments.mjs.map +1 -0
  3. package/fesm2022/elite.framework-ng.core-src-lib-components-breadcrumb.mjs +132 -0
  4. package/fesm2022/elite.framework-ng.core-src-lib-components-breadcrumb.mjs.map +1 -0
  5. package/fesm2022/elite.framework-ng.core-src-lib-components-color-picker.mjs +76 -0
  6. package/fesm2022/elite.framework-ng.core-src-lib-components-color-picker.mjs.map +1 -0
  7. package/fesm2022/elite.framework-ng.core-src-lib-components-column-settings-popover.mjs +172 -0
  8. package/fesm2022/elite.framework-ng.core-src-lib-components-column-settings-popover.mjs.map +1 -0
  9. package/fesm2022/elite.framework-ng.core-src-lib-components-condition-editor.mjs +794 -0
  10. package/fesm2022/elite.framework-ng.core-src-lib-components-condition-editor.mjs.map +1 -0
  11. package/fesm2022/elite.framework-ng.core-src-lib-components-custom-switch.mjs +110 -0
  12. package/fesm2022/elite.framework-ng.core-src-lib-components-custom-switch.mjs.map +1 -0
  13. package/fesm2022/elite.framework-ng.core-src-lib-components-deactivation-reason.mjs +130 -0
  14. package/fesm2022/elite.framework-ng.core-src-lib-components-deactivation-reason.mjs.map +1 -0
  15. package/fesm2022/elite.framework-ng.core-src-lib-components-form-button.mjs +50 -0
  16. package/fesm2022/elite.framework-ng.core-src-lib-components-form-button.mjs.map +1 -0
  17. package/fesm2022/elite.framework-ng.core-src-lib-components-form-field.mjs +154 -0
  18. package/fesm2022/elite.framework-ng.core-src-lib-components-form-field.mjs.map +1 -0
  19. package/fesm2022/elite.framework-ng.core-src-lib-components-form-template.mjs +24 -0
  20. package/fesm2022/elite.framework-ng.core-src-lib-components-form-template.mjs.map +1 -0
  21. package/fesm2022/elite.framework-ng.core-src-lib-components-formly-avatar-image.mjs +100 -0
  22. package/fesm2022/elite.framework-ng.core-src-lib-components-formly-avatar-image.mjs.map +1 -0
  23. package/fesm2022/elite.framework-ng.core-src-lib-components-formly-avatar-label.mjs +78 -0
  24. package/fesm2022/elite.framework-ng.core-src-lib-components-formly-avatar-label.mjs.map +1 -0
  25. package/fesm2022/elite.framework-ng.core-src-lib-components-formly-button-selector.mjs +167 -0
  26. package/fesm2022/elite.framework-ng.core-src-lib-components-formly-button-selector.mjs.map +1 -0
  27. package/fesm2022/elite.framework-ng.core-src-lib-components-formly-button.mjs +62 -0
  28. package/fesm2022/elite.framework-ng.core-src-lib-components-formly-button.mjs.map +1 -0
  29. package/fesm2022/elite.framework-ng.core-src-lib-components-formly-split-button.mjs +50 -0
  30. package/fesm2022/elite.framework-ng.core-src-lib-components-formly-split-button.mjs.map +1 -0
  31. package/fesm2022/elite.framework-ng.core-src-lib-components-formly-username-with-domain.mjs +76 -0
  32. package/fesm2022/elite.framework-ng.core-src-lib-components-formly-username-with-domain.mjs.map +1 -0
  33. package/fesm2022/elite.framework-ng.core-src-lib-components-generic-autocomplete.mjs +163 -0
  34. package/fesm2022/elite.framework-ng.core-src-lib-components-generic-autocomplete.mjs.map +1 -0
  35. package/fesm2022/elite.framework-ng.core-src-lib-components-generic-button.mjs +133 -0
  36. package/fesm2022/elite.framework-ng.core-src-lib-components-generic-button.mjs.map +1 -0
  37. package/fesm2022/elite.framework-ng.core-src-lib-components-generic-card.mjs +214 -0
  38. package/fesm2022/elite.framework-ng.core-src-lib-components-generic-card.mjs.map +1 -0
  39. package/fesm2022/elite.framework-ng.core-src-lib-components-generic-crud-table.mjs +385 -0
  40. package/fesm2022/elite.framework-ng.core-src-lib-components-generic-crud-table.mjs.map +1 -0
  41. package/fesm2022/elite.framework-ng.core-src-lib-components-generic-errormessage.mjs +23 -0
  42. package/fesm2022/elite.framework-ng.core-src-lib-components-generic-errormessage.mjs.map +1 -0
  43. package/fesm2022/elite.framework-ng.core-src-lib-components-generic-formly-fields.mjs +53 -0
  44. package/fesm2022/elite.framework-ng.core-src-lib-components-generic-formly-fields.mjs.map +1 -0
  45. package/fesm2022/elite.framework-ng.core-src-lib-components-generic-loadingspinner.mjs +23 -0
  46. package/fesm2022/elite.framework-ng.core-src-lib-components-generic-loadingspinner.mjs.map +1 -0
  47. package/fesm2022/elite.framework-ng.core-src-lib-components-generic-search.mjs +85 -0
  48. package/fesm2022/elite.framework-ng.core-src-lib-components-generic-search.mjs.map +1 -0
  49. package/fesm2022/elite.framework-ng.core-src-lib-components-generic-selector.mjs +430 -0
  50. package/fesm2022/elite.framework-ng.core-src-lib-components-generic-selector.mjs.map +1 -0
  51. package/fesm2022/elite.framework-ng.core-src-lib-components-generic-table.mjs +216 -0
  52. package/fesm2022/elite.framework-ng.core-src-lib-components-generic-table.mjs.map +1 -0
  53. package/fesm2022/elite.framework-ng.core-src-lib-components-header-wrapper.mjs +18 -0
  54. package/fesm2022/elite.framework-ng.core-src-lib-components-header-wrapper.mjs.map +1 -0
  55. package/fesm2022/elite.framework-ng.core-src-lib-components-icon-picker.mjs +195 -0
  56. package/fesm2022/elite.framework-ng.core-src-lib-components-icon-picker.mjs.map +1 -0
  57. package/fesm2022/elite.framework-ng.core-src-lib-components-input-switch.mjs +94 -0
  58. package/fesm2022/elite.framework-ng.core-src-lib-components-input-switch.mjs.map +1 -0
  59. package/fesm2022/elite.framework-ng.core-src-lib-components-input-with-icon.mjs +55 -0
  60. package/fesm2022/elite.framework-ng.core-src-lib-components-input-with-icon.mjs.map +1 -0
  61. package/fesm2022/elite.framework-ng.core-src-lib-components-label-type.mjs +112 -0
  62. package/fesm2022/elite.framework-ng.core-src-lib-components-label-type.mjs.map +1 -0
  63. package/fesm2022/elite.framework-ng.core-src-lib-components-odata-query-builder.mjs +297 -0
  64. package/fesm2022/elite.framework-ng.core-src-lib-components-odata-query-builder.mjs.map +1 -0
  65. package/fesm2022/elite.framework-ng.core-src-lib-components-repeat.mjs +135 -0
  66. package/fesm2022/elite.framework-ng.core-src-lib-components-repeat.mjs.map +1 -0
  67. package/fesm2022/elite.framework-ng.core-src-lib-components-sidebar-cards.mjs +40 -0
  68. package/fesm2022/elite.framework-ng.core-src-lib-components-sidebar-cards.mjs.map +1 -0
  69. package/fesm2022/elite.framework-ng.core-src-lib-components-sidebar-toggles.mjs +41 -0
  70. package/fesm2022/elite.framework-ng.core-src-lib-components-sidebar-toggles.mjs.map +1 -0
  71. package/fesm2022/elite.framework-ng.core-src-lib-components-tabs.mjs +45 -0
  72. package/fesm2022/elite.framework-ng.core-src-lib-components-tabs.mjs.map +1 -0
  73. package/fesm2022/elite.framework-ng.core-src-lib-components-tag-type.mjs +192 -0
  74. package/fesm2022/elite.framework-ng.core-src-lib-components-tag-type.mjs.map +1 -0
  75. package/fesm2022/elite.framework-ng.core-src-lib-components-text-editor.mjs +44 -0
  76. package/fesm2022/elite.framework-ng.core-src-lib-components-text-editor.mjs.map +1 -0
  77. package/fesm2022/elite.framework-ng.core-src-lib-components-wrappers.mjs +174 -0
  78. package/fesm2022/elite.framework-ng.core-src-lib-components-wrappers.mjs.map +1 -0
  79. package/fesm2022/elite.framework-ng.core-src-lib-directives.mjs +59 -0
  80. package/fesm2022/elite.framework-ng.core-src-lib-directives.mjs.map +1 -0
  81. package/fesm2022/elite.framework-ng.core-src-lib-pipes.mjs +135 -0
  82. package/fesm2022/elite.framework-ng.core-src-lib-pipes.mjs.map +1 -0
  83. package/fesm2022/elite.framework-ng.core.mjs +1371 -6371
  84. package/fesm2022/elite.framework-ng.core.mjs.map +1 -1
  85. package/index.d.ts +347 -1274
  86. package/package.json +162 -22
  87. package/src/lib/components/attachments/index.d.ts +31 -0
  88. package/src/lib/components/breadcrumb/index.d.ts +10 -0
  89. package/src/lib/components/color-picker/index.d.ts +9 -0
  90. package/src/lib/components/column-settings-popover/index.d.ts +39 -0
  91. package/src/lib/components/condition-editor/index.d.ts +73 -0
  92. package/src/lib/components/custom-switch/index.d.ts +12 -0
  93. package/src/lib/components/deactivation-reason/index.d.ts +24 -0
  94. package/src/lib/components/form-button/index.d.ts +10 -0
  95. package/src/lib/components/form-field/index.d.ts +30 -0
  96. package/src/lib/components/form-template/index.d.ts +9 -0
  97. package/src/lib/components/formly-avatar-image/index.d.ts +11 -0
  98. package/src/lib/components/formly-avatar-label/index.d.ts +29 -0
  99. package/src/lib/components/formly-button/index.d.ts +13 -0
  100. package/src/lib/components/formly-button-selector/index.d.ts +28 -0
  101. package/src/lib/components/formly-split-button/index.d.ts +16 -0
  102. package/src/lib/components/formly-username-with-domain/index.d.ts +12 -0
  103. package/src/lib/components/generic-autocomplete/index.d.ts +34 -0
  104. package/src/lib/components/generic-button/index.d.ts +35 -0
  105. package/src/lib/components/generic-card/index.d.ts +90 -0
  106. package/src/lib/components/generic-crud-table/index.d.ts +120 -0
  107. package/src/lib/components/generic-errormessage/index.d.ts +10 -0
  108. package/src/lib/components/generic-formly-fields/index.d.ts +22 -0
  109. package/src/lib/components/generic-loadingspinner/index.d.ts +9 -0
  110. package/src/lib/components/generic-search/index.d.ts +29 -0
  111. package/src/lib/components/generic-selector/index.d.ts +66 -0
  112. package/src/lib/components/generic-table/index.d.ts +60 -0
  113. package/src/lib/components/header-wrapper/index.d.ts +8 -0
  114. package/src/lib/components/icon-picker/index.d.ts +23 -0
  115. package/src/lib/components/input-switch/index.d.ts +9 -0
  116. package/src/lib/components/input-with-icon/index.d.ts +10 -0
  117. package/src/lib/components/label-type/index.d.ts +19 -0
  118. package/src/lib/components/odata-query-builder/index.d.ts +81 -0
  119. package/src/lib/components/repeat/index.d.ts +17 -0
  120. package/src/lib/components/sidebar-cards/index.d.ts +18 -0
  121. package/src/lib/components/sidebar-toggles/index.d.ts +18 -0
  122. package/src/lib/components/tabs/index.d.ts +10 -0
  123. package/src/lib/components/tag-type/index.d.ts +27 -0
  124. package/src/lib/components/text-editor/index.d.ts +9 -0
  125. package/src/lib/components/wrappers/index.d.ts +24 -0
  126. package/src/lib/directives/index.d.ts +23 -0
  127. package/src/lib/pipes/index.d.ts +20 -0
@@ -0,0 +1,35 @@
1
+ import * as i0 from '@angular/core';
2
+ import { EventEmitter } from '@angular/core';
3
+ import { MenuItem } from 'primeng/api';
4
+
5
+ type ButtonVariant = 'text' | 'outlined' | 'raised' | 'rounded';
6
+ type ButtonSeverity = 'primary' | 'secondary' | 'success' | 'info' | 'warning' | 'danger';
7
+ type ButtonSize = 'small' | 'normal' | 'large';
8
+ type IconPosition = 'left' | 'right';
9
+ declare class GenericButton {
10
+ model?: MenuItem[];
11
+ type: 'button' | 'submit' | 'reset';
12
+ icon: string;
13
+ label: string;
14
+ variant: ButtonVariant;
15
+ severity: ButtonSeverity;
16
+ size: ButtonSize;
17
+ iconPosition: IconPosition;
18
+ disabled: boolean;
19
+ loading: boolean;
20
+ ariaLabel?: string;
21
+ extraClasses: string;
22
+ permission?: string;
23
+ clicked: EventEmitter<void>;
24
+ itemClick: EventEmitter<any>;
25
+ private sizeMap;
26
+ private colorMap;
27
+ private outlinedMap;
28
+ get twClasses(): string;
29
+ onClick(): void;
30
+ onItemClick(evt: any): void;
31
+ static ɵfac: i0.ɵɵFactoryDeclaration<GenericButton, never>;
32
+ static ɵcmp: i0.ɵɵComponentDeclaration<GenericButton, "lib-generic-button", never, { "model": { "alias": "model"; "required": false; }; "type": { "alias": "type"; "required": false; }; "icon": { "alias": "icon"; "required": false; }; "label": { "alias": "label"; "required": false; }; "variant": { "alias": "variant"; "required": false; }; "severity": { "alias": "severity"; "required": false; }; "size": { "alias": "size"; "required": false; }; "iconPosition": { "alias": "iconPosition"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; "loading": { "alias": "loading"; "required": false; }; "ariaLabel": { "alias": "ariaLabel"; "required": false; }; "extraClasses": { "alias": "extraClasses"; "required": false; }; "permission": { "alias": "permission"; "required": false; }; }, { "clicked": "clicked"; "itemClick": "itemClick"; }, never, ["*"], true, never>;
33
+ }
34
+
35
+ export { GenericButton };
@@ -0,0 +1,90 @@
1
+ import * as i0 from '@angular/core';
2
+ import { OnInit, EventEmitter } from '@angular/core';
3
+ import { ColumnDef, ActionDef } from '@elite.framework/ng.core';
4
+ import { TranslateService } from '@ngx-translate/core';
5
+ import { MenuItem } from 'primeng/api';
6
+
7
+ declare class GenericCard<T extends {
8
+ [key: string]: any;
9
+ }> implements OnInit {
10
+ private translateService;
11
+ data: T[];
12
+ columns: ColumnDef<T>[];
13
+ loading: boolean;
14
+ actions: ActionDef<T>[];
15
+ actionsMode: 'buttons' | 'menu';
16
+ showOperations: boolean;
17
+ rowSelectable: boolean;
18
+ showRowSelectionCheckbox: boolean;
19
+ paginator: boolean;
20
+ rowClassFn: (rowData: any) => string;
21
+ action: EventEmitter<{
22
+ name: string;
23
+ row: T;
24
+ }>;
25
+ _selection: T | T[] | null;
26
+ get selection(): T | T[] | null;
27
+ set selection(val: T | T[] | null);
28
+ selectionChange: EventEmitter<T | T[] | null>;
29
+ rowSelect: EventEmitter<T>;
30
+ constructor(translateService: TranslateService);
31
+ ngOnInit(): void;
32
+ /**
33
+ * Generates menu items for the action menu.
34
+ * @param row The data row for which to generate actions.
35
+ * @returns An array of PrimeNG MenuItem objects.
36
+ */
37
+ getMenuItems(row: T): MenuItem[];
38
+ /**
39
+ * Handles click events on a clickable cell.
40
+ * @param col The ColumnDef of the clicked column.
41
+ * @param rowData The data row of the clicked cell.
42
+ * @param event The mouse event.
43
+ */
44
+ handleCellClick(col: ColumnDef<any>, rowData: any, event: MouseEvent): void;
45
+ /**
46
+ * Handles mouse enter events on a hoverable cell.
47
+ * @param col The ColumnDef of the hovered column.
48
+ * @param rowData The data row of the hovered cell.
49
+ * @param event The mouse event.
50
+ */
51
+ onCellHover(col: ColumnDef<T>, row: T, event: MouseEvent): void;
52
+ /**
53
+ * Handles mouse leave events on a hoverable cell.
54
+ * @param col The ColumnDef of the hovered column.
55
+ * @param rowData The data row of the hovered cell.
56
+ * @param event The mouse event.
57
+ */
58
+ onCellLeave(col: ColumnDef<T>, row: T, event: MouseEvent): void;
59
+ /**
60
+ * Handles click on the entire card for row selection (if not using checkboxes).
61
+ * @param item The data item associated with the clicked card.
62
+ */
63
+ handleCardClick(item: T): void;
64
+ /**
65
+ * Checks if an item is currently selected.
66
+ * Used for checkbox binding.
67
+ * @param item The item to check.
68
+ * @returns True if the item is selected, false otherwise.
69
+ */
70
+ isItemSelected(item: T): boolean;
71
+ /**
72
+ * Toggles the selection state of an item.
73
+ * Used when a checkbox is clicked.
74
+ * @param item The item to toggle.
75
+ * @param event The change event from the checkbox.
76
+ */
77
+ toggleItemSelection(item: T, event: Event): void;
78
+ /**
79
+ * Used by *ngFor to optimize rendering.
80
+ * Assumes each item has a unique 'id' property.
81
+ * @param index The index of the item.
82
+ * @param item The data item.
83
+ * @returns The unique identifier of the item.
84
+ */
85
+ trackById(index: number, item: T): any;
86
+ static ɵfac: i0.ɵɵFactoryDeclaration<GenericCard<any>, never>;
87
+ static ɵcmp: i0.ɵɵComponentDeclaration<GenericCard<any>, "lib-generic-card", never, { "data": { "alias": "data"; "required": false; }; "columns": { "alias": "columns"; "required": false; }; "loading": { "alias": "loading"; "required": false; }; "actions": { "alias": "actions"; "required": false; }; "actionsMode": { "alias": "actionsMode"; "required": false; }; "showOperations": { "alias": "showOperations"; "required": false; }; "rowSelectable": { "alias": "rowSelectable"; "required": false; }; "showRowSelectionCheckbox": { "alias": "showRowSelectionCheckbox"; "required": false; }; "paginator": { "alias": "paginator"; "required": false; }; "rowClassFn": { "alias": "rowClassFn"; "required": false; }; "selection": { "alias": "selection"; "required": false; }; }, { "action": "action"; "selectionChange": "selectionChange"; "rowSelect": "rowSelect"; }, never, never, true, never>;
88
+ }
89
+
90
+ export { GenericCard };
@@ -0,0 +1,120 @@
1
+ import * as i0 from '@angular/core';
2
+ import { OnChanges, EventEmitter, SimpleChanges } from '@angular/core';
3
+ import { PaginatorState } from 'primeng/paginator';
4
+ import { TableLazyLoadEvent } from 'primeng/table';
5
+ import { TranslateService } from '@ngx-translate/core';
6
+ import { FormlyFieldConfig, FormlyFormOptions } from '@ngx-formly/core';
7
+ import { MenuItem } from 'primeng/api';
8
+ import { UntypedFormGroup } from '@angular/forms';
9
+ import { GenericTable } from '@elite.framework/ng.core/src/lib/components/generic-table';
10
+ import { ActionDef, BaseService, ButtonConfig } from '@elite.framework/ng.core';
11
+
12
+ interface PageChangePayload extends PaginatorState {
13
+ sort?: string;
14
+ filters?: Record<string, any>;
15
+ }
16
+ type ActionsMode = 'buttons' | 'menu';
17
+ declare class GenericCrudTableComponent<T> implements OnChanges {
18
+ genericTable: GenericTable<T>;
19
+ translate: TranslateService;
20
+ private swalService;
21
+ home: MenuItem | undefined;
22
+ data: T[];
23
+ formFields_: FormlyFieldConfig[];
24
+ formFields: FormlyFieldConfig[];
25
+ columns: FormlyFieldConfig[];
26
+ isViewMode: boolean;
27
+ displayMode: 'drawer' | 'dialog' | 'route' | Partial<Record<'add' | 'edit' | 'view', 'drawer' | 'dialog' | 'route'>>;
28
+ isEditMode: boolean;
29
+ drawerVisible: boolean;
30
+ dialogVisible: boolean;
31
+ form: UntypedFormGroup;
32
+ model: any;
33
+ model_: any;
34
+ loading: boolean;
35
+ errorMsg: string;
36
+ errorMessage: string | any;
37
+ options: FormlyFormOptions;
38
+ actions: ActionDef<T>[];
39
+ /** تحدد طريقة العرض: 'buttons' أو 'menu' */
40
+ actionsMode: ActionsMode;
41
+ action: EventEmitter<{
42
+ name: string;
43
+ row: T;
44
+ }>;
45
+ bulkAction: EventEmitter<{
46
+ name: string;
47
+ items: T[];
48
+ }>;
49
+ singleAction: EventEmitter<{
50
+ name: string;
51
+ item: T;
52
+ }>;
53
+ filters: any;
54
+ filterModel: any;
55
+ search: EventEmitter<{
56
+ field: string;
57
+ global: string;
58
+ }>;
59
+ /** للتحكم بإظهار/إخفاء قسم البحث */
60
+ showSearch: boolean;
61
+ /** Pagination Inputs */
62
+ first: number;
63
+ rows: number;
64
+ totalRecords: number;
65
+ pageChange: EventEmitter<PageChangePayload>;
66
+ onSearch: EventEmitter<any>;
67
+ visibleChange: EventEmitter<boolean>;
68
+ viewHeaderTitle: string;
69
+ /** لجعل الجدول قابل لاختيار الصفوف (افتراضي false) */
70
+ rowSelectable: boolean;
71
+ /** حدث يخرج الصف المحدّد */
72
+ rowSelect: EventEmitter<T>;
73
+ selection: T | null;
74
+ sortField?: string;
75
+ sortOrder: 1 | -1;
76
+ scrollHeight: string;
77
+ paginator: boolean;
78
+ service: BaseService | any;
79
+ idField: string;
80
+ showRowSelectionCheckbox: boolean;
81
+ bulkActionButtons: ButtonConfig[];
82
+ singleActionButtons: ButtonConfig[];
83
+ _selectedRows: T[];
84
+ get isSingleItemSelected(): boolean;
85
+ get isMultipleItemSelected(): boolean;
86
+ get selectedItems(): T[];
87
+ /** للتحكم بإظهار زر الإضافة */
88
+ showAddButton: boolean;
89
+ /** الأيقونة الافتراضية لزر الإضافة */
90
+ addButtonIcon: string;
91
+ /** النص الافتراضي لزر الإضافة */
92
+ addButtonLabel: string;
93
+ /** تتحكّم بموقع زر الإضافة: 'top' أو 'bottom' */
94
+ addButtonPosition: 'top' | 'bottom';
95
+ addButtonConfigs: ButtonConfig[];
96
+ breadcrumb: MenuItem[] | undefined;
97
+ ngOnChanges(changes: SimpleChanges): void;
98
+ get breadcrumb_(): MenuItem[] | undefined;
99
+ get rtl(): boolean;
100
+ /** الآن يتلقّى pagination + sort في حدث واحد */
101
+ onLazyLoad(event: TableLazyLoadEvent): void;
102
+ /** تصيير البيانات حسب الصفحة */
103
+ get pagedData(): T[];
104
+ get globalFilterFields(): string[];
105
+ /** أرسل إلى الأب لأتمتة شكل البحث إذا يحتاج */
106
+ /** بدّل applySearch لتبث pageChange مباشرةً */
107
+ applySearch(filters: any): void;
108
+ /** دالة تنفّذ عند النقر على صف */
109
+ onRowClick(row: T): void;
110
+ beforeSave: (record: T) => T;
111
+ onSubmit(): void;
112
+ trackByIdx(index: number, item: any): number;
113
+ onSingleItemAction(btn: ButtonConfig): void;
114
+ onInternalBulkAction(btn: ButtonConfig): void;
115
+ static ɵfac: i0.ɵɵFactoryDeclaration<GenericCrudTableComponent<any>, never>;
116
+ 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; }; "isViewMode": { "alias": "isViewMode"; "required": false; }; "displayMode": { "alias": "displayMode"; "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; }; "bulkActionButtons": { "alias": "bulkActionButtons"; "required": false; }; "singleActionButtons": { "alias": "singleActionButtons"; "required": false; }; "showAddButton": { "alias": "showAddButton"; "required": false; }; "addButtonIcon": { "alias": "addButtonIcon"; "required": false; }; "addButtonLabel": { "alias": "addButtonLabel"; "required": false; }; "addButtonPosition": { "alias": "addButtonPosition"; "required": false; }; "addButtonConfigs": { "alias": "addButtonConfigs"; "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>;
117
+ }
118
+
119
+ export { GenericCrudTableComponent };
120
+ export type { ActionsMode, PageChangePayload };
@@ -0,0 +1,10 @@
1
+ import * as i0 from '@angular/core';
2
+
3
+ declare class GenericErrormessage {
4
+ /** نص رسالة الخطأ */
5
+ text: string;
6
+ static ɵfac: i0.ɵɵFactoryDeclaration<GenericErrormessage, never>;
7
+ static ɵcmp: i0.ɵɵComponentDeclaration<GenericErrormessage, "lib-generic-errormessage", never, { "text": { "alias": "text"; "required": false; }; }, {}, never, never, true, never>;
8
+ }
9
+
10
+ export { GenericErrormessage };
@@ -0,0 +1,22 @@
1
+ import * as i0 from '@angular/core';
2
+ import { OnInit, OnChanges, SimpleChanges } from '@angular/core';
3
+ import { FormGroup } from '@angular/forms';
4
+ import { FormlyFieldConfig, FormlyFormOptions } from '@ngx-formly/core';
5
+
6
+ declare class GenericFormlyFields implements OnInit, OnChanges {
7
+ /** الـ FormGroup الذي يُدار خارجيًا */
8
+ form: FormGroup;
9
+ /** حقول Formly */
10
+ fields: FormlyFieldConfig[];
11
+ /** النموذج (object) الذي سيُربط بالحقول */
12
+ model: any;
13
+ /** خيارات Formly (validation, hideExpression, ...) */
14
+ options: FormlyFormOptions;
15
+ ngOnInit(): void;
16
+ ngOnChanges(changes: SimpleChanges): void;
17
+ getFieldIcon(field: FormlyFieldConfig): string | null;
18
+ static ɵfac: i0.ɵɵFactoryDeclaration<GenericFormlyFields, never>;
19
+ static ɵcmp: i0.ɵɵComponentDeclaration<GenericFormlyFields, "lib-generic-formly-fields", never, { "form": { "alias": "form"; "required": false; }; "fields": { "alias": "fields"; "required": false; }; "model": { "alias": "model"; "required": false; }; "options": { "alias": "options"; "required": false; }; }, {}, never, never, true, never>;
20
+ }
21
+
22
+ export { GenericFormlyFields };
@@ -0,0 +1,9 @@
1
+ import * as i0 from '@angular/core';
2
+
3
+ declare class GenericLoadingspinner {
4
+ loading: boolean;
5
+ static ɵfac: i0.ɵɵFactoryDeclaration<GenericLoadingspinner, never>;
6
+ static ɵcmp: i0.ɵɵComponentDeclaration<GenericLoadingspinner, "lib-generic-loadingspinner", never, { "loading": { "alias": "loading"; "required": false; }; }, {}, never, never, true, never>;
7
+ }
8
+
9
+ export { GenericLoadingspinner };
@@ -0,0 +1,29 @@
1
+ import * as i0 from '@angular/core';
2
+ import { OnInit, EventEmitter } from '@angular/core';
3
+ import { FormGroup } from '@angular/forms';
4
+ import { FormlyFormOptions, FormlyFieldConfig } from '@ngx-formly/core';
5
+ import { TranslateService } from '@ngx-translate/core';
6
+ import { Popover } from 'primeng/popover';
7
+
8
+ declare class GenericSearch implements OnInit {
9
+ overlay: Popover;
10
+ translate: TranslateService;
11
+ placeholder: string;
12
+ /**
13
+ * List of fields to search by
14
+ * Example: [{ label: 'Name', value: 'name' }, { label: 'Email', value: 'email' }]
15
+ */
16
+ search: EventEmitter<any>;
17
+ form: FormGroup<{}>;
18
+ model: any;
19
+ options: FormlyFormOptions;
20
+ fields: FormlyFieldConfig[];
21
+ fields_: FormlyFieldConfig[];
22
+ ngOnInit(): void;
23
+ onSubmit(): void;
24
+ onReset(): void;
25
+ static ɵfac: i0.ɵɵFactoryDeclaration<GenericSearch, never>;
26
+ static ɵcmp: i0.ɵɵComponentDeclaration<GenericSearch, "lib-generic-search", never, { "placeholder": { "alias": "placeholder"; "required": false; }; "model": { "alias": "model"; "required": false; }; "fields": { "alias": "fields"; "required": false; }; }, { "search": "search"; }, never, never, true, never>;
27
+ }
28
+
29
+ export { GenericSearch };
@@ -0,0 +1,66 @@
1
+ import * as i0 from '@angular/core';
2
+ import { OnInit, OnDestroy, Injector, ChangeDetectorRef } from '@angular/core';
3
+ import { FieldType, FieldTypeConfig, FormlyFieldConfig } from '@ngx-formly/core';
4
+ import { DialogService } from 'primeng/dynamicdialog';
5
+ import { Observable } from 'rxjs';
6
+ import { AutoComplete } from 'primeng/autocomplete';
7
+ import { FormlyFieldProps } from '@ngx-formly/primeng/form-field';
8
+ import { BaseService } from '@elite.framework/ng.core';
9
+
10
+ interface GenericSelectorProps extends FormlyFieldProps {
11
+ serviceName: string;
12
+ listEndpoint?: string | ((model: any) => string);
13
+ loadDefaultField?: string;
14
+ loadDefaultValue?: string;
15
+ labelField?: string;
16
+ valueField?: string;
17
+ multiple?: boolean;
18
+ loadDefault?: boolean;
19
+ offline?: boolean;
20
+ loadSaved?: boolean;
21
+ loadSavedField?: string;
22
+ /** Static offline items (array of objects) */
23
+ offlineItems?: any[];
24
+ /** Async offline items (observable) */
25
+ offlineItems$?: Observable<any[]>;
26
+ /** Function-based filter for offline items */
27
+ onSelect?: (field: FormlyFieldConfig, event?: any) => void;
28
+ offlineDataFn?: (query?: string) => any[];
29
+ fixedFilters?: Record<string, any>;
30
+ defaultValue?: any;
31
+ defaultItem?: any;
32
+ }
33
+ declare class GenericSelectorTypeComponent extends FieldType<FieldTypeConfig<GenericSelectorProps>> implements OnInit, OnDestroy {
34
+ private svc;
35
+ private injector;
36
+ private cdr;
37
+ autoComp: AutoComplete;
38
+ options_: any[];
39
+ selectedItem: any;
40
+ loading: boolean;
41
+ private _offlineList;
42
+ api: BaseService | any;
43
+ dialog: DialogService | any;
44
+ private valueChangeSubscription;
45
+ constructor(svc: BaseService, injector: Injector, cdr: ChangeDetectorRef);
46
+ ngOnInit(): void;
47
+ ngOnDestroy(): void;
48
+ private loadDefaultValue;
49
+ onSelect(event: any): void;
50
+ onSelectionChange(val: any): void;
51
+ private initOfflineSelection;
52
+ private initOnlineSelection;
53
+ getFixedFilters(): any;
54
+ onDropdownButtonClick(): void;
55
+ onDropdownClick(event: any): void;
56
+ search(event: {
57
+ query: string;
58
+ }): void;
59
+ openCrud(mode: 'add' | 'edit' | 'info'): void;
60
+ getEmptyMessage(): string;
61
+ isItemSelected(item: any): boolean;
62
+ static ɵfac: i0.ɵɵFactoryDeclaration<GenericSelectorTypeComponent, never>;
63
+ static ɵcmp: i0.ɵɵComponentDeclaration<GenericSelectorTypeComponent, "formly-generic-selector", never, {}, {}, never, never, true, never>;
64
+ }
65
+
66
+ export { GenericSelectorTypeComponent };
@@ -0,0 +1,60 @@
1
+ import * as i0 from '@angular/core';
2
+ import { EventEmitter } from '@angular/core';
3
+ import { SortEvent, MenuItem } from 'primeng/api';
4
+ import { Table, TableLazyLoadEvent, TableRowSelectEvent, TableHeaderCheckboxToggleEvent } from 'primeng/table';
5
+ import { FormlyFieldConfig, FormlyFormOptions } from '@ngx-formly/core';
6
+ import { FormGroup } from '@angular/forms';
7
+ import { ActionDef } from '@elite.framework/ng.core';
8
+
9
+ declare class GenericTable<T> {
10
+ dt: Table;
11
+ data: T[];
12
+ columns: FormlyFieldConfig[];
13
+ columns_: FormlyFieldConfig[];
14
+ loading: boolean;
15
+ actions: ActionDef<T>[];
16
+ actionsMode: 'buttons' | 'menu';
17
+ first: number;
18
+ rows: number;
19
+ totalRecords: number;
20
+ sortField?: string;
21
+ sortOrder: 1 | -1;
22
+ globalFilterFields: string[];
23
+ action: EventEmitter<{
24
+ name: string;
25
+ row: T;
26
+ }>;
27
+ pageChange: EventEmitter<TableLazyLoadEvent>;
28
+ scrollHeight: string;
29
+ /** فعّل اختيار الصفين single/multiple */
30
+ rowSelectable: boolean;
31
+ /** يحتفظ بالصف المحدد */
32
+ _selection: T | T[] | null;
33
+ get selection(): T | T[] | null;
34
+ set selection(val: T | T[] | null);
35
+ /** يصدر الصف المحدد عند النقر */
36
+ rowSelect: EventEmitter<T>;
37
+ /** يصدر الصفوف المحددة عند التغيير (للربط الثنائي) */
38
+ selectionChange: EventEmitter<T | T[] | null>;
39
+ /** جديد: التحكم بظهور الـ paginator */
40
+ paginator: boolean;
41
+ form: FormGroup<{}>;
42
+ options: FormlyFormOptions;
43
+ /** يتحكم في إظهار عمود اختيار الصفوف المتعددة بواسطة checkboxes */
44
+ showRowSelectionCheckbox: boolean;
45
+ onAddNew(): void;
46
+ onInternalSelectionChange(event: TableRowSelectEvent<T> | TableHeaderCheckboxToggleEvent): void;
47
+ customSort(event: SortEvent): void;
48
+ resolveFieldData(data: any, field: string): any;
49
+ onAction(act: ActionDef<T>, row: T): void;
50
+ cloneField(field: any): any;
51
+ getForm(rowIndex: number, colIndex: number): FormGroup;
52
+ onLazyLoad(event: TableLazyLoadEvent): void;
53
+ applyFilter(filters: any): void;
54
+ getMenuItems(row: T): MenuItem[];
55
+ onRowSelect(event: TableRowSelectEvent<T>): void;
56
+ static ɵfac: i0.ɵɵFactoryDeclaration<GenericTable<any>, never>;
57
+ static ɵcmp: i0.ɵɵComponentDeclaration<GenericTable<any>, "lib-generic-table", never, { "data": { "alias": "data"; "required": false; }; "columns": { "alias": "columns"; "required": false; }; "loading": { "alias": "loading"; "required": false; }; "actions": { "alias": "actions"; "required": false; }; "actionsMode": { "alias": "actionsMode"; "required": false; }; "first": { "alias": "first"; "required": false; }; "rows": { "alias": "rows"; "required": false; }; "totalRecords": { "alias": "totalRecords"; "required": false; }; "sortField": { "alias": "sortField"; "required": false; }; "sortOrder": { "alias": "sortOrder"; "required": false; }; "globalFilterFields": { "alias": "globalFilterFields"; "required": false; }; "scrollHeight": { "alias": "scrollHeight"; "required": false; }; "rowSelectable": { "alias": "rowSelectable"; "required": false; }; "selection": { "alias": "selection"; "required": false; }; "paginator": { "alias": "paginator"; "required": false; }; "showRowSelectionCheckbox": { "alias": "showRowSelectionCheckbox"; "required": false; }; }, { "action": "action"; "pageChange": "pageChange"; "rowSelect": "rowSelect"; "selectionChange": "selectionChange"; }, never, never, true, never>;
58
+ }
59
+
60
+ export { GenericTable };
@@ -0,0 +1,8 @@
1
+ import * as i0 from '@angular/core';
2
+
3
+ declare class HeaderWrapper {
4
+ static ɵfac: i0.ɵɵFactoryDeclaration<HeaderWrapper, never>;
5
+ static ɵcmp: i0.ɵɵComponentDeclaration<HeaderWrapper, "lib-header-wrapper", never, {}, {}, never, never, true, never>;
6
+ }
7
+
8
+ export { HeaderWrapper };
@@ -0,0 +1,23 @@
1
+ import { FieldType } from '@ngx-formly/core';
2
+ import * as i0 from '@angular/core';
3
+
4
+ declare class IconPickerComponent extends FieldType {
5
+ dropdownOpen: boolean;
6
+ searchQuery: string;
7
+ page: number;
8
+ pageSize: number;
9
+ icons: string[];
10
+ get filteredIcons(): string[];
11
+ get totalPages(): number;
12
+ get start(): number;
13
+ get end(): number;
14
+ get pagedIcons(): string[];
15
+ onSearch(): void;
16
+ selectIcon(icon: string): void;
17
+ nextPage(): void;
18
+ prevPage(): void;
19
+ static ɵfac: i0.ɵɵFactoryDeclaration<IconPickerComponent, never>;
20
+ static ɵcmp: i0.ɵɵComponentDeclaration<IconPickerComponent, "formly-field-icon-picker", never, {}, {}, never, never, true, never>;
21
+ }
22
+
23
+ export { IconPickerComponent };
@@ -0,0 +1,9 @@
1
+ import { FieldType, FieldTypeConfig } from '@ngx-formly/core';
2
+ import * as i0 from '@angular/core';
3
+
4
+ declare class InputSwitchTypeComponent extends FieldType<FieldTypeConfig> {
5
+ static ɵfac: i0.ɵɵFactoryDeclaration<InputSwitchTypeComponent, never>;
6
+ static ɵcmp: i0.ɵɵComponentDeclaration<InputSwitchTypeComponent, "formly-field-primeng-input-switch", never, {}, {}, never, never, true, never>;
7
+ }
8
+
9
+ export { InputSwitchTypeComponent };
@@ -0,0 +1,10 @@
1
+ import { FieldType } from '@ngx-formly/core';
2
+ import * as i0 from '@angular/core';
3
+
4
+ declare class InputWithIconType extends FieldType {
5
+ get type(): string;
6
+ static ɵfac: i0.ɵɵFactoryDeclaration<InputWithIconType, never>;
7
+ static ɵcmp: i0.ɵɵComponentDeclaration<InputWithIconType, "formly-field-input-with-icon", never, {}, {}, never, never, true, never>;
8
+ }
9
+
10
+ export { InputWithIconType };
@@ -0,0 +1,19 @@
1
+ import { FieldType } from '@ngx-formly/core';
2
+ import * as i0 from '@angular/core';
3
+
4
+ declare class LabelTypeComponent extends FieldType {
5
+ get displayValue(): any;
6
+ static ɵfac: i0.ɵɵFactoryDeclaration<LabelTypeComponent, never>;
7
+ static ɵcmp: i0.ɵɵComponentDeclaration<LabelTypeComponent, "formly-label-type", never, {}, {}, never, never, true, never>;
8
+ }
9
+
10
+ declare class ClickableLabelTypeComponent extends FieldType {
11
+ onCellLeave(col: any, row: any, event: MouseEvent): void;
12
+ onCellHover(col: any, row: any, event: MouseEvent): void;
13
+ handleCellClick(col: any, model: any, event: MouseEvent): void;
14
+ getCellValue(col: any, model: any): any;
15
+ static ɵfac: i0.ɵɵFactoryDeclaration<ClickableLabelTypeComponent, never>;
16
+ static ɵcmp: i0.ɵɵComponentDeclaration<ClickableLabelTypeComponent, "formly-clickable-label-type", never, {}, {}, never, never, true, never>;
17
+ }
18
+
19
+ export { ClickableLabelTypeComponent, LabelTypeComponent };
@@ -0,0 +1,81 @@
1
+ import * as i0 from '@angular/core';
2
+ import { EventEmitter } from '@angular/core';
3
+ import { FormGroup } from '@angular/forms';
4
+ import { FormlyFieldConfig } from '@ngx-formly/core';
5
+
6
+ type LogicalOperator = 'and' | 'or';
7
+ type GroupOperator = 'group';
8
+ interface ConditionGroup$1 {
9
+ operator: LogicalOperator;
10
+ conditions: (ODataCondition | ConditionGroup$1)[];
11
+ }
12
+ interface ODataQueryModel {
13
+ conditions: (ODataCondition | ConditionGroup$1)[];
14
+ orderBy: ODataOrderBy[];
15
+ top?: number;
16
+ skip?: number;
17
+ count?: boolean;
18
+ expand?: string[];
19
+ }
20
+ interface ODataQueryBuilderFieldConfig extends FormlyFieldConfig {
21
+ fieldArray?: {
22
+ fieldGroup: FormlyFieldConfig[];
23
+ };
24
+ }
25
+ type FieldType = 'string' | 'number' | 'boolean' | 'date' | 'datetime';
26
+ interface EntityField {
27
+ value: string;
28
+ label: string;
29
+ type: FieldType;
30
+ }
31
+ type ODataOperator = 'eq' | 'ne' | 'gt' | 'ge' | 'lt' | 'le' | 'contains' | 'startswith' | 'endswith';
32
+ interface ODataCondition {
33
+ field: string;
34
+ operator: ODataOperator;
35
+ value: any;
36
+ }
37
+ interface ODataOrderBy {
38
+ field: string;
39
+ direction: 'asc' | 'desc';
40
+ }
41
+
42
+ interface ConditionGroup {
43
+ operator: 'and' | 'or';
44
+ conditions: Condition[];
45
+ }
46
+ interface Condition {
47
+ field: string;
48
+ operator: string;
49
+ value: any;
50
+ }
51
+ interface OrderBy {
52
+ field: string;
53
+ direction: 'asc' | 'desc';
54
+ }
55
+ interface GroupBy {
56
+ field: string;
57
+ }
58
+ interface QueryModel {
59
+ conditionGroups: ConditionGroup[];
60
+ orderBy: OrderBy[];
61
+ groupBy: GroupBy[];
62
+ top: number | null;
63
+ skip: number | null;
64
+ }
65
+ declare class ODataQueryBuilderComponent {
66
+ set entityFields(fields: EntityField[]);
67
+ get entityFields(): EntityField[];
68
+ private _entityFields;
69
+ queryChange: EventEmitter<string>;
70
+ form: FormGroup<{}>;
71
+ model: QueryModel;
72
+ fields: FormlyFieldConfig[];
73
+ constructor();
74
+ private updateFieldOptions;
75
+ buildQuery(): string;
76
+ static ɵfac: i0.ɵɵFactoryDeclaration<ODataQueryBuilderComponent, never>;
77
+ static ɵcmp: i0.ɵɵComponentDeclaration<ODataQueryBuilderComponent, "app-odata-query-builder", never, { "entityFields": { "alias": "entityFields"; "required": false; }; }, { "queryChange": "queryChange"; }, never, never, true, never>;
78
+ }
79
+
80
+ export { ODataQueryBuilderComponent };
81
+ export type { ConditionGroup$1 as ConditionGroup, EntityField, GroupOperator, LogicalOperator, ODataCondition, ODataOperator, ODataOrderBy, ODataQueryBuilderFieldConfig, ODataQueryModel };
@@ -0,0 +1,17 @@
1
+ import * as _ngx_formly_core from '@ngx-formly/core';
2
+ import { FieldArrayType } from '@ngx-formly/core';
3
+ import * as i0 from '@angular/core';
4
+ import { OnInit, ChangeDetectorRef } from '@angular/core';
5
+
6
+ declare class RepeatTypeComponent extends FieldArrayType implements OnInit {
7
+ private cdr;
8
+ getFirstRowColumns(): _ngx_formly_core.FormlyFieldConfig<_ngx_formly_core.FormlyFieldProps & {
9
+ [additionalProperties: string]: any;
10
+ }>[];
11
+ constructor(cdr: ChangeDetectorRef);
12
+ ngOnInit(): void;
13
+ static ɵfac: i0.ɵɵFactoryDeclaration<RepeatTypeComponent, never>;
14
+ static ɵcmp: i0.ɵɵComponentDeclaration<RepeatTypeComponent, "formly-repeat-section", never, {}, {}, never, never, true, never>;
15
+ }
16
+
17
+ export { RepeatTypeComponent };
@@ -0,0 +1,18 @@
1
+ import * as i0 from '@angular/core';
2
+ import { EventEmitter } from '@angular/core';
3
+
4
+ declare class SidebarCards {
5
+ /** عنوان الهيدر **/
6
+ header: string;
7
+ /** فئة أيقونة Font-Awesome **/
8
+ icon: string;
9
+ /** هل المحتوى مفتوح **/
10
+ open: boolean;
11
+ /** يرسل تغيير الحالة للأبّ **/
12
+ openChange: EventEmitter<boolean>;
13
+ toggle(): void;
14
+ static ɵfac: i0.ɵɵFactoryDeclaration<SidebarCards, never>;
15
+ static ɵcmp: i0.ɵɵComponentDeclaration<SidebarCards, "lib-sidebar-card", never, { "header": { "alias": "header"; "required": false; }; "icon": { "alias": "icon"; "required": false; }; "open": { "alias": "open"; "required": false; }; }, { "openChange": "openChange"; }, never, ["*"], true, never>;
16
+ }
17
+
18
+ export { SidebarCards };