@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.
- package/README.md +2 -22
- package/directives/README.md +3 -0
- package/fesm2022/{elite.framework-ng.core-src-lib-directives.mjs → elite.framework-ng.core-directives.mjs} +7 -7
- package/fesm2022/elite.framework-ng.core-directives.mjs.map +1 -0
- package/fesm2022/elite.framework-ng.core-models.mjs +47 -0
- package/fesm2022/elite.framework-ng.core-models.mjs.map +1 -0
- package/fesm2022/{elite.framework-ng.core-src-lib-pipes.mjs → elite.framework-ng.core-pipes.mjs} +7 -7
- package/fesm2022/elite.framework-ng.core-pipes.mjs.map +1 -0
- package/fesm2022/elite.framework-ng.core-providers.mjs +26 -0
- package/fesm2022/elite.framework-ng.core-providers.mjs.map +1 -0
- package/fesm2022/elite.framework-ng.core-services.mjs +509 -0
- package/fesm2022/elite.framework-ng.core-services.mjs.map +1 -0
- package/fesm2022/elite.framework-ng.core-tokens.mjs +20 -0
- package/fesm2022/elite.framework-ng.core-tokens.mjs.map +1 -0
- package/fesm2022/elite.framework-ng.core.mjs +7 -2239
- package/fesm2022/elite.framework-ng.core.mjs.map +1 -1
- package/index.d.ts +4 -648
- package/models/README.md +3 -0
- package/models/index.d.ts +135 -0
- package/package.json +26 -170
- package/pipes/README.md +3 -0
- package/providers/README.md +3 -0
- package/providers/index.d.ts +9 -0
- package/services/README.md +3 -0
- package/services/index.d.ts +250 -0
- package/tokens/README.md +3 -0
- package/tokens/index.d.ts +18 -0
- package/fesm2022/elite.framework-ng.core-src-lib-components-attachments.mjs +0 -204
- package/fesm2022/elite.framework-ng.core-src-lib-components-attachments.mjs.map +0 -1
- package/fesm2022/elite.framework-ng.core-src-lib-components-breadcrumb.mjs +0 -132
- package/fesm2022/elite.framework-ng.core-src-lib-components-breadcrumb.mjs.map +0 -1
- package/fesm2022/elite.framework-ng.core-src-lib-components-color-picker.mjs +0 -76
- package/fesm2022/elite.framework-ng.core-src-lib-components-color-picker.mjs.map +0 -1
- package/fesm2022/elite.framework-ng.core-src-lib-components-column-settings-popover.mjs +0 -172
- package/fesm2022/elite.framework-ng.core-src-lib-components-column-settings-popover.mjs.map +0 -1
- package/fesm2022/elite.framework-ng.core-src-lib-components-condition-editor.mjs +0 -794
- package/fesm2022/elite.framework-ng.core-src-lib-components-condition-editor.mjs.map +0 -1
- package/fesm2022/elite.framework-ng.core-src-lib-components-custom-switch.mjs +0 -110
- package/fesm2022/elite.framework-ng.core-src-lib-components-custom-switch.mjs.map +0 -1
- package/fesm2022/elite.framework-ng.core-src-lib-components-deactivation-reason.mjs +0 -130
- package/fesm2022/elite.framework-ng.core-src-lib-components-deactivation-reason.mjs.map +0 -1
- package/fesm2022/elite.framework-ng.core-src-lib-components-form-button.mjs +0 -50
- package/fesm2022/elite.framework-ng.core-src-lib-components-form-button.mjs.map +0 -1
- package/fesm2022/elite.framework-ng.core-src-lib-components-form-field.mjs +0 -154
- package/fesm2022/elite.framework-ng.core-src-lib-components-form-field.mjs.map +0 -1
- package/fesm2022/elite.framework-ng.core-src-lib-components-form-template.mjs +0 -24
- package/fesm2022/elite.framework-ng.core-src-lib-components-form-template.mjs.map +0 -1
- package/fesm2022/elite.framework-ng.core-src-lib-components-formly-avatar-image.mjs +0 -100
- package/fesm2022/elite.framework-ng.core-src-lib-components-formly-avatar-image.mjs.map +0 -1
- package/fesm2022/elite.framework-ng.core-src-lib-components-formly-avatar-label.mjs +0 -78
- package/fesm2022/elite.framework-ng.core-src-lib-components-formly-avatar-label.mjs.map +0 -1
- package/fesm2022/elite.framework-ng.core-src-lib-components-formly-button-selector.mjs +0 -167
- package/fesm2022/elite.framework-ng.core-src-lib-components-formly-button-selector.mjs.map +0 -1
- package/fesm2022/elite.framework-ng.core-src-lib-components-formly-button.mjs +0 -62
- package/fesm2022/elite.framework-ng.core-src-lib-components-formly-button.mjs.map +0 -1
- package/fesm2022/elite.framework-ng.core-src-lib-components-formly-split-button.mjs +0 -50
- package/fesm2022/elite.framework-ng.core-src-lib-components-formly-split-button.mjs.map +0 -1
- package/fesm2022/elite.framework-ng.core-src-lib-components-formly-username-with-domain.mjs +0 -76
- package/fesm2022/elite.framework-ng.core-src-lib-components-formly-username-with-domain.mjs.map +0 -1
- package/fesm2022/elite.framework-ng.core-src-lib-components-generic-autocomplete.mjs +0 -163
- package/fesm2022/elite.framework-ng.core-src-lib-components-generic-autocomplete.mjs.map +0 -1
- package/fesm2022/elite.framework-ng.core-src-lib-components-generic-button.mjs +0 -133
- package/fesm2022/elite.framework-ng.core-src-lib-components-generic-button.mjs.map +0 -1
- package/fesm2022/elite.framework-ng.core-src-lib-components-generic-card.mjs +0 -214
- package/fesm2022/elite.framework-ng.core-src-lib-components-generic-card.mjs.map +0 -1
- package/fesm2022/elite.framework-ng.core-src-lib-components-generic-crud-table.mjs +0 -385
- package/fesm2022/elite.framework-ng.core-src-lib-components-generic-crud-table.mjs.map +0 -1
- package/fesm2022/elite.framework-ng.core-src-lib-components-generic-errormessage.mjs +0 -23
- package/fesm2022/elite.framework-ng.core-src-lib-components-generic-errormessage.mjs.map +0 -1
- package/fesm2022/elite.framework-ng.core-src-lib-components-generic-formly-fields.mjs +0 -53
- package/fesm2022/elite.framework-ng.core-src-lib-components-generic-formly-fields.mjs.map +0 -1
- package/fesm2022/elite.framework-ng.core-src-lib-components-generic-loadingspinner.mjs +0 -23
- package/fesm2022/elite.framework-ng.core-src-lib-components-generic-loadingspinner.mjs.map +0 -1
- package/fesm2022/elite.framework-ng.core-src-lib-components-generic-search.mjs +0 -85
- package/fesm2022/elite.framework-ng.core-src-lib-components-generic-search.mjs.map +0 -1
- package/fesm2022/elite.framework-ng.core-src-lib-components-generic-selector.mjs +0 -430
- package/fesm2022/elite.framework-ng.core-src-lib-components-generic-selector.mjs.map +0 -1
- package/fesm2022/elite.framework-ng.core-src-lib-components-generic-table.mjs +0 -216
- package/fesm2022/elite.framework-ng.core-src-lib-components-generic-table.mjs.map +0 -1
- package/fesm2022/elite.framework-ng.core-src-lib-components-header-wrapper.mjs +0 -18
- package/fesm2022/elite.framework-ng.core-src-lib-components-header-wrapper.mjs.map +0 -1
- package/fesm2022/elite.framework-ng.core-src-lib-components-icon-picker.mjs +0 -195
- package/fesm2022/elite.framework-ng.core-src-lib-components-icon-picker.mjs.map +0 -1
- package/fesm2022/elite.framework-ng.core-src-lib-components-input-switch.mjs +0 -94
- package/fesm2022/elite.framework-ng.core-src-lib-components-input-switch.mjs.map +0 -1
- package/fesm2022/elite.framework-ng.core-src-lib-components-input-with-icon.mjs +0 -55
- package/fesm2022/elite.framework-ng.core-src-lib-components-input-with-icon.mjs.map +0 -1
- package/fesm2022/elite.framework-ng.core-src-lib-components-label-type.mjs +0 -112
- package/fesm2022/elite.framework-ng.core-src-lib-components-label-type.mjs.map +0 -1
- package/fesm2022/elite.framework-ng.core-src-lib-components-odata-query-builder.mjs +0 -297
- package/fesm2022/elite.framework-ng.core-src-lib-components-odata-query-builder.mjs.map +0 -1
- package/fesm2022/elite.framework-ng.core-src-lib-components-repeat.mjs +0 -135
- package/fesm2022/elite.framework-ng.core-src-lib-components-repeat.mjs.map +0 -1
- package/fesm2022/elite.framework-ng.core-src-lib-components-sidebar-cards.mjs +0 -40
- package/fesm2022/elite.framework-ng.core-src-lib-components-sidebar-cards.mjs.map +0 -1
- package/fesm2022/elite.framework-ng.core-src-lib-components-sidebar-toggles.mjs +0 -41
- package/fesm2022/elite.framework-ng.core-src-lib-components-sidebar-toggles.mjs.map +0 -1
- package/fesm2022/elite.framework-ng.core-src-lib-components-tabs.mjs +0 -45
- package/fesm2022/elite.framework-ng.core-src-lib-components-tabs.mjs.map +0 -1
- package/fesm2022/elite.framework-ng.core-src-lib-components-tag-type.mjs +0 -192
- package/fesm2022/elite.framework-ng.core-src-lib-components-tag-type.mjs.map +0 -1
- package/fesm2022/elite.framework-ng.core-src-lib-components-text-editor.mjs +0 -44
- package/fesm2022/elite.framework-ng.core-src-lib-components-text-editor.mjs.map +0 -1
- package/fesm2022/elite.framework-ng.core-src-lib-components-wrappers.mjs +0 -174
- package/fesm2022/elite.framework-ng.core-src-lib-components-wrappers.mjs.map +0 -1
- package/fesm2022/elite.framework-ng.core-src-lib-directives.mjs.map +0 -1
- package/fesm2022/elite.framework-ng.core-src-lib-pipes.mjs.map +0 -1
- package/src/lib/components/attachments/index.d.ts +0 -31
- package/src/lib/components/breadcrumb/index.d.ts +0 -10
- package/src/lib/components/color-picker/index.d.ts +0 -9
- package/src/lib/components/column-settings-popover/index.d.ts +0 -39
- package/src/lib/components/condition-editor/index.d.ts +0 -73
- package/src/lib/components/custom-switch/index.d.ts +0 -12
- package/src/lib/components/deactivation-reason/index.d.ts +0 -24
- package/src/lib/components/form-button/index.d.ts +0 -10
- package/src/lib/components/form-field/index.d.ts +0 -30
- package/src/lib/components/form-template/index.d.ts +0 -9
- package/src/lib/components/formly-avatar-image/index.d.ts +0 -11
- package/src/lib/components/formly-avatar-label/index.d.ts +0 -29
- package/src/lib/components/formly-button/index.d.ts +0 -13
- package/src/lib/components/formly-button-selector/index.d.ts +0 -28
- package/src/lib/components/formly-split-button/index.d.ts +0 -16
- package/src/lib/components/formly-username-with-domain/index.d.ts +0 -12
- package/src/lib/components/generic-autocomplete/index.d.ts +0 -34
- package/src/lib/components/generic-button/index.d.ts +0 -35
- package/src/lib/components/generic-card/index.d.ts +0 -90
- package/src/lib/components/generic-crud-table/index.d.ts +0 -120
- package/src/lib/components/generic-errormessage/index.d.ts +0 -10
- package/src/lib/components/generic-formly-fields/index.d.ts +0 -22
- package/src/lib/components/generic-loadingspinner/index.d.ts +0 -9
- package/src/lib/components/generic-search/index.d.ts +0 -29
- package/src/lib/components/generic-selector/index.d.ts +0 -66
- package/src/lib/components/generic-table/index.d.ts +0 -60
- package/src/lib/components/header-wrapper/index.d.ts +0 -8
- package/src/lib/components/icon-picker/index.d.ts +0 -23
- package/src/lib/components/input-switch/index.d.ts +0 -9
- package/src/lib/components/input-with-icon/index.d.ts +0 -10
- package/src/lib/components/label-type/index.d.ts +0 -19
- package/src/lib/components/odata-query-builder/index.d.ts +0 -81
- package/src/lib/components/repeat/index.d.ts +0 -17
- package/src/lib/components/sidebar-cards/index.d.ts +0 -18
- package/src/lib/components/sidebar-toggles/index.d.ts +0 -18
- package/src/lib/components/tabs/index.d.ts +0 -10
- package/src/lib/components/tag-type/index.d.ts +0 -27
- package/src/lib/components/text-editor/index.d.ts +0 -9
- package/src/lib/components/wrappers/index.d.ts +0 -24
- /package/{src/lib/directives → directives}/index.d.ts +0 -0
- /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":";;;;;;;;;;;;;;;;;;AAAA;MAiCa,8BAA8B,CAAA;AA4BrB,IAAA,SAAA;AA3BH,IAAA,EAAE;IAEV,YAAY,GAAmB,EAAE;IACjC,iBAAiB,GAAmB,EAAE;;IAGtC,OAAO,GAAW,cAAc;IAGzC,wBAAwB,GAA0B,EAAE;IAC5C,0BAA0B,GAAmB,EAAE;AAEvD,IAAA,IACI,yBAAyB,GAAA;QAC3B,OAAO,IAAI,CAAC,0BAA0B;;IAExC,IAAI,yBAAyB,CAAC,GAAmB,EAAA;AAC/C,QAAA,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,0BAA0B,EAAE,GAAG,CAAC,EAAE;AAC/D,YAAA,IAAI,CAAC,0BAA0B,GAAG,GAAG;YACrC,IAAI,CAAC,mCAAmC,EAAE;;;AAIpC,IAAA,+BAA+B,GAAG,IAAI,YAAY,EAAkB;;AAI9E,IAAA,WAAA,CAAoB,SAA2B,EAAA;QAA3B,IAAA,CAAA,SAAS,GAAT,SAAS;;IAE7B,QAAQ,GAAA;AACN,QAAA,OAAO,CAAC,GAAG,CAAC,kDAAkD,CAAC;;QAE/D,IAAI,CAAC,wBAAwB,EAAE;QAC/B,IAAI,CAAC,mCAAmC,EAAE;;AAG5C,IAAA,WAAW,CAAC,OAAsB,EAAA;;AAEhC,QAAA,IAAI,OAAO,CAAC,mBAAmB,CAAC,EAAE;AAChC,YAAA,OAAO,CAAC,GAAG,CAAC,kEAAkE,CAAC;YAC/E,IAAI,CAAC,wBAAwB,EAAE;;;AAGjC,QAAA,IAAI,OAAO,CAAC,2BAA2B,CAAC,EAAE;AACxC,YAAA,OAAO,CAAC,GAAG,CAAC,wFAAwF,CAAC;YACrG,IAAI,CAAC,mCAAmC,EAAE;;;;AAI9C,IAAA,IAAI,kBAAkB,GAAA;AACpB,QAAA,IAAI,CAAC,IAAI,CAAC,wBAAwB,IAAI,IAAI,CAAC,wBAAwB,CAAC,MAAM,KAAK,CAAC,EAAE;AAChF,YAAA,OAAO,KAAK;;AAEd,QAAA,OAAO,IAAI,CAAC,wBAAwB,CAAC,KAAK,CAAC,GAAG,IAAI,GAAG,CAAC,UAAU,CAAC;;IAGnE,IAAI,kBAAkB,CAAC,KAAc,EAAA;AACnC,QAAA,IAAI,CAAC,wBAAwB,CAAC,OAAO,CAAC,GAAG,IAAI,GAAG,CAAC,UAAU,GAAG,KAAK,CAAC;QACpE,IAAI,CAAC,oBAAoB,EAAE;;;IAIrB,wBAAwB,GAAA;AAC9B,QAAA,IAAI,CAAC,wBAAwB,GAAG,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,GAAG,KAAK;AACjE,YAAA,GAAG,GAAG;YACN,UAAU,EAAE,KAAK;AAClB,SAAA,CAAC,CAAC;;;IAIG,mCAAmC,GAAA;AACzC,QAAA,IAAI,CAAC,IAAI,CAAC,wBAAwB,IAAI,IAAI,CAAC,wBAAwB,CAAC,MAAM,KAAK,CAAC,EAAE;YAChF;;QAGF,MAAM,iBAAiB,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,0BAA0B,CAAC,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,CAAC;;AAGxF,QAAA,IAAI,CAAC,wBAAwB,CAAC,OAAO,CAAC,GAAG,IAAG;YAC1C,GAAG,CAAC,UAAU,GAAG,iBAAiB,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC;AACnD,SAAC,CAAC;;AAGF,QAAA,MAAM,eAAe,GAAG,IAAI,CAAC;AAC1B,aAAA,MAAM,CAAC,GAAG,IAAI,iBAAiB,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC;AAC9C,aAAA,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,KAAI;YACb,OAAO,KAAK,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC;AACxG,SAAC,CAAC;QAEJ,MAAM,iBAAiB,GAAG,IAAI,CAAC,wBAAwB,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QAExG,IAAI,CAAC,wBAAwB,GAAG,CAAC,GAAG,eAAe,EAAE,GAAG,iBAAiB,CAAC;QAC1E,OAAO,CAAC,GAAG,CAAC,uGAAuG,EAAE,IAAI,CAAC,wBAAwB,CAAC;;AAGrJ,IAAA,MAAM,CAAC,KAAY,EAAA;AACjB,QAAA,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC;;IAGvB,IAAI,GAAA;AACF,QAAA,IAAI,CAAC,EAAE,CAAC,IAAI,EAAE;;;AAIhB,IAAA,wBAAwB,CAAC,MAA2B,EAAA;QAClD,IAAI,CAAC,oBAAoB,EAAE;;;AAI7B,IAAA,kBAAkB,CAAC,KAAU,EAAA;QAC3B,IAAI,CAAC,oBAAoB,EAAE;;;IAIrB,oBAAoB,GAAA;AAC1B,QAAA,MAAM,eAAe,GAAG,IAAI,CAAC;aAC1B,MAAM,CAAC,GAAG,IAAI,GAAG,CAAC,UAAU;aAC5B,GAAG,CAAC,GAAG,IAAG;YACT,MAAM,EAAE,UAAU,EAAE,GAAG,IAAI,EAAE,GAAG,GAAG;AACnC,YAAA,OAAO,IAAoB;AAC7B,SAAC,CAAC;AAEJ,QAAA,IAAI,CAAC,+BAA+B,CAAC,IAAI,CAAC,eAAe,CAAC;;IAGpD,eAAe,CAAC,KAAqB,EAAE,KAAqB,EAAA;QAClE,IAAI,KAAK,CAAC,MAAM,KAAK,KAAK,CAAC,MAAM,EAAE;AACjC,YAAA,OAAO,KAAK;;;AAGd,QAAA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AACrC,YAAA,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE;AACrC,gBAAA,OAAO,KAAK;;;AAGhB,QAAA,OAAO,IAAI;;uGAxIF,8BAA8B,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,gBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAA9B,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,8BAA8B,qbCjC3C,ktDA2CA,EAAA,MAAA,EAAA,CAAA,EAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EDxBI,YAAY,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EACZ,WAAW,8VACX,aAAa,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,WAAA,EAAA,gBAAA,EAAA,aAAA,EAAA,OAAA,EAAA,YAAA,EAAA,UAAA,EAAA,YAAA,EAAA,gBAAA,EAAA,YAAA,EAAA,aAAA,EAAA,uBAAA,EAAA,uBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,QAAA,EAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,aAAA,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,WAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EACb,aAAa,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EACb,YAAY,8BACZ,aAAa,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EACb,eAAe,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EACf,eAAe,6qBACf,cAAc,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,QAAA,EAAA,QAAA,EAAA,qCAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,WAAA,EAAA,UAAA,EAAA,SAAA,EAAA,YAAA,EAAA,YAAA,EAAA,YAAA,EAAA,eAAA,EAAA,aAAA,EAAA,cAAA,EAAA,UAAA,EAAA,WAAA,EAAA,WAAA,EAAA,YAAA,EAAA,SAAA,EAAA,MAAA,CAAA,EAAA,OAAA,EAAA,CAAA,UAAA,EAAA,SAAA,EAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAA,EAAA,CAAA,aAAA,EAAA,IAAA,EAAA,WAAA,EAAA,CAAA,EAAA,CAAA;;2FAML,8BAA8B,EAAA,UAAA,EAAA,CAAA;kBAlB1C,SAAS;+BACE,6BAA6B,EAAA,UAAA,EAC3B,IAAI,EAAA,OAAA,EACP;wBACP,YAAY;wBACZ,WAAW;wBACX,aAAa;wBACb,aAAa;wBACb,YAAY;wBACZ,aAAa;wBACb,eAAe;wBACf,eAAe;wBACf,cAAc;wBACd;AACD,qBAAA,EAAA,QAAA,EAAA,ktDAAA,EAAA;qFAKgB,EAAE,EAAA,CAAA;sBAAlB,SAAS;uBAAC,IAAI;gBAEN,YAAY,EAAA,CAAA;sBAApB;gBACQ,iBAAiB,EAAA,CAAA;sBAAzB;gBAGQ,OAAO,EAAA,CAAA;sBAAf;gBAOG,yBAAyB,EAAA,CAAA;sBAD5B;gBAWS,+BAA+B,EAAA,CAAA;sBAAxC;;;AEzDH;;AAEG;;;;"}
|