@elite.framework/ng.core 1.0.65 → 2.0.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (148) hide show
  1. package/README.md +2 -22
  2. package/directives/README.md +3 -0
  3. package/fesm2022/{elite.framework-ng.core-src-lib-directives.mjs → elite.framework-ng.core-directives.mjs} +7 -7
  4. package/fesm2022/elite.framework-ng.core-directives.mjs.map +1 -0
  5. package/fesm2022/elite.framework-ng.core-models.mjs +47 -0
  6. package/fesm2022/elite.framework-ng.core-models.mjs.map +1 -0
  7. package/fesm2022/{elite.framework-ng.core-src-lib-pipes.mjs → elite.framework-ng.core-pipes.mjs} +7 -7
  8. package/fesm2022/elite.framework-ng.core-pipes.mjs.map +1 -0
  9. package/fesm2022/elite.framework-ng.core-providers.mjs +26 -0
  10. package/fesm2022/elite.framework-ng.core-providers.mjs.map +1 -0
  11. package/fesm2022/elite.framework-ng.core-services.mjs +509 -0
  12. package/fesm2022/elite.framework-ng.core-services.mjs.map +1 -0
  13. package/fesm2022/elite.framework-ng.core-tokens.mjs +20 -0
  14. package/fesm2022/elite.framework-ng.core-tokens.mjs.map +1 -0
  15. package/fesm2022/elite.framework-ng.core.mjs +7 -2239
  16. package/fesm2022/elite.framework-ng.core.mjs.map +1 -1
  17. package/index.d.ts +4 -648
  18. package/models/README.md +3 -0
  19. package/models/index.d.ts +135 -0
  20. package/package.json +26 -170
  21. package/pipes/README.md +3 -0
  22. package/providers/README.md +3 -0
  23. package/providers/index.d.ts +9 -0
  24. package/services/README.md +3 -0
  25. package/services/index.d.ts +250 -0
  26. package/tokens/README.md +3 -0
  27. package/tokens/index.d.ts +18 -0
  28. package/fesm2022/elite.framework-ng.core-src-lib-components-attachments.mjs +0 -204
  29. package/fesm2022/elite.framework-ng.core-src-lib-components-attachments.mjs.map +0 -1
  30. package/fesm2022/elite.framework-ng.core-src-lib-components-breadcrumb.mjs +0 -132
  31. package/fesm2022/elite.framework-ng.core-src-lib-components-breadcrumb.mjs.map +0 -1
  32. package/fesm2022/elite.framework-ng.core-src-lib-components-color-picker.mjs +0 -76
  33. package/fesm2022/elite.framework-ng.core-src-lib-components-color-picker.mjs.map +0 -1
  34. package/fesm2022/elite.framework-ng.core-src-lib-components-column-settings-popover.mjs +0 -172
  35. package/fesm2022/elite.framework-ng.core-src-lib-components-column-settings-popover.mjs.map +0 -1
  36. package/fesm2022/elite.framework-ng.core-src-lib-components-condition-editor.mjs +0 -794
  37. package/fesm2022/elite.framework-ng.core-src-lib-components-condition-editor.mjs.map +0 -1
  38. package/fesm2022/elite.framework-ng.core-src-lib-components-custom-switch.mjs +0 -110
  39. package/fesm2022/elite.framework-ng.core-src-lib-components-custom-switch.mjs.map +0 -1
  40. package/fesm2022/elite.framework-ng.core-src-lib-components-deactivation-reason.mjs +0 -130
  41. package/fesm2022/elite.framework-ng.core-src-lib-components-deactivation-reason.mjs.map +0 -1
  42. package/fesm2022/elite.framework-ng.core-src-lib-components-form-button.mjs +0 -50
  43. package/fesm2022/elite.framework-ng.core-src-lib-components-form-button.mjs.map +0 -1
  44. package/fesm2022/elite.framework-ng.core-src-lib-components-form-field.mjs +0 -154
  45. package/fesm2022/elite.framework-ng.core-src-lib-components-form-field.mjs.map +0 -1
  46. package/fesm2022/elite.framework-ng.core-src-lib-components-form-template.mjs +0 -24
  47. package/fesm2022/elite.framework-ng.core-src-lib-components-form-template.mjs.map +0 -1
  48. package/fesm2022/elite.framework-ng.core-src-lib-components-formly-avatar-image.mjs +0 -100
  49. package/fesm2022/elite.framework-ng.core-src-lib-components-formly-avatar-image.mjs.map +0 -1
  50. package/fesm2022/elite.framework-ng.core-src-lib-components-formly-avatar-label.mjs +0 -78
  51. package/fesm2022/elite.framework-ng.core-src-lib-components-formly-avatar-label.mjs.map +0 -1
  52. package/fesm2022/elite.framework-ng.core-src-lib-components-formly-button-selector.mjs +0 -167
  53. package/fesm2022/elite.framework-ng.core-src-lib-components-formly-button-selector.mjs.map +0 -1
  54. package/fesm2022/elite.framework-ng.core-src-lib-components-formly-button.mjs +0 -62
  55. package/fesm2022/elite.framework-ng.core-src-lib-components-formly-button.mjs.map +0 -1
  56. package/fesm2022/elite.framework-ng.core-src-lib-components-formly-split-button.mjs +0 -50
  57. package/fesm2022/elite.framework-ng.core-src-lib-components-formly-split-button.mjs.map +0 -1
  58. package/fesm2022/elite.framework-ng.core-src-lib-components-formly-username-with-domain.mjs +0 -76
  59. package/fesm2022/elite.framework-ng.core-src-lib-components-formly-username-with-domain.mjs.map +0 -1
  60. package/fesm2022/elite.framework-ng.core-src-lib-components-generic-autocomplete.mjs +0 -163
  61. package/fesm2022/elite.framework-ng.core-src-lib-components-generic-autocomplete.mjs.map +0 -1
  62. package/fesm2022/elite.framework-ng.core-src-lib-components-generic-button.mjs +0 -133
  63. package/fesm2022/elite.framework-ng.core-src-lib-components-generic-button.mjs.map +0 -1
  64. package/fesm2022/elite.framework-ng.core-src-lib-components-generic-card.mjs +0 -214
  65. package/fesm2022/elite.framework-ng.core-src-lib-components-generic-card.mjs.map +0 -1
  66. package/fesm2022/elite.framework-ng.core-src-lib-components-generic-crud-table.mjs +0 -385
  67. package/fesm2022/elite.framework-ng.core-src-lib-components-generic-crud-table.mjs.map +0 -1
  68. package/fesm2022/elite.framework-ng.core-src-lib-components-generic-errormessage.mjs +0 -23
  69. package/fesm2022/elite.framework-ng.core-src-lib-components-generic-errormessage.mjs.map +0 -1
  70. package/fesm2022/elite.framework-ng.core-src-lib-components-generic-formly-fields.mjs +0 -53
  71. package/fesm2022/elite.framework-ng.core-src-lib-components-generic-formly-fields.mjs.map +0 -1
  72. package/fesm2022/elite.framework-ng.core-src-lib-components-generic-loadingspinner.mjs +0 -23
  73. package/fesm2022/elite.framework-ng.core-src-lib-components-generic-loadingspinner.mjs.map +0 -1
  74. package/fesm2022/elite.framework-ng.core-src-lib-components-generic-search.mjs +0 -85
  75. package/fesm2022/elite.framework-ng.core-src-lib-components-generic-search.mjs.map +0 -1
  76. package/fesm2022/elite.framework-ng.core-src-lib-components-generic-selector.mjs +0 -430
  77. package/fesm2022/elite.framework-ng.core-src-lib-components-generic-selector.mjs.map +0 -1
  78. package/fesm2022/elite.framework-ng.core-src-lib-components-generic-table.mjs +0 -216
  79. package/fesm2022/elite.framework-ng.core-src-lib-components-generic-table.mjs.map +0 -1
  80. package/fesm2022/elite.framework-ng.core-src-lib-components-header-wrapper.mjs +0 -18
  81. package/fesm2022/elite.framework-ng.core-src-lib-components-header-wrapper.mjs.map +0 -1
  82. package/fesm2022/elite.framework-ng.core-src-lib-components-icon-picker.mjs +0 -195
  83. package/fesm2022/elite.framework-ng.core-src-lib-components-icon-picker.mjs.map +0 -1
  84. package/fesm2022/elite.framework-ng.core-src-lib-components-input-switch.mjs +0 -94
  85. package/fesm2022/elite.framework-ng.core-src-lib-components-input-switch.mjs.map +0 -1
  86. package/fesm2022/elite.framework-ng.core-src-lib-components-input-with-icon.mjs +0 -55
  87. package/fesm2022/elite.framework-ng.core-src-lib-components-input-with-icon.mjs.map +0 -1
  88. package/fesm2022/elite.framework-ng.core-src-lib-components-label-type.mjs +0 -112
  89. package/fesm2022/elite.framework-ng.core-src-lib-components-label-type.mjs.map +0 -1
  90. package/fesm2022/elite.framework-ng.core-src-lib-components-odata-query-builder.mjs +0 -297
  91. package/fesm2022/elite.framework-ng.core-src-lib-components-odata-query-builder.mjs.map +0 -1
  92. package/fesm2022/elite.framework-ng.core-src-lib-components-repeat.mjs +0 -135
  93. package/fesm2022/elite.framework-ng.core-src-lib-components-repeat.mjs.map +0 -1
  94. package/fesm2022/elite.framework-ng.core-src-lib-components-sidebar-cards.mjs +0 -40
  95. package/fesm2022/elite.framework-ng.core-src-lib-components-sidebar-cards.mjs.map +0 -1
  96. package/fesm2022/elite.framework-ng.core-src-lib-components-sidebar-toggles.mjs +0 -41
  97. package/fesm2022/elite.framework-ng.core-src-lib-components-sidebar-toggles.mjs.map +0 -1
  98. package/fesm2022/elite.framework-ng.core-src-lib-components-tabs.mjs +0 -45
  99. package/fesm2022/elite.framework-ng.core-src-lib-components-tabs.mjs.map +0 -1
  100. package/fesm2022/elite.framework-ng.core-src-lib-components-tag-type.mjs +0 -192
  101. package/fesm2022/elite.framework-ng.core-src-lib-components-tag-type.mjs.map +0 -1
  102. package/fesm2022/elite.framework-ng.core-src-lib-components-text-editor.mjs +0 -44
  103. package/fesm2022/elite.framework-ng.core-src-lib-components-text-editor.mjs.map +0 -1
  104. package/fesm2022/elite.framework-ng.core-src-lib-components-wrappers.mjs +0 -174
  105. package/fesm2022/elite.framework-ng.core-src-lib-components-wrappers.mjs.map +0 -1
  106. package/fesm2022/elite.framework-ng.core-src-lib-directives.mjs.map +0 -1
  107. package/fesm2022/elite.framework-ng.core-src-lib-pipes.mjs.map +0 -1
  108. package/src/lib/components/attachments/index.d.ts +0 -31
  109. package/src/lib/components/breadcrumb/index.d.ts +0 -10
  110. package/src/lib/components/color-picker/index.d.ts +0 -9
  111. package/src/lib/components/column-settings-popover/index.d.ts +0 -39
  112. package/src/lib/components/condition-editor/index.d.ts +0 -73
  113. package/src/lib/components/custom-switch/index.d.ts +0 -12
  114. package/src/lib/components/deactivation-reason/index.d.ts +0 -24
  115. package/src/lib/components/form-button/index.d.ts +0 -10
  116. package/src/lib/components/form-field/index.d.ts +0 -30
  117. package/src/lib/components/form-template/index.d.ts +0 -9
  118. package/src/lib/components/formly-avatar-image/index.d.ts +0 -11
  119. package/src/lib/components/formly-avatar-label/index.d.ts +0 -29
  120. package/src/lib/components/formly-button/index.d.ts +0 -13
  121. package/src/lib/components/formly-button-selector/index.d.ts +0 -28
  122. package/src/lib/components/formly-split-button/index.d.ts +0 -16
  123. package/src/lib/components/formly-username-with-domain/index.d.ts +0 -12
  124. package/src/lib/components/generic-autocomplete/index.d.ts +0 -34
  125. package/src/lib/components/generic-button/index.d.ts +0 -35
  126. package/src/lib/components/generic-card/index.d.ts +0 -90
  127. package/src/lib/components/generic-crud-table/index.d.ts +0 -120
  128. package/src/lib/components/generic-errormessage/index.d.ts +0 -10
  129. package/src/lib/components/generic-formly-fields/index.d.ts +0 -22
  130. package/src/lib/components/generic-loadingspinner/index.d.ts +0 -9
  131. package/src/lib/components/generic-search/index.d.ts +0 -29
  132. package/src/lib/components/generic-selector/index.d.ts +0 -66
  133. package/src/lib/components/generic-table/index.d.ts +0 -60
  134. package/src/lib/components/header-wrapper/index.d.ts +0 -8
  135. package/src/lib/components/icon-picker/index.d.ts +0 -23
  136. package/src/lib/components/input-switch/index.d.ts +0 -9
  137. package/src/lib/components/input-with-icon/index.d.ts +0 -10
  138. package/src/lib/components/label-type/index.d.ts +0 -19
  139. package/src/lib/components/odata-query-builder/index.d.ts +0 -81
  140. package/src/lib/components/repeat/index.d.ts +0 -17
  141. package/src/lib/components/sidebar-cards/index.d.ts +0 -18
  142. package/src/lib/components/sidebar-toggles/index.d.ts +0 -18
  143. package/src/lib/components/tabs/index.d.ts +0 -10
  144. package/src/lib/components/tag-type/index.d.ts +0 -27
  145. package/src/lib/components/text-editor/index.d.ts +0 -9
  146. package/src/lib/components/wrappers/index.d.ts +0 -24
  147. /package/{src/lib/directives → directives}/index.d.ts +0 -0
  148. /package/{src/lib/pipes → pipes}/index.d.ts +0 -0
@@ -1,172 +0,0 @@
1
- import * as i0 from '@angular/core';
2
- import { EventEmitter, Output, Input, ViewChild, Component } from '@angular/core';
3
- import { CommonModule } from '@angular/common';
4
- import * as i2 from '@angular/forms';
5
- import { FormsModule } from '@angular/forms';
6
- import * as i3 from 'primeng/popover';
7
- import { PopoverModule } from 'primeng/popover';
8
- import { DividerModule } from 'primeng/divider';
9
- import { ButtonModule } from 'primeng/button';
10
- import { TooltipModule } from 'primeng/tooltip';
11
- import * as i1 from '@ngx-translate/core';
12
- import { TranslateModule } from '@ngx-translate/core';
13
- import * as i5 from 'primeng/orderlist';
14
- import { OrderListModule } from 'primeng/orderlist';
15
- import * as i6 from 'primeng/checkbox';
16
- import { CheckboxModule, Checkbox } from 'primeng/checkbox';
17
- import * as i4 from 'primeng/api';
18
-
19
- // src/app/shared/column-settings-popover/column-settings-popover.component.ts
20
- class ColumnSettingsPopoverComponent {
21
- translate;
22
- op;
23
- fixedColumns = [];
24
- toggleableColumns = [];
25
- // تم إزالة @Input() tableId لأنه لن يستخدم هنا للحفظ
26
- tableId = 'defaultTable';
27
- _displayOrderListColumns = [];
28
- _selectedToggleableColumns = [];
29
- get selectedToggleableColumns() {
30
- return this._selectedToggleableColumns;
31
- }
32
- set selectedToggleableColumns(val) {
33
- if (!this.areColumnsEqual(this._selectedToggleableColumns, val)) {
34
- this._selectedToggleableColumns = val;
35
- this.syncDisplayColumnsWithSelectedInput();
36
- }
37
- }
38
- selectedToggleableColumnsChange = new EventEmitter();
39
- // تم إزالة @Output() columnRemoved و @Output() popoverHidden لأن selectedToggleableColumnsChange يغني عنهما
40
- constructor(translate) {
41
- this.translate = translate;
42
- }
43
- ngOnInit() {
44
- console.log('ColumnSettingsPopoverComponent: ngOnInit called.');
45
- // في ngOnInit، نقوم فقط بتهيئة الأعمدة للعرض بناءً على المدخلات
46
- this.initializeDisplayColumns();
47
- this.syncDisplayColumnsWithSelectedInput();
48
- }
49
- ngOnChanges(changes) {
50
- // عند تغير toggleableColumns، نعيد تهيئة القائمة للعرض
51
- if (changes['toggleableColumns']) {
52
- console.log('ColumnSettingsPopoverComponent: toggleableColumns input changed.');
53
- this.initializeDisplayColumns();
54
- }
55
- // عند تغير selectedToggleableColumns من المكون الأب، نقوم بمزامنة حالتها
56
- if (changes['selectedToggleableColumns']) {
57
- console.log('ColumnSettingsPopoverComponent: selectedToggleableColumns input changed (from parent).');
58
- this.syncDisplayColumnsWithSelectedInput();
59
- }
60
- }
61
- // ⭐ Getter/Setter لمربع الاختيار "تحديد الكل" ⭐
62
- get allColumnsSelected() {
63
- if (!this._displayOrderListColumns || this._displayOrderListColumns.length === 0) {
64
- return false;
65
- }
66
- return this._displayOrderListColumns.every(col => col.isSelected);
67
- }
68
- set allColumnsSelected(value) {
69
- this._displayOrderListColumns.forEach(col => col.isSelected = value);
70
- this.emitCurrentSelection();
71
- }
72
- // ⭐ دالة لتهيئة _displayOrderListColumns من toggleableColumns ⭐
73
- initializeDisplayColumns() {
74
- this._displayOrderListColumns = this.toggleableColumns.map(col => ({
75
- ...col,
76
- isSelected: false // نترك isSelected كـ false مؤقتاً
77
- }));
78
- }
79
- // دالة لمزامنة حالة العرض مع الأعمدة المحددة من المكون الأب
80
- syncDisplayColumnsWithSelectedInput() {
81
- if (!this._displayOrderListColumns || this._displayOrderListColumns.length === 0) {
82
- return;
83
- }
84
- const selectedFieldsSet = new Set(this._selectedToggleableColumns.map(col => col.field));
85
- // تحديث خاصية isSelected بناءً على selectedFieldsSet
86
- this._displayOrderListColumns.forEach(col => {
87
- col.isSelected = selectedFieldsSet.has(col.field);
88
- });
89
- // إعادة ترتيب القائمة لتكون الأعمدة المحددة في الأعلى
90
- const orderedSelected = this._displayOrderListColumns
91
- .filter(col => selectedFieldsSet.has(col.field))
92
- .sort((a, b) => {
93
- return Array.from(selectedFieldsSet).indexOf(a.field) - Array.from(selectedFieldsSet).indexOf(b.field);
94
- });
95
- const orderedUnselected = this._displayOrderListColumns.filter(col => !selectedFieldsSet.has(col.field));
96
- this._displayOrderListColumns = [...orderedSelected, ...orderedUnselected];
97
- console.log('ColumnSettingsPopoverComponent: _displayOrderListColumns synced with selectedToggleableColumns input:', this._displayOrderListColumns);
98
- }
99
- toggle(event) {
100
- this.op.toggle(event);
101
- }
102
- hide() {
103
- this.op.hide();
104
- }
105
- // عند تغيير حالة أي مربع اختيار
106
- onColumnVisibilityChange(column) {
107
- this.emitCurrentSelection();
108
- }
109
- // عند إعادة ترتيب القائمة
110
- onOrderListReorder(event) {
111
- this.emitCurrentSelection();
112
- }
113
- // دالة لإرسال التغييرات إلى المكون الأب
114
- emitCurrentSelection() {
115
- const currentSelected = this._displayOrderListColumns
116
- .filter(col => col.isSelected)
117
- .map(col => {
118
- const { isSelected, ...rest } = col;
119
- return rest;
120
- });
121
- this.selectedToggleableColumnsChange.emit(currentSelected);
122
- }
123
- areColumnsEqual(cols1, cols2) {
124
- if (cols1.length !== cols2.length) {
125
- return false;
126
- }
127
- // التحقق من أن العناصر هي نفسها وبنفس الترتيب
128
- for (let i = 0; i < cols1.length; i++) {
129
- if (cols1[i].field !== cols2[i].field) {
130
- return false;
131
- }
132
- }
133
- return true;
134
- }
135
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.4", ngImport: i0, type: ColumnSettingsPopoverComponent, deps: [{ token: i1.TranslateService }], target: i0.ɵɵFactoryTarget.Component });
136
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.1.4", type: ColumnSettingsPopoverComponent, isStandalone: true, selector: "lib-column-settings-popover", inputs: { fixedColumns: "fixedColumns", toggleableColumns: "toggleableColumns", tableId: "tableId", selectedToggleableColumns: "selectedToggleableColumns" }, outputs: { selectedToggleableColumnsChange: "selectedToggleableColumnsChange" }, viewQueries: [{ propertyName: "op", first: true, predicate: ["op"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "<p-popover #op appendTo=\"body\" styleClass=\"w-80\">\n\n\n\n\n <!-- \u2B50 \u0645\u0631\u0628\u0639 \u0627\u062E\u062A\u064A\u0627\u0631 \"\u062A\u062D\u062F\u064A\u062F \u0627\u0644\u0643\u0644\" \u2B50 -->\n <div class=\"flex items-center mb-3\">\n <p-checkbox\n [(ngModel)]=\"allColumnsSelected\"\n [binary]=\"true\"\n inputId=\"selectAllColumns\"\n ></p-checkbox>\n <label for=\"selectAllColumns\" class=\"ml-2 cursor-pointer font-medium text-color-secondary\">\n {{ 'COMMON.SELECT_ALL' | translate }}\n </label>\n </div>\n\n <p-orderList\n [value]=\"_displayOrderListColumns\"\n header=\"{{ 'COMMON.REORDER_AND_SELECT_COLUMNS' | translate }}\"\n [listStyle]=\"{'height':'250px'}\"\n [responsive]=\"true\"\n [dragdrop]=\"true\"\n (onReorder)=\"onOrderListReorder($event)\"\n styleClass=\"w-full\"\n >\n <ng-template let-col pTemplate=\"item\">\n <div class=\"p-2 border rounded-md flex items-center justify-between w-full\">\n <!-- \u0645\u0631\u0628\u0639 \u0627\u062E\u062A\u064A\u0627\u0631 \u0644\u0644\u062A\u062D\u0643\u0645 \u0641\u064A \u0627\u0644\u0631\u0624\u064A\u0629 -->\n <p-checkbox\n [(ngModel)]=\"col.isSelected\"\n (ngModelChange)=\"onColumnVisibilityChange(col)\"\n [binary]=\"true\"\n class=\"mr-4\"\n ></p-checkbox>\n <span class=\"flex-grow\">{{ col.header | translate }}</span>\n <i class=\"pi pi-bars text-surface-400 cursor-grab\"></i> <!-- \u0623\u064A\u0642\u0648\u0646\u0629 \u0627\u0644\u0633\u062D\u0628 -->\n </div>\n </ng-template>\n </p-orderList>\n\n\n</p-popover>\n", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: PopoverModule }, { kind: "component", type: i3.Popover, selector: "p-popover", inputs: ["ariaLabel", "ariaLabelledBy", "dismissable", "style", "styleClass", "appendTo", "autoZIndex", "ariaCloseLabel", "baseZIndex", "focusOnShow", "showTransitionOptions", "hideTransitionOptions"], outputs: ["onShow", "onHide"] }, { kind: "directive", type: i4.PrimeTemplate, selector: "[pTemplate]", inputs: ["type", "pTemplate"] }, { kind: "ngmodule", type: DividerModule }, { kind: "ngmodule", type: ButtonModule }, { kind: "ngmodule", type: TooltipModule }, { kind: "ngmodule", type: TranslateModule }, { kind: "ngmodule", type: OrderListModule }, { kind: "component", type: i5.OrderList, selector: "p-orderList, p-orderlist, p-order-list", inputs: ["header", "styleClass", "tabindex", "ariaLabel", "ariaLabelledBy", "listStyle", "responsive", "filterBy", "filterPlaceholder", "filterLocale", "metaKeySelection", "dragdrop", "controlsPosition", "ariaFilterLabel", "filterMatchMode", "breakpoint", "stripedRows", "disabled", "trackBy", "scrollHeight", "autoOptionFocus", "selection", "value", "buttonProps", "moveUpButtonProps", "moveTopButtonProps", "moveDownButtonProps", "moveBottomButtonProps"], outputs: ["selectionChange", "onReorder", "onSelectionChange", "onFilterEvent", "onFocus", "onBlur"] }, { kind: "ngmodule", type: CheckboxModule }, { kind: "component", type: i6.Checkbox, selector: "p-checkbox, p-checkBox, p-check-box", inputs: ["value", "binary", "ariaLabelledBy", "ariaLabel", "tabindex", "inputId", "inputStyle", "styleClass", "inputClass", "indeterminate", "formControl", "checkboxIcon", "readonly", "autofocus", "trueValue", "falseValue", "variant", "size"], outputs: ["onChange", "onFocus", "onBlur"] }, { kind: "pipe", type: i1.TranslatePipe, name: "translate" }] });
137
- }
138
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.4", ngImport: i0, type: ColumnSettingsPopoverComponent, decorators: [{
139
- type: Component,
140
- args: [{ selector: 'lib-column-settings-popover', standalone: true, imports: [
141
- CommonModule,
142
- FormsModule,
143
- PopoverModule,
144
- DividerModule,
145
- ButtonModule,
146
- TooltipModule,
147
- TranslateModule,
148
- OrderListModule,
149
- CheckboxModule,
150
- Checkbox
151
- ], template: "<p-popover #op appendTo=\"body\" styleClass=\"w-80\">\n\n\n\n\n <!-- \u2B50 \u0645\u0631\u0628\u0639 \u0627\u062E\u062A\u064A\u0627\u0631 \"\u062A\u062D\u062F\u064A\u062F \u0627\u0644\u0643\u0644\" \u2B50 -->\n <div class=\"flex items-center mb-3\">\n <p-checkbox\n [(ngModel)]=\"allColumnsSelected\"\n [binary]=\"true\"\n inputId=\"selectAllColumns\"\n ></p-checkbox>\n <label for=\"selectAllColumns\" class=\"ml-2 cursor-pointer font-medium text-color-secondary\">\n {{ 'COMMON.SELECT_ALL' | translate }}\n </label>\n </div>\n\n <p-orderList\n [value]=\"_displayOrderListColumns\"\n header=\"{{ 'COMMON.REORDER_AND_SELECT_COLUMNS' | translate }}\"\n [listStyle]=\"{'height':'250px'}\"\n [responsive]=\"true\"\n [dragdrop]=\"true\"\n (onReorder)=\"onOrderListReorder($event)\"\n styleClass=\"w-full\"\n >\n <ng-template let-col pTemplate=\"item\">\n <div class=\"p-2 border rounded-md flex items-center justify-between w-full\">\n <!-- \u0645\u0631\u0628\u0639 \u0627\u062E\u062A\u064A\u0627\u0631 \u0644\u0644\u062A\u062D\u0643\u0645 \u0641\u064A \u0627\u0644\u0631\u0624\u064A\u0629 -->\n <p-checkbox\n [(ngModel)]=\"col.isSelected\"\n (ngModelChange)=\"onColumnVisibilityChange(col)\"\n [binary]=\"true\"\n class=\"mr-4\"\n ></p-checkbox>\n <span class=\"flex-grow\">{{ col.header | translate }}</span>\n <i class=\"pi pi-bars text-surface-400 cursor-grab\"></i> <!-- \u0623\u064A\u0642\u0648\u0646\u0629 \u0627\u0644\u0633\u062D\u0628 -->\n </div>\n </ng-template>\n </p-orderList>\n\n\n</p-popover>\n" }]
152
- }], ctorParameters: () => [{ type: i1.TranslateService }], propDecorators: { op: [{
153
- type: ViewChild,
154
- args: ['op']
155
- }], fixedColumns: [{
156
- type: Input
157
- }], toggleableColumns: [{
158
- type: Input
159
- }], tableId: [{
160
- type: Input
161
- }], selectedToggleableColumns: [{
162
- type: Input
163
- }], selectedToggleableColumnsChange: [{
164
- type: Output
165
- }] } });
166
-
167
- /**
168
- * Generated bundle index. Do not edit.
169
- */
170
-
171
- export { ColumnSettingsPopoverComponent };
172
- //# sourceMappingURL=elite.framework-ng.core-src-lib-components-column-settings-popover.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"elite.framework-ng.core-src-lib-components-column-settings-popover.mjs","sources":["../../../projects/core/src/lib/components/column-settings-popover/column-settings-popover.ts","../../../projects/core/src/lib/components/column-settings-popover/column-settings-popover.html","../../../projects/core/src/lib/components/column-settings-popover/elite.framework-ng.core-src-lib-components-column-settings-popover.ts"],"sourcesContent":["// src/app/shared/column-settings-popover/column-settings-popover.component.ts\nimport { Component, Input, Output, EventEmitter, ViewChild, OnInit, OnChanges, SimpleChanges, inject } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FormsModule } from '@angular/forms';\nimport { PopoverModule } from 'primeng/popover';\nimport { DividerModule } from 'primeng/divider';\nimport { ButtonModule } from 'primeng/button';\nimport { TooltipModule } from 'primeng/tooltip';\nimport { TranslateModule, TranslateService } from '@ngx-translate/core';\nimport { ColumnDef } from '@elite.framework/ng.core';\nimport { OrderListModule } from 'primeng/orderlist';\nimport { CheckboxModule, Checkbox } from 'primeng/checkbox';\n\ntype PopoverColumnDef<T> = ColumnDef<T> & { isSelected?: boolean };\n\n@Component({\n  selector: 'lib-column-settings-popover',\n  standalone: true,\n  imports: [\n    CommonModule,\n    FormsModule,\n    PopoverModule,\n    DividerModule,\n    ButtonModule,\n    TooltipModule,\n    TranslateModule,\n    OrderListModule,\n    CheckboxModule,\n    Checkbox\n  ],\n  templateUrl: './column-settings-popover.html',\n  styleUrls: ['./column-settings-popover.css']\n})\nexport class ColumnSettingsPopoverComponent<T extends { [key: string]: any }> implements OnInit, OnChanges {\n  @ViewChild('op') op: any;\n\n  @Input() fixedColumns: ColumnDef<T>[] = [];\n  @Input() toggleableColumns: ColumnDef<T>[] = [];\n\n  // تم إزالة @Input() tableId لأنه لن يستخدم هنا للحفظ\n  @Input() tableId: string = 'defaultTable';\n\n\n  _displayOrderListColumns: PopoverColumnDef<T>[] = [];\n  private _selectedToggleableColumns: ColumnDef<T>[] = [];\n\n  @Input()\n  get selectedToggleableColumns(): ColumnDef<T>[] {\n    return this._selectedToggleableColumns;\n  }\n  set selectedToggleableColumns(val: ColumnDef<T>[]) {\n    if (!this.areColumnsEqual(this._selectedToggleableColumns, val)) {\n      this._selectedToggleableColumns = val;\n      this.syncDisplayColumnsWithSelectedInput();\n    }\n  }\n\n  @Output() selectedToggleableColumnsChange = new EventEmitter<ColumnDef<T>[]>();\n\n  // تم إزالة @Output() columnRemoved و @Output() popoverHidden لأن selectedToggleableColumnsChange يغني عنهما\n\n  constructor(private translate: TranslateService) {}\n\n  ngOnInit(): void {\n    console.log('ColumnSettingsPopoverComponent: ngOnInit called.');\n    // في ngOnInit، نقوم فقط بتهيئة الأعمدة للعرض بناءً على المدخلات\n    this.initializeDisplayColumns();\n    this.syncDisplayColumnsWithSelectedInput();\n  }\n\n  ngOnChanges(changes: SimpleChanges): void {\n    // عند تغير toggleableColumns، نعيد تهيئة القائمة للعرض\n    if (changes['toggleableColumns']) {\n      console.log('ColumnSettingsPopoverComponent: toggleableColumns input changed.');\n      this.initializeDisplayColumns();\n    }\n    // عند تغير selectedToggleableColumns من المكون الأب، نقوم بمزامنة حالتها\n    if (changes['selectedToggleableColumns']) {\n      console.log('ColumnSettingsPopoverComponent: selectedToggleableColumns input changed (from parent).');\n      this.syncDisplayColumnsWithSelectedInput();\n    }\n  }\n // ⭐ Getter/Setter لمربع الاختيار \"تحديد الكل\" ⭐\n  get allColumnsSelected(): boolean {\n    if (!this._displayOrderListColumns || this._displayOrderListColumns.length === 0) {\n      return false;\n    }\n    return this._displayOrderListColumns.every(col => col.isSelected);\n  }\n\n  set allColumnsSelected(value: boolean) {\n    this._displayOrderListColumns.forEach(col => col.isSelected = value);\n    this.emitCurrentSelection();\n  }\n\n  // ⭐ دالة لتهيئة _displayOrderListColumns من toggleableColumns ⭐\n  private initializeDisplayColumns(): void {\n    this._displayOrderListColumns = this.toggleableColumns.map(col => ({\n      ...col,\n      isSelected: false // نترك isSelected كـ false مؤقتاً\n    }));\n  }\n\n  // دالة لمزامنة حالة العرض مع الأعمدة المحددة من المكون الأب\n  private syncDisplayColumnsWithSelectedInput(): void {\n    if (!this._displayOrderListColumns || this._displayOrderListColumns.length === 0) {\n      return;\n    }\n\n    const selectedFieldsSet = new Set(this._selectedToggleableColumns.map(col => col.field));\n\n    // تحديث خاصية isSelected بناءً على selectedFieldsSet\n    this._displayOrderListColumns.forEach(col => {\n      col.isSelected = selectedFieldsSet.has(col.field);\n    });\n\n    // إعادة ترتيب القائمة لتكون الأعمدة المحددة في الأعلى\n    const orderedSelected = this._displayOrderListColumns\n      .filter(col => selectedFieldsSet.has(col.field))\n      .sort((a, b) => {\n        return Array.from(selectedFieldsSet).indexOf(a.field) - Array.from(selectedFieldsSet).indexOf(b.field);\n      });\n\n    const orderedUnselected = this._displayOrderListColumns.filter(col => !selectedFieldsSet.has(col.field));\n\n    this._displayOrderListColumns = [...orderedSelected, ...orderedUnselected];\n    console.log('ColumnSettingsPopoverComponent: _displayOrderListColumns synced with selectedToggleableColumns input:', this._displayOrderListColumns);\n  }\n\n  toggle(event: Event): void {\n    this.op.toggle(event);\n  }\n\n  hide(): void {\n    this.op.hide();\n  }\n\n  // عند تغيير حالة أي مربع اختيار\n  onColumnVisibilityChange(column: PopoverColumnDef<T>): void {\n    this.emitCurrentSelection();\n  }\n\n  // عند إعادة ترتيب القائمة\n  onOrderListReorder(event: any): void {\n    this.emitCurrentSelection();\n  }\n\n  // دالة لإرسال التغييرات إلى المكون الأب\n  private emitCurrentSelection(): void {\n    const currentSelected = this._displayOrderListColumns\n      .filter(col => col.isSelected)\n      .map(col => {\n        const { isSelected, ...rest } = col;\n        return rest as ColumnDef<T>;\n      });\n\n    this.selectedToggleableColumnsChange.emit(currentSelected);\n  }\n\n  private areColumnsEqual(cols1: ColumnDef<T>[], cols2: ColumnDef<T>[]): boolean {\n    if (cols1.length !== cols2.length) {\n      return false;\n    }\n    // التحقق من أن العناصر هي نفسها وبنفس الترتيب\n    for (let i = 0; i < cols1.length; i++) {\n      if (cols1[i].field !== cols2[i].field) {\n        return false;\n      }\n    }\n    return true;\n  }\n}\n","<p-popover #op appendTo=\"body\" styleClass=\"w-80\">\n\n\n\n\n <!-- ⭐ مربع اختيار \"تحديد الكل\" ⭐ -->\n <div class=\"flex items-center mb-3\">\n <p-checkbox\n [(ngModel)]=\"allColumnsSelected\"\n [binary]=\"true\"\n inputId=\"selectAllColumns\"\n ></p-checkbox>\n <label for=\"selectAllColumns\" class=\"ml-2 cursor-pointer font-medium text-color-secondary\">\n {{ 'COMMON.SELECT_ALL' | translate }}\n </label>\n </div>\n\n <p-orderList\n [value]=\"_displayOrderListColumns\"\n header=\"{{ 'COMMON.REORDER_AND_SELECT_COLUMNS' | translate }}\"\n [listStyle]=\"{'height':'250px'}\"\n [responsive]=\"true\"\n [dragdrop]=\"true\"\n (onReorder)=\"onOrderListReorder($event)\"\n styleClass=\"w-full\"\n >\n <ng-template let-col pTemplate=\"item\">\n <div class=\"p-2 border rounded-md flex items-center justify-between w-full\">\n <!-- مربع اختيار للتحكم في الرؤية -->\n <p-checkbox\n [(ngModel)]=\"col.isSelected\"\n (ngModelChange)=\"onColumnVisibilityChange(col)\"\n [binary]=\"true\"\n class=\"mr-4\"\n ></p-checkbox>\n <span class=\"flex-grow\">{{ col.header | translate }}</span>\n <i class=\"pi pi-bars text-surface-400 cursor-grab\"></i> <!-- أيقونة السحب -->\n </div>\n </ng-template>\n </p-orderList>\n\n\n</p-popover>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}