@es.framework/ng.ui.core 2.0.58
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 +3 -0
- package/attachments/README.md +3 -0
- package/base-crud/README.md +3 -0
- package/breadcrumb/README.md +3 -0
- package/checkbox/README.md +3 -0
- package/collapsible/README.md +3 -0
- package/color-picker/README.md +3 -0
- package/column-settings-popover/README.md +3 -0
- package/custom-switch/README.md +3 -0
- package/datepicker/README.md +3 -0
- package/deactivation-reason/README.md +3 -0
- package/excel-import/README.md +3 -0
- package/fesm2022/es.framework-ng.ui.core-attachments.mjs +217 -0
- package/fesm2022/es.framework-ng.ui.core-attachments.mjs.map +1 -0
- package/fesm2022/es.framework-ng.ui.core-base-crud.mjs +370 -0
- package/fesm2022/es.framework-ng.ui.core-base-crud.mjs.map +1 -0
- package/fesm2022/es.framework-ng.ui.core-breadcrumb.mjs +145 -0
- package/fesm2022/es.framework-ng.ui.core-breadcrumb.mjs.map +1 -0
- package/fesm2022/es.framework-ng.ui.core-checkbox.mjs +131 -0
- package/fesm2022/es.framework-ng.ui.core-checkbox.mjs.map +1 -0
- package/fesm2022/es.framework-ng.ui.core-collapsible.mjs +90 -0
- package/fesm2022/es.framework-ng.ui.core-collapsible.mjs.map +1 -0
- package/fesm2022/es.framework-ng.ui.core-color-picker.mjs +87 -0
- package/fesm2022/es.framework-ng.ui.core-color-picker.mjs.map +1 -0
- package/fesm2022/es.framework-ng.ui.core-column-settings-popover.mjs +183 -0
- package/fesm2022/es.framework-ng.ui.core-column-settings-popover.mjs.map +1 -0
- package/fesm2022/es.framework-ng.ui.core-custom-switch.mjs +119 -0
- package/fesm2022/es.framework-ng.ui.core-custom-switch.mjs.map +1 -0
- package/fesm2022/es.framework-ng.ui.core-datepicker.mjs +519 -0
- package/fesm2022/es.framework-ng.ui.core-datepicker.mjs.map +1 -0
- package/fesm2022/es.framework-ng.ui.core-deactivation-reason.mjs +144 -0
- package/fesm2022/es.framework-ng.ui.core-deactivation-reason.mjs.map +1 -0
- package/fesm2022/es.framework-ng.ui.core-excel-import.mjs +566 -0
- package/fesm2022/es.framework-ng.ui.core-excel-import.mjs.map +1 -0
- package/fesm2022/es.framework-ng.ui.core-filter-templates.mjs +386 -0
- package/fesm2022/es.framework-ng.ui.core-filter-templates.mjs.map +1 -0
- package/fesm2022/es.framework-ng.ui.core-form-button.mjs +62 -0
- package/fesm2022/es.framework-ng.ui.core-form-button.mjs.map +1 -0
- package/fesm2022/es.framework-ng.ui.core-form-field.mjs +155 -0
- package/fesm2022/es.framework-ng.ui.core-form-field.mjs.map +1 -0
- package/fesm2022/es.framework-ng.ui.core-form-template.mjs +37 -0
- package/fesm2022/es.framework-ng.ui.core-form-template.mjs.map +1 -0
- package/fesm2022/es.framework-ng.ui.core-formly-avatar-image.mjs +132 -0
- package/fesm2022/es.framework-ng.ui.core-formly-avatar-image.mjs.map +1 -0
- package/fesm2022/es.framework-ng.ui.core-formly-avatar-label.mjs +89 -0
- package/fesm2022/es.framework-ng.ui.core-formly-avatar-label.mjs.map +1 -0
- package/fesm2022/es.framework-ng.ui.core-formly-button-selector.mjs +195 -0
- package/fesm2022/es.framework-ng.ui.core-formly-button-selector.mjs.map +1 -0
- package/fesm2022/es.framework-ng.ui.core-formly-button.mjs +73 -0
- package/fesm2022/es.framework-ng.ui.core-formly-button.mjs.map +1 -0
- package/fesm2022/es.framework-ng.ui.core-formly-presets.mjs +201 -0
- package/fesm2022/es.framework-ng.ui.core-formly-presets.mjs.map +1 -0
- package/fesm2022/es.framework-ng.ui.core-formly-prime-icon-picker.mjs +542 -0
- package/fesm2022/es.framework-ng.ui.core-formly-prime-icon-picker.mjs.map +1 -0
- package/fesm2022/es.framework-ng.ui.core-formly-split-button.mjs +62 -0
- package/fesm2022/es.framework-ng.ui.core-formly-split-button.mjs.map +1 -0
- package/fesm2022/es.framework-ng.ui.core-formly-ui-all.mjs +422 -0
- package/fesm2022/es.framework-ng.ui.core-formly-ui-all.mjs.map +1 -0
- package/fesm2022/es.framework-ng.ui.core-formly-ui.mjs +48 -0
- package/fesm2022/es.framework-ng.ui.core-formly-ui.mjs.map +1 -0
- package/fesm2022/es.framework-ng.ui.core-formly-username-with-domain.mjs +85 -0
- package/fesm2022/es.framework-ng.ui.core-formly-username-with-domain.mjs.map +1 -0
- package/fesm2022/es.framework-ng.ui.core-generic-assets.mjs +22 -0
- package/fesm2022/es.framework-ng.ui.core-generic-assets.mjs.map +1 -0
- package/fesm2022/es.framework-ng.ui.core-generic-autocomplete.mjs +173 -0
- package/fesm2022/es.framework-ng.ui.core-generic-autocomplete.mjs.map +1 -0
- package/fesm2022/es.framework-ng.ui.core-generic-button.mjs +150 -0
- package/fesm2022/es.framework-ng.ui.core-generic-button.mjs.map +1 -0
- package/fesm2022/es.framework-ng.ui.core-generic-card.mjs +218 -0
- package/fesm2022/es.framework-ng.ui.core-generic-card.mjs.map +1 -0
- package/fesm2022/es.framework-ng.ui.core-generic-crud-table.mjs +929 -0
- package/fesm2022/es.framework-ng.ui.core-generic-crud-table.mjs.map +1 -0
- package/fesm2022/es.framework-ng.ui.core-generic-dialog.mjs +321 -0
- package/fesm2022/es.framework-ng.ui.core-generic-dialog.mjs.map +1 -0
- package/fesm2022/es.framework-ng.ui.core-generic-errormessage.mjs +35 -0
- package/fesm2022/es.framework-ng.ui.core-generic-errormessage.mjs.map +1 -0
- package/fesm2022/es.framework-ng.ui.core-generic-formly-fields.mjs +63 -0
- package/fesm2022/es.framework-ng.ui.core-generic-formly-fields.mjs.map +1 -0
- package/fesm2022/es.framework-ng.ui.core-generic-loadingspinner.mjs +34 -0
- package/fesm2022/es.framework-ng.ui.core-generic-loadingspinner.mjs.map +1 -0
- package/fesm2022/es.framework-ng.ui.core-generic-report-tabs.mjs +196 -0
- package/fesm2022/es.framework-ng.ui.core-generic-report-tabs.mjs.map +1 -0
- package/fesm2022/es.framework-ng.ui.core-generic-report.mjs +556 -0
- package/fesm2022/es.framework-ng.ui.core-generic-report.mjs.map +1 -0
- package/fesm2022/es.framework-ng.ui.core-generic-search-advanced.mjs +2995 -0
- package/fesm2022/es.framework-ng.ui.core-generic-search-advanced.mjs.map +1 -0
- package/fesm2022/es.framework-ng.ui.core-generic-search.mjs +103 -0
- package/fesm2022/es.framework-ng.ui.core-generic-search.mjs.map +1 -0
- package/fesm2022/es.framework-ng.ui.core-generic-selector.mjs +684 -0
- package/fesm2022/es.framework-ng.ui.core-generic-selector.mjs.map +1 -0
- package/fesm2022/es.framework-ng.ui.core-generic-table.mjs +388 -0
- package/fesm2022/es.framework-ng.ui.core-generic-table.mjs.map +1 -0
- package/fesm2022/es.framework-ng.ui.core-generic-view.mjs +465 -0
- package/fesm2022/es.framework-ng.ui.core-generic-view.mjs.map +1 -0
- package/fesm2022/es.framework-ng.ui.core-header-wrapper.mjs +31 -0
- package/fesm2022/es.framework-ng.ui.core-header-wrapper.mjs.map +1 -0
- package/fesm2022/es.framework-ng.ui.core-icon-picker.mjs +205 -0
- package/fesm2022/es.framework-ng.ui.core-icon-picker.mjs.map +1 -0
- package/fesm2022/es.framework-ng.ui.core-input-switch.mjs +102 -0
- package/fesm2022/es.framework-ng.ui.core-input-switch.mjs.map +1 -0
- package/fesm2022/es.framework-ng.ui.core-input-with-icon.mjs +67 -0
- package/fesm2022/es.framework-ng.ui.core-input-with-icon.mjs.map +1 -0
- package/fesm2022/es.framework-ng.ui.core-input.mjs +250 -0
- package/fesm2022/es.framework-ng.ui.core-input.mjs.map +1 -0
- package/fesm2022/es.framework-ng.ui.core-label-type.mjs +184 -0
- package/fesm2022/es.framework-ng.ui.core-label-type.mjs.map +1 -0
- package/fesm2022/es.framework-ng.ui.core-loading-skeletons.mjs +66 -0
- package/fesm2022/es.framework-ng.ui.core-loading-skeletons.mjs.map +1 -0
- package/fesm2022/es.framework-ng.ui.core-odata-query-builder.mjs +307 -0
- package/fesm2022/es.framework-ng.ui.core-odata-query-builder.mjs.map +1 -0
- package/fesm2022/es.framework-ng.ui.core-query-type.mjs +162 -0
- package/fesm2022/es.framework-ng.ui.core-query-type.mjs.map +1 -0
- package/fesm2022/es.framework-ng.ui.core-radio.mjs +120 -0
- package/fesm2022/es.framework-ng.ui.core-radio.mjs.map +1 -0
- package/fesm2022/es.framework-ng.ui.core-repeat.mjs +290 -0
- package/fesm2022/es.framework-ng.ui.core-repeat.mjs.map +1 -0
- package/fesm2022/es.framework-ng.ui.core-select.mjs +179 -0
- package/fesm2022/es.framework-ng.ui.core-select.mjs.map +1 -0
- package/fesm2022/es.framework-ng.ui.core-sidebar-cards.mjs +52 -0
- package/fesm2022/es.framework-ng.ui.core-sidebar-cards.mjs.map +1 -0
- package/fesm2022/es.framework-ng.ui.core-sidebar-toggles.mjs +53 -0
- package/fesm2022/es.framework-ng.ui.core-sidebar-toggles.mjs.map +1 -0
- package/fesm2022/es.framework-ng.ui.core-tabs.mjs +57 -0
- package/fesm2022/es.framework-ng.ui.core-tabs.mjs.map +1 -0
- package/fesm2022/es.framework-ng.ui.core-tag-type.mjs +209 -0
- package/fesm2022/es.framework-ng.ui.core-tag-type.mjs.map +1 -0
- package/fesm2022/es.framework-ng.ui.core-text-editor.mjs +58 -0
- package/fesm2022/es.framework-ng.ui.core-text-editor.mjs.map +1 -0
- package/fesm2022/es.framework-ng.ui.core-textarea.mjs +93 -0
- package/fesm2022/es.framework-ng.ui.core-textarea.mjs.map +1 -0
- package/fesm2022/es.framework-ng.ui.core-wrappers.mjs +245 -0
- package/fesm2022/es.framework-ng.ui.core-wrappers.mjs.map +1 -0
- package/fesm2022/es.framework-ng.ui.core.mjs +20 -0
- package/fesm2022/es.framework-ng.ui.core.mjs.map +1 -0
- package/filter-templates/README.md +3 -0
- package/form-button/README.md +3 -0
- package/form-field/README.md +3 -0
- package/form-template/README.md +3 -0
- package/formly-avatar-image/README.md +3 -0
- package/formly-avatar-label/README.md +3 -0
- package/formly-button/README.md +3 -0
- package/formly-button-selector/README.md +3 -0
- package/formly-presets/README.md +3 -0
- package/formly-prime-icon-picker/README.md +3 -0
- package/formly-split-button/README.md +3 -0
- package/formly-ui/README.md +3 -0
- package/formly-ui-all/README.md +3 -0
- package/formly-username-with-domain/README.md +3 -0
- package/generic-assets/README.md +3 -0
- package/generic-autocomplete/README.md +3 -0
- package/generic-button/README.md +3 -0
- package/generic-card/README.md +3 -0
- package/generic-crud-table/README.md +3 -0
- package/generic-dialog/README.md +3 -0
- package/generic-errormessage/README.md +3 -0
- package/generic-formly-fields/README.md +3 -0
- package/generic-loadingspinner/README.md +3 -0
- package/generic-report/README.md +3 -0
- package/generic-report-tabs/README.md +0 -0
- package/generic-search/README.md +3 -0
- package/generic-search-advanced/README.md +3 -0
- package/generic-selector/README.md +3 -0
- package/generic-table/README.md +3 -0
- package/generic-view/README.md +3 -0
- package/header-wrapper/README.md +3 -0
- package/icon-picker/README.md +3 -0
- package/input/README.md +3 -0
- package/input-switch/README.md +3 -0
- package/input-with-icon/README.md +3 -0
- package/label-type/README.md +3 -0
- package/loading-skeletons/README.md +3 -0
- package/odata-query-builder/README.md +3 -0
- package/package.json +264 -0
- package/query-type/README.md +3 -0
- package/radio/README.md +3 -0
- package/repeat/README.md +3 -0
- package/select/README.md +3 -0
- package/sidebar-cards/README.md +3 -0
- package/sidebar-toggles/README.md +3 -0
- package/styles.css +2 -0
- package/tabs/README.md +3 -0
- package/tag-type/README.md +3 -0
- package/text-editor/README.md +3 -0
- package/textarea/README.md +3 -0
- package/types/es.framework-ng.ui.core-attachments.d.ts +38 -0
- package/types/es.framework-ng.ui.core-base-crud.d.ts +74 -0
- package/types/es.framework-ng.ui.core-breadcrumb.d.ts +17 -0
- package/types/es.framework-ng.ui.core-checkbox.d.ts +33 -0
- package/types/es.framework-ng.ui.core-collapsible.d.ts +18 -0
- package/types/es.framework-ng.ui.core-color-picker.d.ts +16 -0
- package/types/es.framework-ng.ui.core-column-settings-popover.d.ts +46 -0
- package/types/es.framework-ng.ui.core-custom-switch.d.ts +19 -0
- package/types/es.framework-ng.ui.core-datepicker.d.ts +23 -0
- package/types/es.framework-ng.ui.core-deactivation-reason.d.ts +32 -0
- package/types/es.framework-ng.ui.core-excel-import.d.ts +69 -0
- package/types/es.framework-ng.ui.core-filter-templates.d.ts +57 -0
- package/types/es.framework-ng.ui.core-form-button.d.ts +17 -0
- package/types/es.framework-ng.ui.core-form-field.d.ts +30 -0
- package/types/es.framework-ng.ui.core-form-template.d.ts +16 -0
- package/types/es.framework-ng.ui.core-formly-avatar-image.d.ts +18 -0
- package/types/es.framework-ng.ui.core-formly-avatar-label.d.ts +36 -0
- package/types/es.framework-ng.ui.core-formly-button-selector.d.ts +35 -0
- package/types/es.framework-ng.ui.core-formly-button.d.ts +20 -0
- package/types/es.framework-ng.ui.core-formly-presets.d.ts +37 -0
- package/types/es.framework-ng.ui.core-formly-prime-icon-picker.d.ts +45 -0
- package/types/es.framework-ng.ui.core-formly-split-button.d.ts +23 -0
- package/types/es.framework-ng.ui.core-formly-ui-all.d.ts +40 -0
- package/types/es.framework-ng.ui.core-formly-ui.d.ts +13 -0
- package/types/es.framework-ng.ui.core-formly-username-with-domain.d.ts +19 -0
- package/types/es.framework-ng.ui.core-generic-assets.d.ts +10 -0
- package/types/es.framework-ng.ui.core-generic-autocomplete.d.ts +41 -0
- package/types/es.framework-ng.ui.core-generic-button.d.ts +39 -0
- package/types/es.framework-ng.ui.core-generic-card.d.ts +93 -0
- package/types/es.framework-ng.ui.core-generic-crud-table.d.ts +293 -0
- package/types/es.framework-ng.ui.core-generic-dialog.d.ts +93 -0
- package/types/es.framework-ng.ui.core-generic-errormessage.d.ts +17 -0
- package/types/es.framework-ng.ui.core-generic-formly-fields.d.ts +26 -0
- package/types/es.framework-ng.ui.core-generic-loadingspinner.d.ts +16 -0
- package/types/es.framework-ng.ui.core-generic-report-tabs.d.ts +21 -0
- package/types/es.framework-ng.ui.core-generic-report.d.ts +121 -0
- package/types/es.framework-ng.ui.core-generic-search-advanced.d.ts +305 -0
- package/types/es.framework-ng.ui.core-generic-search.d.ts +36 -0
- package/types/es.framework-ng.ui.core-generic-selector.d.ts +99 -0
- package/types/es.framework-ng.ui.core-generic-table.d.ts +84 -0
- package/types/es.framework-ng.ui.core-generic-view.d.ts +97 -0
- package/types/es.framework-ng.ui.core-header-wrapper.d.ts +15 -0
- package/types/es.framework-ng.ui.core-icon-picker.d.ts +30 -0
- package/types/es.framework-ng.ui.core-input-switch.d.ts +16 -0
- package/types/es.framework-ng.ui.core-input-with-icon.d.ts +17 -0
- package/types/es.framework-ng.ui.core-input.d.ts +47 -0
- package/types/es.framework-ng.ui.core-label-type.d.ts +38 -0
- package/types/es.framework-ng.ui.core-loading-skeletons.d.ts +17 -0
- package/types/es.framework-ng.ui.core-odata-query-builder.d.ts +87 -0
- package/types/es.framework-ng.ui.core-query-type.d.ts +37 -0
- package/types/es.framework-ng.ui.core-radio.d.ts +38 -0
- package/types/es.framework-ng.ui.core-repeat.d.ts +31 -0
- package/types/es.framework-ng.ui.core-select.d.ts +42 -0
- package/types/es.framework-ng.ui.core-sidebar-cards.d.ts +25 -0
- package/types/es.framework-ng.ui.core-sidebar-toggles.d.ts +25 -0
- package/types/es.framework-ng.ui.core-tabs.d.ts +17 -0
- package/types/es.framework-ng.ui.core-tag-type.d.ts +34 -0
- package/types/es.framework-ng.ui.core-text-editor.d.ts +16 -0
- package/types/es.framework-ng.ui.core-textarea.d.ts +36 -0
- package/types/es.framework-ng.ui.core-wrappers.d.ts +36 -0
- package/types/es.framework-ng.ui.core.d.ts +8 -0
- package/wrappers/README.md +3 -0
|
@@ -0,0 +1,201 @@
|
|
|
1
|
+
import * as i0 from '@angular/core';
|
|
2
|
+
import { NgModule } from '@angular/core';
|
|
3
|
+
import { CommonModule } from '@angular/common';
|
|
4
|
+
|
|
5
|
+
class FormlyPresetsModule {
|
|
6
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.3", ngImport: i0, type: FormlyPresetsModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
7
|
+
static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "21.1.3", ngImport: i0, type: FormlyPresetsModule, imports: [CommonModule] });
|
|
8
|
+
static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "21.1.3", ngImport: i0, type: FormlyPresetsModule, imports: [CommonModule] });
|
|
9
|
+
}
|
|
10
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.3", ngImport: i0, type: FormlyPresetsModule, decorators: [{
|
|
11
|
+
type: NgModule,
|
|
12
|
+
args: [{
|
|
13
|
+
imports: [CommonModule],
|
|
14
|
+
}]
|
|
15
|
+
}] });
|
|
16
|
+
|
|
17
|
+
const DEFAULT_CONTROL_CLASS = [
|
|
18
|
+
'w-full',
|
|
19
|
+
'border',
|
|
20
|
+
'border-gray-300',
|
|
21
|
+
'rounded',
|
|
22
|
+
'focus:outline-none',
|
|
23
|
+
'focus:ring-2',
|
|
24
|
+
'focus:ring-green-400',
|
|
25
|
+
].join(' ');
|
|
26
|
+
function numberField(key, label, required = false, className = 'col-span-1') {
|
|
27
|
+
return {
|
|
28
|
+
key,
|
|
29
|
+
type: 'input',
|
|
30
|
+
className,
|
|
31
|
+
wrappers: ['form-field'],
|
|
32
|
+
templateOptions: {
|
|
33
|
+
type: "number",
|
|
34
|
+
label,
|
|
35
|
+
required,
|
|
36
|
+
attributes: { class: DEFAULT_CONTROL_CLASS },
|
|
37
|
+
},
|
|
38
|
+
};
|
|
39
|
+
}
|
|
40
|
+
function textField(key, label, required = false, className = 'col-span-1',
|
|
41
|
+
// ✅ تم تغيير هذا البراميتر ليقبل خصائص إضافية لـ templateOptions
|
|
42
|
+
extraTemplateOptions) {
|
|
43
|
+
return {
|
|
44
|
+
key,
|
|
45
|
+
type: 'advanced-input',
|
|
46
|
+
className,
|
|
47
|
+
wrappers: ['form-field'],
|
|
48
|
+
props: {
|
|
49
|
+
label,
|
|
50
|
+
required,
|
|
51
|
+
attributes: {
|
|
52
|
+
class: DEFAULT_CONTROL_CLASS,
|
|
53
|
+
},
|
|
54
|
+
// ✅ دمج الخصائص الإضافية هنا
|
|
55
|
+
...extraTemplateOptions,
|
|
56
|
+
},
|
|
57
|
+
};
|
|
58
|
+
}
|
|
59
|
+
function textField2(key, label, required = false, className = 'col-span-1', expressions) {
|
|
60
|
+
return {
|
|
61
|
+
key,
|
|
62
|
+
type: 'input',
|
|
63
|
+
className,
|
|
64
|
+
wrappers: ['form-field'],
|
|
65
|
+
templateOptions: {
|
|
66
|
+
label,
|
|
67
|
+
required,
|
|
68
|
+
attributes: {
|
|
69
|
+
class: DEFAULT_CONTROL_CLASS,
|
|
70
|
+
},
|
|
71
|
+
// ✅ اضف disabled ليتضبب الحقل إذا كان readonly
|
|
72
|
+
},
|
|
73
|
+
expressions,
|
|
74
|
+
};
|
|
75
|
+
}
|
|
76
|
+
function textareaField(key, label, rows = 3, className = 'col-span-1') {
|
|
77
|
+
return {
|
|
78
|
+
key,
|
|
79
|
+
type: 'textarea',
|
|
80
|
+
className,
|
|
81
|
+
wrappers: ['form-field'],
|
|
82
|
+
templateOptions: {
|
|
83
|
+
label,
|
|
84
|
+
rows,
|
|
85
|
+
attributes: { class: DEFAULT_CONTROL_CLASS },
|
|
86
|
+
},
|
|
87
|
+
};
|
|
88
|
+
}
|
|
89
|
+
function selectField({ key, label, options = [], className, defaultValue, fullWidth = false, required = false, }) {
|
|
90
|
+
const config = {
|
|
91
|
+
key,
|
|
92
|
+
type: 'select',
|
|
93
|
+
className: className ?? (fullWidth ? 'col-span-2' : 'col-span-1'),
|
|
94
|
+
wrappers: ['form-field'],
|
|
95
|
+
templateOptions: {
|
|
96
|
+
label,
|
|
97
|
+
options,
|
|
98
|
+
required,
|
|
99
|
+
placeholder: `اختر ${label}`,
|
|
100
|
+
showClear: true,
|
|
101
|
+
filter: true,
|
|
102
|
+
appendTo: 'body',
|
|
103
|
+
optionLabel: 'label',
|
|
104
|
+
optionValue: 'value',
|
|
105
|
+
attributes: { class: DEFAULT_CONTROL_CLASS },
|
|
106
|
+
},
|
|
107
|
+
};
|
|
108
|
+
if (options !== undefined) {
|
|
109
|
+
config.templateOptions.options = options;
|
|
110
|
+
}
|
|
111
|
+
if (defaultValue !== undefined) {
|
|
112
|
+
config.defaultValue = defaultValue;
|
|
113
|
+
}
|
|
114
|
+
return config;
|
|
115
|
+
}
|
|
116
|
+
// export function checkboxField(
|
|
117
|
+
// key: string,
|
|
118
|
+
// label: string,
|
|
119
|
+
// required = false,
|
|
120
|
+
// className = 'col-span-1',
|
|
121
|
+
// useNumberMapping = false
|
|
122
|
+
// ): FormlyFieldConfig {
|
|
123
|
+
// const field: FormlyFieldConfig = {
|
|
124
|
+
// key,
|
|
125
|
+
// type: 'checkbox',
|
|
126
|
+
// className,
|
|
127
|
+
// wrappers: ['form-field'],
|
|
128
|
+
// templateOptions: {
|
|
129
|
+
// label,
|
|
130
|
+
// required,
|
|
131
|
+
// attributes: {
|
|
132
|
+
// class: 'flex items-center gap-2',
|
|
133
|
+
// },
|
|
134
|
+
// },
|
|
135
|
+
// };
|
|
136
|
+
// if (useNumberMapping) {
|
|
137
|
+
// field.hooks = {
|
|
138
|
+
// onInit: (field) => {
|
|
139
|
+
// // ✅ تهيئة القيمة داخل الفورم كنترول
|
|
140
|
+
// const initialValue = field.model?.[key];
|
|
141
|
+
// if (initialValue === 1 || initialValue === 2) {
|
|
142
|
+
// field.formControl?.setValue(initialValue === 1, { emitEvent: false });
|
|
143
|
+
// }
|
|
144
|
+
// // ✅ تحويل عند تغيّر القيمة من الـ checkbox
|
|
145
|
+
// field.formControl?.valueChanges.subscribe(val => {
|
|
146
|
+
// const newValue = val ? 1 : 2;
|
|
147
|
+
// if (field.model) {
|
|
148
|
+
// field.model[key] = newValue;
|
|
149
|
+
// }
|
|
150
|
+
// });
|
|
151
|
+
// }
|
|
152
|
+
// };
|
|
153
|
+
// }
|
|
154
|
+
// return field;
|
|
155
|
+
// }
|
|
156
|
+
function checkboxField(key, label, required = false, className = 'col-span-1') {
|
|
157
|
+
return {
|
|
158
|
+
key,
|
|
159
|
+
type: 'checkbox',
|
|
160
|
+
className,
|
|
161
|
+
wrappers: ['form-field'],
|
|
162
|
+
templateOptions: {
|
|
163
|
+
label,
|
|
164
|
+
required,
|
|
165
|
+
attributes: {
|
|
166
|
+
class: 'flex items-center gap-2',
|
|
167
|
+
},
|
|
168
|
+
},
|
|
169
|
+
hooks: {
|
|
170
|
+
onInit: (field) => {
|
|
171
|
+
const val = field.model?.[key];
|
|
172
|
+
if (val === 1) {
|
|
173
|
+
field.formControl?.setValue(true, { emitEvent: false });
|
|
174
|
+
}
|
|
175
|
+
else if (val === 2) {
|
|
176
|
+
field.formControl?.setValue(false, { emitEvent: false });
|
|
177
|
+
}
|
|
178
|
+
else if (val === undefined) {
|
|
179
|
+
field.model[key] = 2; // تعيين القيمة الافتراضية في الموديل
|
|
180
|
+
field.formControl?.setValue(false, { emitEvent: false });
|
|
181
|
+
}
|
|
182
|
+
else {
|
|
183
|
+
field.formControl?.setValue(false, { emitEvent: false });
|
|
184
|
+
}
|
|
185
|
+
field.formControl?.valueChanges.subscribe(val => {
|
|
186
|
+
const newVal = val ? 1 : 2;
|
|
187
|
+
if (field.model && field.model[key] !== newVal) {
|
|
188
|
+
field.model[key] = newVal;
|
|
189
|
+
}
|
|
190
|
+
});
|
|
191
|
+
}
|
|
192
|
+
}
|
|
193
|
+
};
|
|
194
|
+
}
|
|
195
|
+
|
|
196
|
+
/**
|
|
197
|
+
* Generated bundle index. Do not edit.
|
|
198
|
+
*/
|
|
199
|
+
|
|
200
|
+
export { DEFAULT_CONTROL_CLASS, FormlyPresetsModule, checkboxField, numberField, selectField, textField, textField2, textareaField };
|
|
201
|
+
//# sourceMappingURL=es.framework-ng.ui.core-formly-presets.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"es.framework-ng.ui.core-formly-presets.mjs","sources":["../../../../libs/ng.ui.core/formly-presets/src/lib/formly-presets-module.ts","../../../../libs/ng.ui.core/formly-presets/src/lib/formly-presets.ts","../../../../libs/ng.ui.core/formly-presets/src/es.framework-ng.ui.core-formly-presets.ts"],"sourcesContent":["import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\n@NgModule({\n imports: [CommonModule],\n})\nexport class FormlyPresetsModule {}\n","import { FormlyFieldConfig } from \"@ngx-formly/core\";\nimport { Observable } from \"rxjs\";\n\nexport const DEFAULT_CONTROL_CLASS = [\n 'w-full',\n 'border',\n 'border-gray-300',\n 'rounded',\n 'focus:outline-none',\n 'focus:ring-2',\n 'focus:ring-green-400',\n].join(' ');\n\n\nexport interface SelectOption {\n label: string;\n value: any;\n icon?: string; // ← allow icon\n}\n\nexport function numberField(\n key: string,\n label: string,\n required = false,\n className = 'col-span-1',\n): FormlyFieldConfig {\n return {\n key,\n type: 'input',\n className,\n wrappers: ['form-field'],\n templateOptions: {\n type:\"number\",\n label,\n required,\n attributes: { class: DEFAULT_CONTROL_CLASS },\n },\n };\n}\n\nexport function textField(\n key: string,\n label: string,\n required = false,\n className = 'col-span-1',\n // ✅ تم تغيير هذا البراميتر ليقبل خصائص إضافية لـ templateOptions\n extraTemplateOptions?: { [key: string]: any }\n): FormlyFieldConfig {\n return {\n key,\n type: 'advanced-input',\n className,\n wrappers: ['form-field'],\n props: {\n label,\n required,\n attributes: {\n class: DEFAULT_CONTROL_CLASS,\n },\n // ✅ دمج الخصائص الإضافية هنا\n ...extraTemplateOptions,\n },\n };\n}\n\nexport function textField2(\n key: string,\n label: string,\n required = false,\n className = 'col-span-1',\n expressions?: FormlyFieldConfig['expressions']\n): FormlyFieldConfig {\n return {\n key,\n type: 'input',\n className,\n wrappers: ['form-field'],\n templateOptions: {\n label,\n required,\n attributes: {\n class: DEFAULT_CONTROL_CLASS,\n },\n // ✅ اضف disabled ليتضبب الحقل إذا كان readonly\n },\n expressions,\n };\n}\n\n\nexport function textareaField(\n key: string,\n label: string,\n rows = 3,\n className = 'col-span-1',\n): FormlyFieldConfig {\n return {\n key,\n type: 'textarea',\n className,\n wrappers: ['form-field'],\n templateOptions: {\n label,\n rows,\n attributes: { class: DEFAULT_CONTROL_CLASS },\n },\n };\n}\n\n// formly-presets.ts\n\n export interface SelectFieldOptions {\n key: string;\n label: string;\n options?: SelectOption[] | Observable<SelectOption[]>;\n className?: string;\n defaultValue?: any;\n required?: boolean;\n fullWidth?: boolean;\n }\n\nexport function selectField({\n key,\n label,\n options = [],\n className,\n defaultValue,\n fullWidth = false,\n required = false,\n}: SelectFieldOptions): FormlyFieldConfig {\n const config: FormlyFieldConfig = {\n key,\n type: 'select',\n className: className ?? (fullWidth ? 'col-span-2' : 'col-span-1'),\n wrappers: ['form-field'],\n templateOptions: {\n label,\n options,\n required,\n placeholder: `اختر ${label}`,\n showClear: true,\n filter: true,\n appendTo: 'body',\n optionLabel: 'label',\n optionValue: 'value',\n attributes: { class: DEFAULT_CONTROL_CLASS },\n },\n };\n\n\n if (options !== undefined) {\n config.templateOptions!.options = options;\n }\n\n if (defaultValue !== undefined) {\n config.defaultValue = defaultValue;\n }\n\n return config;\n}\n\n\n\n// export function checkboxField(\n// key: string,\n// label: string,\n// required = false,\n// className = 'col-span-1',\n// useNumberMapping = false\n// ): FormlyFieldConfig {\n// const field: FormlyFieldConfig = {\n// key,\n// type: 'checkbox',\n// className,\n// wrappers: ['form-field'],\n// templateOptions: {\n// label,\n// required,\n// attributes: {\n// class: 'flex items-center gap-2',\n// },\n// },\n// };\n\n// if (useNumberMapping) {\n// field.hooks = {\n// onInit: (field) => {\n// // ✅ تهيئة القيمة داخل الفورم كنترول\n// const initialValue = field.model?.[key];\n// if (initialValue === 1 || initialValue === 2) {\n// field.formControl?.setValue(initialValue === 1, { emitEvent: false });\n// }\n\n// // ✅ تحويل عند تغيّر القيمة من الـ checkbox\n// field.formControl?.valueChanges.subscribe(val => {\n// const newValue = val ? 1 : 2;\n// if (field.model) {\n// field.model[key] = newValue;\n// }\n// });\n// }\n// };\n// }\n\n// return field;\n// }\n\n\n\n\nexport function checkboxField(\n key: string,\n label: string,\n required = false,\n className = 'col-span-1',\n): FormlyFieldConfig {\n return {\n key,\n type: 'checkbox',\n className,\n wrappers: ['form-field'],\n templateOptions: {\n label,\n required,\n attributes: {\n class: 'flex items-center gap-2',\n },\n },\n hooks: {\n onInit: (field) => {\n const val = field.model?.[key];\n\n if (val === 1) {\n field.formControl?.setValue(true, { emitEvent: false });\n } else if (val === 2) {\n field.formControl?.setValue(false, { emitEvent: false });\n } else if (val === undefined) {\n field.model[key] = 2; // تعيين القيمة الافتراضية في الموديل\n field.formControl?.setValue(false, { emitEvent: false });\n } else {\n field.formControl?.setValue(false, { emitEvent: false });\n }\n\n field.formControl?.valueChanges.subscribe(val => {\n const newVal = val ? 1 : 2;\n if (field.model && field.model[key] !== newVal) {\n field.model[key] = newVal;\n }\n });\n }\n }\n };\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|